python 模拟人生
故事背景:
2B先生和美丽是一对恋人,自从来到北京打拼两年后,两人关系渐渐发生了微妙的变化,故事从此开始... ...有点像北京爱情故事,但没有复仇情节
![](/assets/blank.gif)
![](/assets/blank.gif)
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 模拟人生相关推荐
- 【Python之旅】第四篇(四):基于面向对象的模拟人生游戏类
需要用面向对象的思想编写一个模拟人生的小游戏,其实就目前学的知识来说,最多只能写个故事叙述类的小游戏,因此这里只是给出该游戏中有关class的代码,代码是Alex老师写的,对进一步加深Python面向 ...
- 每日一题.PYTHON面向对象编写模拟人生屌丝逆袭游戏(登录类/角色类/场景类)?
文件结构: [root@xmdevops xmdevops_limanman]# tree |grep -v ".pyc" |-- main.py ...
- Python爬取B站5000条视频,揭秘为何千万人为它流泪
作者 | Yura编辑 | 胡巍巍来源 | CSDN(ID:CSDNnews) 导语:我们特邀作者Yura爬取B站5000条视频,为你揭秘电影<哪吒>的更多"优秀梗", ...
- Python爬取B站5000条视频,揭秘为何千万人看「哪吒」流泪
导读:<哪吒>看哭了无数人!有很多小朋友,一开始他们还被太乙真人的滑稽,逗得哈哈笑.到了哪吒成魔要杀父亲.跪别父母.因为宿命不得以和敖丙为敌时,影院里突然安静下来. 人们喜欢<哪吒& ...
- Python 爬取 B 站 5000 条视频,揭秘为何千万人为它流泪!
[CSDN 编者按]<哪吒>看哭了无数人!编者看的那场,有很多小朋友,一开始他们还被太乙真人的滑稽,逗得哈哈笑.到了哪吒成魔要杀父亲.跪别父母.因为宿命不得以和敖丙为敌时,影院里突然安静下 ...
- Python 开发学习路线
第一阶段:Python 语言基础 数据类型 流程控制 常用模块 函数.迭代器.装饰器 递归.迭代.反射 面向对象编程 购物车程序 计算器程序开发 模拟人生游戏开发 第二阶段:网络编程 Socket c ...
- python自动化办公能做什么-用Python自动办公,做职场高手(完结)
教程目录: ┣━07.S2 Word自动化处理,又快又好做文档 ┃ ┣━36 本章介绍 ┣━08.[Word]S2-1 轻松用Python快速生成Word文档 ┃ ┣━45.[真实案例]S2-1-3 ...
- 基于面向对象的模拟人生游戏类
[Python之旅]第四篇(四):基于面向对象的模拟人生游戏类 python 面向对象编程 class 类 模拟人生游戏 摘要: 需要用面向对象的思想编写一个模拟人生的小游戏,其实就目前学的知识来说 ...
- python运维系统开发_Python系统运维开发实战
课程主题: Python 高级运维开发实战 课程讲师: Alex 老师, triaquae python 开源运维管理软件创始人,知名 IT 公司运维开发架构师 课程安排: 每周六一天全天(早 9:0 ...
- python自动化ppt_老男孩Python自动化开发12期完整精华版(含作业代码课件)
[课程内容] 第1章: 开课介绍 同学互相介绍 Python简史介绍 python3的新特性 开发工具ide介绍 helloworld程序 变量与赋值 用户交互 条件判断与缩进 循环控制 循环次数限制 ...
最新文章
- walle(瓦力)部署系统的安装和简单使用
- oracle触发器修改同一张表,oracle触发器中对同一张表进行更新再查询时,需加自制事务...
- Node.js v7 Beta版引入citgm
- Eclipse 中 按 Ctrl+Shift+F 格式化代码时每行容纳的字符数
- 1.极限——介绍_1
- adb shell 命令之----pm
- Linux基础之while语句
- LeetCode 150. Evaluate Reverse Polish Notation
- 看半小时漫画,通晓计算机基础
- Tipard Screen Capture for Mac如何掌握音频?速来看
- 服务器内存傲腾基本参数信息,服务器傲腾内存
- java gui 测试工具_开发者眼中最好的22款GUI测试工具(上)
- 国内主要安全产品及厂商汇总
- Spring项目中自定义注解的使用
- java中级程序员全面学习路线教程
- Python开发《外星人入侵》游戏项目,付详细代码和注释
- 史上最难618,公域遇冷、私域热
- 江西 南昌 富士康 java,好消息!富士康智能科技小镇落户小蓝经开区!总投资达110亿元...
- cannot bind non-const lvalue reference of type ‘***‘ to an rvalue of type ‘***‘解决方法
- 关于用户 'SA' 登录失败