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

python 面向对象编程 class 类 模拟人生游戏

摘要:  需要用面向对象的思想编写一个模拟人生的小游戏,其实就目前学的知识来说,最多只能写个故事叙述类的小游戏,因此这里只是给出该游戏中有关class的代码,代码是Alex老师写的,对进一步加深Python面向对象的特性有很大帮助!     游戏的情节梗概如下: John and Liz 是高中同学时的恋...

需要用面向对象的思想编写一个模拟人生的小游戏,其实就目前学的知识来说,最多只能写个故事叙述类的小游戏,因此这里只是给出该游戏中有关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类的使用的理解。

转载于:https://www.cnblogs.com/weiman3389/p/6044957.html

基于面向对象的模拟人生游戏类相关推荐

  1. 【Python之旅】第四篇(四):基于面向对象的模拟人生游戏类

    需要用面向对象的思想编写一个模拟人生的小游戏,其实就目前学的知识来说,最多只能写个故事叙述类的小游戏,因此这里只是给出该游戏中有关class的代码,代码是Alex老师写的,对进一步加深Python面向 ...

  2. php面向对象分页,PHP基于面向对象封装的分页类示例

    本文实例讲述了php基于面向对象封装的分页类.分享给大家供大家参考,具体如下: class page { protected $num;//每页显示条数 protected $total;//总记录数 ...

  3. 每日一题.PYTHON面向对象编写模拟人生屌丝逆袭游戏(登录类/角色类/场景类)?

    文件结构: [root@xmdevops xmdevops_limanman]# tree |grep -v ".pyc" |-- main.py                 ...

  4. java小游戏:蜡笔小新!!!基于JAVA面向对象实现的跑酷类游戏(小新跑酷)(简单小游戏,仅仅使用Java面向对象基础实现(附上源码))

    一起来看一下蜡笔小新,很好看的,解压!!!!!!!!!!!!!!! 由于Java面向对象基础的游戏,有一定的局限,但是我觉得这款的可玩性已经很高了,话不多说一起来看游戏: 游戏界面,点击空格跳跃来躲避 ...

  5. 基于Springboot+Vue的MOBA类游戏攻略分享平台

    摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息.为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,M ...

  6. [安卓] 12、开源一个基于SurfaceView的飞行射击类小游戏

    前言  这款安卓小游戏是基于SurfaceView的飞行射击类游戏,采用Java来写,没有采用游戏引擎,注释详细,条理比较清晰,适合初学者了解游戏状态转化自动机和一些继承与封装的技巧. 效果展示    ...

  7. java刘备猜拳游戏类_基于java实现人机猜拳游戏

    本文实例为大家分享了java实现人机猜拳游戏的具体代码,供大家参考,具体内容如下 完成人机猜拳互动游戏的开发,用户通过控制台输入实现出拳,电脑通过程序中的随机数实现出拳,每一局结束后都要输出结果.当用 ...

  8. PixoArena 一款基于区块链的收集类游戏

    PixoArena 是一款基于区块链的游戏,在游戏中你可以招募独特的战士,并且还可以和其他玩家参加战斗, 在排行榜上取得名次,就可以获得一定代币奖励.每个战士生成后系统会随机附带一定的属性,这些属性包 ...

  9. 基于java的俄罗斯方块游戏系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)

    基于Java的俄罗斯方块游戏的设计与实现 俄罗斯方块是一款风靡全球,从一开始到现在都一直经久不衰的电脑.手机.掌上游戏机产品,是一款游戏规则简单,但又不缺乏乐趣的简单经典小游戏,上手容易,适用范围广泛 ...

最新文章

  1. 设计模式 — 行为型模式 — 观察者模式
  2. Java基础—序列化关键字transient
  3. 4.4.5 清除变量内容
  4. 计算机片段教学优秀教案,精彩教学片段100例—导入篇(1)
  5. 铜陵高考2021年成绩查询,滁州高考成绩查询入口2021
  6. 计算机做减法运算的过程,32位汇编基础_计算机做加减乘除
  7. ibatis 存储过程 结果集 map_大数据之MapReduce shuffle过程
  8. XNA 3.1 转换到 XNA4.0 的备忘录
  9. 常见免费邮箱 SMTP 服务地址及端口
  10. IP地址分为A,B,C,D,E五类
  11. R语言缺失值高级处理方法
  12. 服务器基线加固脚本_安全服务之安全基线及加固(一)Windows篇
  13. springboot 配置热启动
  14. Top命令查询结果界面参数详解
  15. IDEA2021版本的安装和使用教程
  16. serialplot虚拟串口示波器使用方法
  17. 工具说明书 - 使用网页生成条码
  18. 如何使用 IntelliJ IDEA(2020.2)构建一个JavaWeb项目
  19. 创意黑板教育教学PPT模板
  20. matlab 替代品_MATLAB的4种开源替代品

热门文章

  1. 求助!!C++ int接收的式子有小数但是所有的计算结果都是整数,最终结果错误的灵异事件。
  2. 求解形式幂级数的一阶微分方程
  3. SQL自动检查神器项目,吊炸天的功能
  4. error: ‘path_wts’ does not name a type
  5. [菜鸟训练]347. 前 K 个高频元素
  6. 计算机二级的Word知识点,计算机二级word知识点
  7. Android Studio实现数独小游戏,休闲益智
  8. python提示unmatched_Python: Unmatched group exception
  9. [画风突变] 藤原千花专属相册,C语言制作书记专属电子相册!
  10. 如果你在犹豫要不要去外包公司,不妨看看这篇文章