故事背景:

2B先生和美丽是一对恋人,自从来到北京打拼两年后,两人关系渐渐发生了微妙的变化,故事从此开始... ...有点像北京爱情故事,但没有复仇情节

  1 #! /usr/bin/env python
  2 # -*- coding:utf-8 -*-
  3 #__author__:leon
  4
  5 import sys
  6 import time
  7
  8 class Person(object):
  9     rolesflag = {"loser":32,"peri":36,"fat_cat":31}  # 定义输出颜色标示
 10     def __init__(self,name,age,sex,role,asset):
 11         self.name = name
 12         self.age = age
 13         self.sex = sex
 14         self.role = role
 15         self.asset = asset
 16     def talk(self, msg, tone='normal'):
 17         '''
 18         :param msg:交谈的字体颜色定义
 19         :return:
 20         '''
 21         if tone == 'angry':
 22             for s in msg:
 23                 sys.stdout.write('\033[31;1m%s\033[0m' % s)
 24                 sys.stdout.flush()
 25                 time.sleep(0.1)
 26             sys.stdout.write('\n')
 27         else:
 28             for s in msg:
 29                 sys.stdout.write('\033[%d;1m%s\033[0m' % (self.rolesflag[self.role], s))
 30                 sys.stdout.flush()
 31                 time.sleep(0.1)
 32             sys.stdout.write('\n')
 33
 34     def asset_total(self, money, action):
 35         '''
 36         角色拥有的资产值,计算赚的钱与花的钱
 37         :param: money  钱的数目
 38         :param: action  花费
 39         '''
 40         if action == 'earn':
 41             self.asset += money
 42             print('\033[32;1m%s赚了 %s 元!资产增加 %s 元\033[0m' % (self.name, money, self.asset))
 43         elif action == 'cost':
 44             self.asset -= money
 45             print('\033[31;1m%s花了 %s 元! 仅剩 %s 元\033[0m' % (self.name, money, self.asset))
 46
 47 def progress_test():
 48     """
 49     定义进度条
 50     """
 51     bar_length=80
 52     for percent in range(0, 101):
 53         hashes = '#' * int(percent/100.0 * bar_length)
 54         spaces = ' ' * (bar_length - len(hashes))
 55         sys.stdout.write("\rLoading: [%s] %d%%"%(hashes + spaces, percent))
 56         sys.stdout.flush()
 57         time.sleep(0.05)
 58
 59 def introduce(p1,p2,p3):
 60     '''
 61     初始化人物角色,开场介绍。
 62     :param p1: 屌丝角色
 63     :param p2: 土豪角色
 64     :param p3: 美女角色
 65     :return:None
 66     '''
 67     print('')
 68     print('*' * 150)
 69     print('\033[31;1m 欢迎登陆模拟人生游戏 \033[0m'.center(150))
 70     print('*' * 150)
 71
 72     print('游戏人物简介:')
 73     p1.talk('[%s]: 我是2B,今年%d岁,我是一个从农村出来的孩子,对未来充满憧憬,虽然穷,但是有个美丽的女朋友一直是我的骄傲!代言loser' % (p1.name, p1.age))
 74     p2.talk('[%s]: 我是土豪猫,今年%d岁,一个准官二代。有车有房,身边除了钱就是妹子,生活已经没有多大追求了,除了嗑药,把妹是我唯一的爱好!代言fat_cat' % (p2.name, p2.age))
 75     p3.talk('[%s]: 我是美丽,今年%d岁,人如其名,除了好看以外还有着36D的骄傲,那个谁谁谁都可以演《美人鱼》一炮而红,我不甘心,我要奢侈生活!代言peri' % (p3.name, p3.age))
 76
 77 def show_story():
 78     '''
 79     故事背景介绍
 80     :return:
 81     '''
 82     print('-' * 150)
 83     print('第一章:故事背景'.center(150))
 84     print('-' * 150)
 85     print('2B和美丽是发小,从初中开始幼稚恋一直到大学毕业,毕业后一起到大北京闯荡江湖。'
 86           '\n2B通过自己的努力奋斗,终于找到了一份8000块的工作,美丽也找到一份5000块的工作'
 87           '\n通过两人的努力奋斗,小两口终于有点小积蓄了,可是他们发现房价越来越高了,在看看自己的积蓄才这么一点点:')
 88     p1.asset_total(20000, 'earn')
 89     p3.asset_total(10000, 'earn')
 90     print('2B发现了美丽的不爽,心想:不如先把婚给结了,然后再考虑未来,否则媳妇儿跑了,再找就麻烦了,于是开始准备求婚计划了... ...')
 91     time.sleep(0.5)
 92
 93 def show_crisis():
 94     '''
 95     感情出现信任危机
 96     :return:
 97     '''
 98     print('-' * 150)
 99     print('第二章:求婚显危机'.center(150))
100     print('-' * 150)
101     p1.talk('[%s]: 美丽,我们一起了这么多年,我的真心天地可鉴,请嫁给我吧!' % p1.name)
102     p3.talk('[%s]: 2B,我们恋爱那么久,没车没房,买个爱马仕的包包,我想都不敢想,以后的生活怎么过啊?' % p3.name)
103     p1.talk('[%s]: 美丽,我们一起努力,以后生活肯定会过得更好的!' % p1.name)
104     p3.talk('[%s]: 我受够了这样的生活,放弃吧!猫对我很好,我想我们该结束了'% p3.name)
105     p2.talk('[%s]: 对,我对美丽是真心的,你这么穷,就别瞎胡闹了!' % p2.name)
106     p1.talk('[%s]: 美丽,你说的是真的吗,你爱他吗?' % p1.name)
107     p3.talk('[%s]: 我不管,我只想过我要的生活,我们over吧' % p3.name,)
108     p1.talk('[%s]: 给我点时间想想吧,到时候我们再做决定!' % p1.name)
109     p3.talk('[%s]: 好吧,就给你1天时间!' % p3.name)
110     time.sleep(0.5)
111
112 def choose():
113     """
114     用户交互,做出感情决定
115     """
116     print('-' * 150)
117     print('约定的时间到了,开始选择:  \033[31;1m1 不答应 2 答应\033[0m')
118     while True:
119         one = input('2B,请选择 1 或者 2 :').strip()
120         if one == '':
121             continue
122         two = input('美丽,请选择1或者2:').strip()
123         if two == '':
124             continue
125         if one in ['1', '2'] and two in ['1', '2']:
126             if one == '2' and two == '2':
127                 together()
128                 break
129             elif one == '1' or two == '1':
130                 separate()
131                 break
132         else:
133             print('你不按套路出牌啊,说好的选择1和2,你偏选3,告诉你选择3等于重来,哈哈', 'angry')
134
135 def together():
136     '''
137     角色2B 和 美丽 选择在一起,最终结局输出
138     :return:
139     '''
140     print('-' * 150)
141     print('第三章:在一起后结局'.center(150))
142     print('-' * 150)
143     print('美丽回心转意,答应了2B的求婚,两人最终在一起!')
144     p1.talk('[%s]: 美丽,你终于想通啦,我们才是门当户对啊!' % p1.name)
145     p3.talk('[%s]: 嗯,即使猫有车有房,但是他整天去泡妞娘,还吸毒,这种人太不靠谱了!' % p3.name)
146     p3.talk('[%s]: 我们通过自己的努力,也会有房有车有爱马仕的!' % p3.name)
147     p2.talk('[%s]: 美丽,我不是你说的那样的人,你误会了!' % p2.name)
148     p3.talk('[%s]: 2B我们离开这里吧,我不想再见到他了' % p3.name)
149     p1.talk('[%s]: 好,我们一起走!' % p1.name)
150     print('2B和美丽离开了大北京,经过若干年的努力也有房有车了,猫因为吸毒久了,最终挂了!')
151     print('\033[31;1m  剧 终  \033[0m'.center(150, '*'))
152
153 def separate():
154     '''
155     角色2B 和 美丽 选择在不一起,最终结局输出
156     :return:
157     '''
158     print('-' * 150)
159     print('第三章:2B失败了,美丽和高富帅走了'.center(150))
160     print('-' * 150)
161     p1.talk('[%s]: 美丽,你真狠心,真的能忘记过去吗?' % p1.name)
162     p3.talk('[%s]: 我不能,但是我能改变现在... ...' % p3.name, 'angry')
163     p1.talk('[%s]: 希望你不要后悔' % p1.name)
164     p3.talk('[%s]: 2B你也别太难过,找个好人就嫁了吧。猫,我们走吧!' % p3.name, 'angry')
165     print('伤心过后的2B,参加Python培训,最终当上CIO,也买车买房了。(怎么可能呢?哈哈)')
166     print('当了CIO的2B在公司门口唱了一首《没有理想的人不伤心》一炮走红,老板为了公司打广告一口气给了2B一大笔奖金:')
167     p1.asset_total(5000000, 'earn')
168     print('终有一天,2B在五星级酒店吃饭看到一个服务员,当场惊呆了!')
169     p1.talk('[%s]: 你怎么会在这里?' % p1.name, 'angry')
170     p3.talk('[%s]: 猫去年因为吸毒挂了,留下了一堆债务还有我... ...' % p3.name, )
171     p1.talk('[%s]: 造孽啊,早知今日,何必当初呢!' % p1.name, 'angry')
172     p3.talk('[%s]: 2B,你能帮帮我吗?' % p3.name, )
173     p1.talk('[%s]: 100W如何?' % p1.name, 'angry')
174     p3.talk('[%s]: 我不要钱,我只想给肚子里的孩子找个爹' % p3.name)
175     p1.talk('[%s]: 别做梦啦,把孩子打掉吧,虽然他是无辜的,但也成不了富二代了!' % p1.name, 'angry')
176     print('最终2B潇洒的丢了50W,扬长而去... ...美丽最终选择离开了大北京,回到老家继续苦逼的生活!')
177     print('\033[31;1m  剧 终  \033[0m'.center(150, '*'))
178
179 if __name__ == "__main__":
180     p1 = Person("loser",22,"Male","loser",8000)
181     p2 = Person("fat_cat",31,"Male","fat_cat",500000)
182     p3 = Person("peri",21,"Female","peri",5000)
183     progress_test()
184     introduce(p1,p2,p3)
185     show_story()
186     show_crisis()
187     choose()

