大一接触的python,然后被她的简洁优雅所吸引,这是我拿python做的第一个游戏,也是最不像游戏的游戏,当时刚刚学会一点python基础语法就迫不及待地写下了这款游戏,总共三百多行代码,既没有用到类,也没有用到几个函数,完全是基础语法的顺序堆砌,但是它带给我的快乐是无法言说的。
就这款在黑色窗口运行的简陋游戏,致敬我第一次编程的激动与兴奋

游戏截图

完整代码

def f():global choice,yourobject,choice2,Hp,Hunger,obj1,obj2,obj3,obj4,obj5,obj6,obj7,nun,koo,Def,Atk,uplimitwhile True:try:choice=int(input('\n>>(查看人物状态,返回1;查看物品栏,返回2):'))breakexcept:print('error')if choice==1:print('查看人物状态')print('生命:'+str(Hp)+'\n'+'饥饿:'+str(Hunger)+'\n'+'攻击:'+str(Atk)+'\n'+'防御:'+str(Def))if choice==2:print('查看物品栏')print(sorted(yourobject.values()))if sorted(yourobject.values())==[]:print('物品栏为空!')koo=1else:while True:try:choice2=int(input('是否使用物品?(是:1;否;2):'))koo=0breakexcept:print('error')if choice2==1 and koo==0:while True:try:nun=int(input('请输入将使用物品的序号:'))breakexcept:print('error')print('你使用了'+yourobject1[nun])if obj1>=2 and nun==1:obj1-=1Hunger+=80if Hunger>=uphunger:Hunger=uphungerprint('###############饥饿已达上线!')else:print('Hunger+80')yourobject[1]=str(1 )+'牛肉干'+'×'+str(obj1)elif obj1==1 and nun==1:yourobject.pop(nun)Hunger+=80if Hunger>=uphunger:Hunger=uphungerprint('###############饥饿已达上线!')else:print('Hunger+80')elif obj2>=2 and nun==2:obj2-=1Hp+=50if Hp>=uplimit:Hp=uplimitprint('###############血量已达上线!')else:print('Hp:+50')yourobject[2]=str(2 )+'旺仔牛奶'+'×'+str(obj2)elif obj2==1 and nun==2:yourobject.pop(nun)Hunger+=1Hp+=50if Hp>=uplimit:Hp=uplimitprint('###############血量已达上线!')else:print('Hp:+50')elif obj3>=2 and nun==3:obj3-=1Atk+=15Hp+=90if Hp>=uplimit:Hp=uplimitprint('###############血量已达上线!')print('攻击+15')else:print('Hp:+90\n攻击+15')yourobject[3]=str(3 )+'红牛'+'×'+str(obj3)elif obj3==1 and nun==3:yourobject.pop(nun)Atk+=15Hp+=90if Hp>uplimit:Hp=uplimitprint('###############血量已达上线!')print('攻击+15')else:print('Hp:+90\n攻击+15')elif obj4>=2 and nun==4:obj4-=1Hunger+=100if Hunger>=uphunger:Hunger=uphungerprint('###############饥饿已达上线!')else:print('Hunger+100')yourobject[4]=str(4 )+'鱼肉罐头'+'×'+str(obj4)elif obj4==1 and nun==4:yourobject.pop(nun)Hunger+=100if Hunger>=uphunger:Hunger=uphungerprint('###############饥饿已达上线!')else:print('Hunger+100')elif obj5>=2 and nun==5:obj5-=1Def+=10print('防御+10')yourobject[5]=str(5 )+'健力多'+'×'+str(obj5)elif obj5==1 and nun==5:yourobject.pop(nun)Def+=10print('防御+10')elif obj6>=2 and nun==6:obj6-=1uplimit+=300print('生命上限+300')yourobject[6]=str(6 )+'肾宝片'+'×'+str(obj6)elif obj6==1 and nun==6:yourobject.pop(nun)uplimit+=300print('生命上限+300')elif obj7>=2 and nun==7:obj7-=1Atk+=1Def+=1print('攻击+1\n防御+1')yourobject[7]=str(7 )+'彩虹糖'+'×'+str(obj7)elif obj7==1 and nun==7:yourobject.pop(nun)Atk+=1Def+=1print('攻击+1\n防御+1')if choice==2019:print('获得一枚肾宝片!!!')name='肾宝片'q()obj6+=1yourobject[6]=str(6 )+name+'×'+str(obj6)yourobject1[6]=nameelif choice==520:Atk+=200elif choice==1314:Def+=50
def g():global time,choice1while True:try:print('\n现在是{},你该如何行动?\n>>1.搜索物资;2.打开菜单栏;3.在庇护所修整'.format(timedic[time]))choice1=int(input('>>你的选择是(输入1或2或3)?:'))breakexcept:print('error')
def t():enter=input('(enter继续游戏)')if enter=='':pass
def t1():enter=input('(enter继续战斗!)\n')if enter=='':print('\n'+'*'*50)
def w():global Hp,die,tapff=randint(0,50)if ff==12 or ff==5 or ff==28 or ff==44:print('\n糟糕!\n出现了僵尸头目!!!')Hp-=50print('经过战斗,你损失了50点HP\n-50Hp')elif  tap==1:print('你遭遇了尸潮!!!')Hp-=300print('受到重创!!!\nHp-300')die=1elif ff>30 and ff<40:print('\n糟糕!\n出现了普通僵尸!!!')Hp-=10print('经过战斗,你损失了10点HP\n-10Hp')else:print('\n你没有惊动丧尸。\n')
def w1():global monster,Hp,Hp1print('{}发现了你!!!\n你将面临苦战!'.format(monster))t()while Hp>0 and Hp1>0:first=randint(0,1)if first==0:print('>>{}的回合!\n'.format(monster))w2()t1()elif first==1:print('>>你的回合!\n')w3()t1()
def w2():global Atk1,Def,Hp,Hp1mon1=randint(1,10)if mon1==1:if Atk1<=Def:print('miss')else:Hp-=(Atk1-Def)print('>{}抬起了血腥的利爪,一记重击!               {}的HP:{}\n                                                   你的HP:{}\n***对你造成了{}点伤害!'.format(monster,monster,Hp1,Hp,Atk1-Def))else:if Atk1<=3*Def:print('miss')else:Hp-=(Atk1-3*Def)print('>{}抬手进行了普通攻击!               {}的HP:{}\n                                              你的HP:{}\n***对你造成了{}点伤害!'.format(monster,monster,Hp1,Hp,Atk1-3*Def))
def w3():global monster,Atk,Def1,Hp1,Hpyou=randint(1,10)if you==1:if 2*Atk<=Def1:print('miss')else:Hp1-=(2*Atk-Def1)print('>你打出了致命一击!!!               {}的HP:{}\n                                          你的HP:{}\n***对{}造成了{}点伤害!!!'.format(monster,Hp1,Hp,monster,2*Atk-Def1))else:if Atk<=Def1:print('miss')else:Hp1-=(Atk-Def1)print('>你打出了普通攻击!               {}的HP:{}\n                                   你的HP:{}\n***对{}造成了{}点伤害!!!'.format(monster,Hp1,Hp,monster,Atk-Def1))def h():global obj1,obj2,name,obj3,obj4,obj5,obj6,obj7print('开始搜索!')obj=randint(1,40)if obj==1 or obj==4 or obj==7:name='牛肉干'q()obj1+=1yourobject[1]=str(1 )+name+'×'+str(obj1)yourobject1[1]=nameelif obj==14 or obj==17 or obj==20 or obj==21:name='旺仔牛奶'q()obj2+=1yourobject[2]=str(2 )+name+'×'+str(obj2)yourobject1[2]=nameelif obj==2 or obj==8 or obj==13:name='红牛'q()obj3+=1yourobject[3]=str(3 )+name+'×'+str(obj3)yourobject1[3]=nameelif obj==24 or obj==11 or obj==10:name='鱼肉罐头'q()obj4+=1yourobject[4]=str(4 )+name+'×'+str(obj4)yourobject1[4]=nameelif obj==5 or obj==15:name='健力多'q()obj5+=1yourobject[5]=str(5 )+name+'×'+str(obj5)yourobject1[5]=nameelif obj==9:name='肾宝片'q()obj6+=1yourobject[6]=str(6 )+name+'×'+str(obj6)yourobject1[6]=nameelif obj==40 or obj==33 or obj==35 or obj==37:name='彩虹糖'q()obj7+=1yourobject[7]=str(7 )+name+'×'+str(obj7)yourobject1[7]=nameelse:print('你什么都没找到!')t()
def q():global nameprint('恭喜你,获得了'+name)t()yourobject={}
yourobject1={}
obj1=0
obj2=0
obj3=0
obj4=0
obj5=0
obj6=0
obj7=0
Hp=250
uplimit=250
Hp1=550
Hunger=300
uphunger=300
Day=0
time=1
choice1=0
name=''
name2=''
a=''
monster=''
choice2=100
koo=0
tap=0
Atk=22
Atk1=70
Def=10
Def1=20
die=0
timedic={1:'清晨6点',2:'中午12点',3:'下午2点',4:'傍晚6点',5:'午夜12点'}
from random import*
while Hp>0:Day+=1time=1tap=0print('\n>>你被庇护所外丧尸的吼叫吵醒了,你活到了第{}天!######'.format(Day))if Day==1:print('末世的第一天,整座城市都被丧尸袭击了,交通瘫痪,电力受损。\n清晨6点,面对着突如其来的一切,你感到了迷茫与无助。')elif Day==7:print('\n事态似乎愈来愈严重了!\n')t()monster='【䘮爆者】'w1()if Hp<=0:print('你死了!')breakelif Hp1<=0:print('{}已经死亡!'.format(monster))print('\n>>>>获得一枚肾宝片!!!')name='肾宝片'q()obj6+=1yourobject[6]=str(6 )+name+'×'+str(obj6)yourobject1[6]=nameelif Day==22:print('\n你不确定是否还有活人!\n')t()monster='【尸王】'Hp1+=3000Atk1+=200Def1+=50w1()if Hp<=0:print('你死了!')breakelif Hp1<=0:print('{}已经死亡!'.format(monster))print('\n>>>>获得一枚肾宝片!!!')name='肾宝片'q()obj6+=1yourobject[6]=str(6 )+name+'×'+str(obj6)yourobject1[6]=namet()while time<=5:g()if choice1==1:time+=1Hunger-=10print('\n饥饿让你行动迟缓!  Hunger-10\n')h()if time==6:tap=1w()if die==1 and Hp<=0:print('你在尸潮中死亡!')breakelif choice1==2:time=timef()elif choice1==3:time+=1Hp+=30if Hp>=uplimit:Hp=uplimitprint('###############血量已达上线!无需休息!')else:print('Hp:+30')if Hunger<=0:Hp+=Hungerprint('饥饿让你抓狂!\n你损失了{}点Hp\n-{}Hp'.format(abs(Hunger),abs(Hunger)))
print('gameover')
input('123:')

python基于pygame的贪吃蛇大作战

python只会基础能做什么?---你可以做一个文字游戏!相关推荐

  1. python十大必备知识_学Python必备的基础知识

    学Python必备的基础知识 1.基本概念 表达式:就是一个类似于数学公式的东西,一般仅仅用了计算一些结果 ,不会对程序产生实质性的影响,如9+3; 语句:在程序中语句一般需要完成某种功能,比如打印信 ...

  2. python 只循环目录_看完这篇文章,你的Python基础就差不多了

    世界那么大,谢谢你来看我!!关注我你就是个网络.电脑.手机小达人 前言 本文是基于黑马程序员2019年的Python基础班的内容编写的,以2019年的资料为蓝本,2018年的资料为补充,还参考了一些网 ...

  3. Python的零基础超详细讲解(第七天)-Python的数据的应用

    往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...

  4. 零基础学python爬虫-零基础如何学爬虫技术?一篇带你入门!(理论+实操+荐书)...

    对于小白来说,爬虫可能是一件非常复杂.技术门槛很高的事情. 但掌握正确的方法,在短时间内做到能够爬取主流网站的数据,其实非常容易实现! 同时,你需要从一开始就有一个具体的目标!只有在目标的驱动下,你的 ...

  5. python 科学计算基础教程电子版-自学Python 编程基础、科学计算及数据分析

    自学Python 编程基础.科学计算及数据分析 epub pdf mobi txt 下载 自学Python 编程基础.科学计算及数据分析 epub pdf mobi txt 下载 ☆☆☆☆☆ 李金 著 ...

  6. python类装饰器详解-Python装饰器基础概念与用法详解

    本文实例讲述了Python装饰器基础概念与用法.分享给大家供大家参考,具体如下: 装饰器基础 前面快速介绍了装饰器的语法,在这里,我们将深入装饰器内部工作机制,更详细更系统地介绍装饰器的内容,并学习自 ...

  7. python编程基础是什么-Python面向对象编程基础解析(一)

    1.什么是面向对象 面向对象(oop)是一种抽象的方法来理解这个世界,世间万物都可以抽象成一个对象,一切事物都是由对象构成的.应用在编程中,是一种开发程序的方法,它将对象作为程序的基本单元. 2.面向 ...

  8. 学习python需要什么基础-学习Python需要哪些基础知识?

    今天是腊月二十七,给各位朋友拜个早年! Python学习可以分为几个阶段,入门.进阶.应用. 先说说入门需要哪些基本的知识储备. Python因为易于学习的特点,入门很简单,掌握基本的Python知识 ...

  9. python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)...

    python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程并行与并发同步与异步阻塞与非阻塞CPU密集型与IO密集型 线程与进程 进程 前言 ...

