用户:
一只会偷懒的papyrus查看:9 回复:3 评论:9 创建时间:2020-04-27T08:07:18
【作品展示】

【作品介绍】
一个游戏当然这个代码有我的专属文件
你可以根据需要
自己创建文件
自己修改代码
【作品源代码】
'''
灵感来源:愚公移山的成语故事
为啥要做:
在家憋得慌
这是一项大工程
因为我不会云平台
所以自己做了几个文件
很麻烦的!
这回导入了5个库:
turtle、random、pygame、time和jieba
所以说工程巨大嘛!
至于turtle
先放着
更新了再用
至于jieba
嘿嘿
刚学
这就叫:“学以致用”
'''
'''
时间:
2020年4月24日
10:00
代码行数:
199行
'''
#分5行导入需要的库
import pygame
import time
import jieba
##########定义工具函数环节###########
#定义记录前缀的变量
first_name = 'C:\\Users\\HP\\Desktop\\愚公移山\\'
#开始定义函数(这个作品没有任何类,只有两个函数,所以看着还是蛮轻松的,嘿嘿~)
#定义返回全部路径的函数
def name(real_name):
#获取前缀
global first_name
#返回路径(前缀+真实名字)
return first_name + real_name
#定义子孙加成的函数
def son_plus():
#获取两个变量
global son_count, son_plus_count
#返回新的子孙总数
return son_count + son_plus_count
#############music!(唱、跳、rap、篮球、music,嘿嘿~(当然,这是播放背景音乐))#################
#初始化mixer模块
pygame.mixer.init()
#加载音乐(不用写全部路径啦!哈哈哈!)
pygame.mixer.music.load(name('醉梦前尘.mp3'))
#播放音乐(光加载不播放,成何体统~)
pygame.mixer.music.play(loops=-1)
#分隔线
print('=' * 32)
print('这些细节不要在意')
print('这是pygame')
print('=' * 32)
#############做好准备工作(凡事必须要准备)##############
#读取文件,获取数据
son_count = int(open(name('子孙数量.txt'), 'r').read())
son_plus_count = int(open(name('子孙加成.txt'), 'r').read())
check = open(name('情节展示.txt'), 'r').read()
taihangshan_left = int(open(name('太行山剩余值.txt'), 'r').read())
wangwushan_left = int(open(name('王屋山剩余值.txt'), 'r').read())
running = 1
#检测是否挖完了两座大山(挖完了你就可以把游戏扔了~)
if taihangshan_left == 0 and wangwushan_left == 0:
print('系统检测你已挖完了两个大山,愚公一家的路非常方便')
running = 0
#把剧情分开
'''
嘿嘿~
现在你知道为啥用jieba了吧
因为剧情要一个个显示出来
'''
story = list(jieba.cut(open(name('剧情.txt'), 'r', encoding='utf-8').read()))
#分隔线
print('=' * 32)
print('这些细节不要在意')
print('这是jieba')
print('=' * 32)
#判断是否需要开头剧情(如果需要,则遍历,一个一个展示出来)
if check:
print('系统检测到你已来过一次,所以直接跳过剧情')
else:
for i in story:
print(i, end='')
time.sleep(0.05)
print('\n', end=' ')
###########正式运行(游戏不运行,成何体统~)############
while running:
#让用户选择
choice = input('''\r请输入你要执行的操作:
\r1.查询子孙数量
\r2.升级生产量
\r3.挖山
\r4.退出
\r5.剧情\n''')
#根据不同的选择,执行不同的操作
if choice == '1':
#输出子孙数量
print('你的子孙数量为:{}'.format(son_count))
elif choice == '2':
#询问是否执行
confirm = input(
'执行此工程需要耗费{}个子孙,是否执行?(是/否)'.format(son_plus_count * 50))
#如果输入为“是”,且子孙数量够的话……
#就兑换呗!(想啥呢!)
if (confirm == '是' and son_count >= son_plus_count * 50):
#耗费子孙
son_count -= son_plus_count * 50
#子孙加成增喵出提示语
print('升级成功')
elif confirm == '是':
#如果子孙不够……
#就……
#骂回去!
print('滚,子孙还不够,你个光棍!')
elif confirm == '否':
#别让用户乱输
print('系统提示:不想升级就不要乱输')
else:
#隐含提醒用户输入有误
print('败跟我劲劲的')
elif choice == '3':
#选择挖哪个山
choice1 = input('''\r你想要挖太行山,还是王屋山
\r1.太行山(山脉)
\r2.王屋山(大山) ''')
if choice1 == '1':
#这里选择挖太行山
print('太行山还剩{}部分,挖1部分需要耗费5个子孙'.format(taihangshan_left))
#让用户输入挖几部分(所耗费子孙是其5倍)
#然后的操作跟之前一样
dead_son_count = int(input('请输入你要挖几部分')) * 5
confirm = input('请确认是否要耗费{}个子孙(是/否)')
if confirm == '是':
if son_count >= dead_son_count:
son_count -= dead_son_count
taihangshan_left -= dead_son_count / 5
print('挖山成功')
else:
print('滚,子孙还不够,你个光棍!')
else:
print('系统提示:不想升级就不要乱输')
elif choice1 == '2':
#这里选择挖王屋山
#操作跟挖太行山差不多
#就不写注释了
print('王屋山还剩{}部分,挖1部分需要耗费5个子孙'.format(taihangshan_left))
dead_son_count = int(input('请输入你要挖几部分')) * 5
confirm = input('请确认是否要耗费{}个子孙(是/否)')
if confirm == '是':
if son_count >= dead_son_count:
son_count -= dead_son_count
taihangshan_left -= dead_son_count / 5
print('挖山成功')
else:
print('滚,子孙还不够,你个光棍!')
else:
print('系统提示:不想升级就不要乱输')
elif choice == '4':
#输出提示语,退出循环
print('欢迎再来,愚公一行等着你哦!')
break
elif choice == '5':
#展示剧情
for i in story:
print(i, end='')
time.sleep(0.05)
print('\n', end=' ')
else:
#隐含提醒用户输入有误
print('败跟我劲劲的')
#子孙增喵文件写入新的数据
f = open(name('子孙数量.txt'), 'w').write(str(son_count))
f = open(name('子孙加成.txt'), 'w').write(str(son_plus_count))
f = open(name('情节展示.txt'), 'w').write(str(1))
f = open(name('太行山剩余值.txt'), 'w').write(str(taihangshan_left))
f = open(name('王屋山剩余值.txt'), 'w').write(str(wangwushan_left))
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn