设为首页 收藏本站
查看: 1768|回复: 0

[经验分享] 【Python之旅】第四篇(四):基于面向对象的模拟人生游戏类

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-8 08:29:02 | 显示全部楼层 |阅读模式
需要用面向对象的思想编写一个模拟人生的小游戏,其实就目前学的知识来说,最多只能写个故事叙述类的小游戏,因此这里只是给出该游戏中有关class的代码,代码是Alex老师写的,对进一步加深Python面向对象的特性有很大帮助!
    游戏的情节梗概如下:

John and Liz 是高中同学时的恋人,后来Liz考上了北京城市学院,Jhon没有,为了跟女朋友在一起,他来到了北京打工(一家网吧当网管),挣钱为Liz交学费,后来LIZ毕业后工作了,遇到了公司的高富帅peter,然后两人就苟且在了一起,JHON发现后非常伤心,发誓要把LIZ夺回来,然后他发粪学习,增加自身能力,参加自考,学习老男孩PYTHON,若干年后,当上了某大型互联网公司的IT总监,月薪5万,北京买了车和房,偶然又见到了LIZ,此时她已被高富PETER甩了,LIZ提出再回到JHON身边时,JHONE优雅的说。。。
    从情节中可以看出,用目前所学的知识,做交互式的话,可能意义不太大,但定义好角色的类之后,其实也是可以折腾一下的,由于时间的关系,就不去折腾了,因为这个过程中需要的其实更多的是有关游戏中的Ideas,下面就给出Alex老师写的类代码,以及我自己加的一点点的故事叙述型的游戏情节吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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类的使用的理解。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-124087-1-1.html 上篇帖子: 【Python之旅】第四篇(三):Python面向对象编程详解 下篇帖子: 【Python之旅】第五篇(一):Python Socket通信原理 模拟人生 游戏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表