最新文章

  1. PHP 配置文件详解(php.ini 详解 )
  2. Kubernetes安装之五:配置kubectl客户端
  3. Idea控制台中文乱码解决方案
  4. 使用Jexus 容器化您的 Blazor 应用程序
  5. mysql将系统权限授予用户_mysql创建用户并授予权限
  6. 产品经理眼中的供应链、物流与采购管理
  7. 正则表达式只能写数字_正则表达式真的很骚,可惜你不会写
  8. [Web 前端] CSS篇之 4. position 和 display 的取值和各自的意思和用法
  9. width:100%与绝对定位同时存在,偏移出父级容器
  10. iOS换肤功能的简单处理框架
  11. matlab卷积不从0开始,matlab 编辑卷积出错
  12. 电脑黑屏但光标、杀毒软件加速球可见
  13. HTML | 分享几个HTML邮件样式模板
  14. Win10如何ping端口是否开放
  15. matlab中matconvnet,MATLAB2017a编译MatConvNet过程中出现的各种问题
  16. ANO Tech 匿名四轴 制作分享
  17. 基于深度学习的语音分类识别(附代码)
  18. 第六节-列空间与零空间
  19. 注塑模具设计时,需要依据哪些设定原则?
  20. 压缩比13为什么建议用92的油_为什么如今的发动机压缩比大于10,却可以烧92号汽油...

热门文章

  1. 电解电容和钽电容的区别
  2. 【百度实习录】新人练习
  3. Mac os删除自带ABC输入法,只保留搜狗输入法
  4. 工作中如何时间管理?
  5. java课程任务_修真院java后端工程师学习课程--任务1(day three)
  6. php 多参数函数,php自定义函数的参数在函数间传递的三种方式详解
  7. 为什么学完这个他们都跳槽/涨薪了?
  8. 清华四年,我学到了什么?
  9. 大话设计模式读书笔记之原型模式
  10. PL/SQL Developer设置日期格式