View Code

流程图稍后附上

转载于:https://www.cnblogs.com/leon2012/p/5246250.html

python 模拟人生相关推荐

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

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

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

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

  3. Python爬取B站5000条视频,揭秘为何千万人为它流泪

    作者 | Yura编辑 | 胡巍巍来源 | CSDN(ID:CSDNnews) 导语:我们特邀作者Yura爬取B站5000条视频,为你揭秘电影<哪吒>的更多"优秀梗", ...

  4. Python爬取B站5000条视频,揭秘为何千万人看「哪吒」流泪

    导读:<哪吒>看哭了无数人!有很多小朋友,一开始他们还被太乙真人的滑稽,逗得哈哈笑.到了哪吒成魔要杀父亲.跪别父母.因为宿命不得以和敖丙为敌时,影院里突然安静下来. 人们喜欢<哪吒& ...

  5. Python 爬取 B 站 5000 条视频,揭秘为何千万人为它流泪!

    [CSDN 编者按]<哪吒>看哭了无数人!编者看的那场,有很多小朋友,一开始他们还被太乙真人的滑稽,逗得哈哈笑.到了哪吒成魔要杀父亲.跪别父母.因为宿命不得以和敖丙为敌时,影院里突然安静下 ...

  6. Python 开发学习路线

    第一阶段:Python 语言基础 数据类型 流程控制 常用模块 函数.迭代器.装饰器 递归.迭代.反射 面向对象编程 购物车程序 计算器程序开发 模拟人生游戏开发 第二阶段:网络编程 Socket c ...

  7. python自动化办公能做什么-用Python自动办公,做职场高手(完结)

    教程目录: ┣━07.S2 Word自动化处理,又快又好做文档 ┃ ┣━36 本章介绍 ┣━08.[Word]S2-1 轻松用Python快速生成Word文档 ┃ ┣━45.[真实案例]S2-1-3 ...

  8. 基于面向对象的模拟人生游戏类

    [Python之旅]第四篇(四):基于面向对象的模拟人生游戏类 python 面向对象编程 class 类 模拟人生游戏 摘要:  需要用面向对象的思想编写一个模拟人生的小游戏,其实就目前学的知识来说 ...

  9. python运维系统开发_Python系统运维开发实战

    课程主题: Python 高级运维开发实战 课程讲师: Alex 老师, triaquae python 开源运维管理软件创始人,知名 IT 公司运维开发架构师 课程安排: 每周六一天全天(早 9:0 ...

  10. python自动化ppt_老男孩Python自动化开发12期完整精华版(含作业代码课件)

    [课程内容] 第1章: 开课介绍 同学互相介绍 Python简史介绍 python3的新特性 开发工具ide介绍 helloworld程序 变量与赋值 用户交互 条件判断与缩进 循环控制 循环次数限制 ...

最新文章

  1. walle(瓦力)部署系统的安装和简单使用
  2. oracle触发器修改同一张表,oracle触发器中对同一张表进行更新再查询时,需加自制事务...
  3. Node.js v7 Beta版引入citgm
  4. Eclipse 中 按 Ctrl+Shift+F 格式化代码时每行容纳的字符数
  5. 1.极限——介绍_1
  6. adb shell 命令之----pm
  7. Linux基础之while语句
  8. LeetCode 150. Evaluate Reverse Polish Notation
  9. 看半小时漫画,通晓计算机基础
  10. Tipard Screen Capture for Mac如何掌握音频?速来看
  11. 服务器内存傲腾基本参数信息,服务器傲腾内存
  12. java gui 测试工具_开发者眼中最好的22款GUI测试工具(上)
  13. 国内主要安全产品及厂商汇总
  14. Spring项目中自定义注解的使用
  15. java中级程序员全面学习路线教程
  16. Python开发《外星人入侵》游戏项目,付详细代码和注释
  17. 史上最难618,公域遇冷、私域热
  18. 江西 南昌 富士康 java,好消息!富士康智能科技小镇落户小蓝经开区!总投资达110亿元...
  19. cannot bind non-const lvalue reference of type ‘***‘ to an rvalue of type ‘***‘解决方法
  20. 关于用户 'SA' 登录失败

热门文章

  1. mybatis 主从表关联查询封装返回结果
  2. JS实现查找数组中对象的属性值是否存在
  3. Windows平台下安装MongoDB(集群)
  4. SqlServer2008R2附加数据库错误5123
  5. SqlServer递归查询树形结果数据
  6. DIV+CSS的好处和意义
  7. 一个基于protobuf的极简RPC
  8. 31. 了解各种与排序有关的选择
  9. 15. Provide access to raw resources in resouce-managing classes
  10. JAVAWeb项目 微型商城项目-------(二)数据库设计