【Python之旅】第四篇(四):基於面向對象的模擬人生遊戲類

    須要用面向對象的思想編寫一個模擬人生的小遊戲,其實就目前學的知識來講,最多隻能寫個故事敘述類的小遊戲,所以這裏只是給出該遊戲中有關class的代碼,代碼是Alex老師寫的,對進一步加深Python面向對象的特性有很大幫助!
ide

    遊戲的情節梗概以下:
學習

John and Liz 是高中同窗時的戀人,後來Liz考上了北京城市學院,Jhon沒有,爲了跟女友在一塊兒,他來到了北京打工(一家網吧當網管),掙錢爲Liz交學費,後來LIZ畢業後工做了,遇到了公司的高富帥peter,而後兩人就苟且在了一塊兒,JHON發現後很是傷心,發誓要把LIZ奪回來,而後他發糞學習,增長自身能力,參加自考,學習老男孩PYTHON,若干年後,當上了某大型互聯網公司的IT總監,月薪5萬,北京買了車和房,偶然又見到了LIZ,此時她已被高富PETER甩了,LIZ提出再回到JHON身邊時,JHONE優雅的說。。。spa

    從情節中能夠看出,用目前所學的知識,作交互式的話,可能意義不太大,但定義好角色的類以後,其實也是能夠折騰一下的,因爲時間的關係,就不去折騰了,由於這個過程當中須要的其實更多的是有關遊戲中的Ideas,下面就給出Alex老師寫的類代碼,以及我本身加的一點點的故事敘述型的遊戲情節吧:
orm

class person:
	assets = 0
	school_name = None
	Interview = ['360', 'Baidu', 'Ali', 'Tengxun']
	attraction = 0
	skills = []
	love_status = None
	lover = None
	job = None
	company = None

	def __init__(self, name, sex, role):
		self.name = name
		self.sex = sex
		self.role = role
		print '\033[32;1m-\033[0m'*60
		if self.role == 'rich':
			self.assets += 10000000
			self.attraction += 80
			print '\033[32;1mMy name is %s, I am a %s guy, I have %s money! It is good to be rich..\033[0m'\
			%(self.name, self.role, self.assets)
		elif self.role == 'poor':
			self.assets += 5000
			self.attraction += 40
			print '\033[31;1mMy name is %s, I am a %s guy, I hvae %s money! I hate \
to be poor, but...life is fucking hard..\033[0m' % \
			(self.name, self.role, self.assets)
		elif self.role == 'beauty':
			self.assets += 5000
			self.attraction += 90
			print '\033[32;1mMy name is %s, I am a %s girl, I do not have much money, \
but I am very beautiful,that makes me feel good and confident, but I do \
not want to be poor forever.\033[0m' % (self.name,self.role)


	def talk(self, msg, tone = 'normal'):
		if tone == 'normal':
			print '\033[32;1m%s: %s\033[0m' % (self.name, msg)
		elif tone == 'angry':
			print '\033[31;1m%s: %s\033[0m' % (self.name, msg)

	def assets_balance(self, amount, action):
		if action == 'earn':
			self.assets += amount
			print '\033[32;1m%s just made %sRMB! Current assets is %s \033[0m' % \
			(self.name, amount, self.assets)
		elif action == 'cost':
			self.assets -= amount
			print '\033[32;1m%s just cost %sRMB! Current assets is %s \033[0m' % \
			(self.name, amount, self.assets)

p1 = person('John', 'male', 'poor')
p1.talk('Hello, my guys!')
p1.assets_balance(300, 'earn')

p2 = person('Liz', 'female', 'beauty')
p2.talk('Hi, my dear!')
p2.assets_balance(1500,'earn')

p3 = person('Peter', 'male', 'rich')
p3.talk('Hi guys')
p3.assets_balance(3000, 'cost')

def section(part):
	print '\033[31;1m*\033[0m'*30 + part + '\033[31;1m*\033[0m'*30

section('Part 1: A love story')

p1.lover = p2
p1.love_status = 'Not_single'
p1.talk('I hvae a girlfriend, her name is %s.I love she very much.' % p1.lover.name)

p2.lover = p1
p1.love_status = 'Not_single'
p2.talk('I have a boy friend, his name is %s.Thout he is poor, he loves me.' % p2.lover.name)

section('Part 2: college entrance examination')

p1.talk('Oh, my god! I can not go to a college.', 'angry')
p2.talk('I can go to a college to change my life.')

section("Part 3: Liz's difficulity")

p2.talk('What should I do?I do not have money to go to the college.')
p1.talk('Do not worry!Though I can not go to the college with you, I still can earn money to support you.')
p2.talk('%s, so thank you for you.I love you!' % p2.lover.name)

section("Part 4: work and college life")

p1.talk('In order to support %s, I must work hard at the net bar.' % p1.lover.name)
p2.talk('I will study hard to enter a good company when I graduate.')

    重點應該是放在類的代碼上,這些代碼能夠加深初學者對Python類的使用的理解。
對象

相關文章
相關標籤/搜索