猫史档案馆


【Python作品分享】愚公移山【作品秀】

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


【作品展示】

center_image

 

【作品介绍】

一个游戏

当然这个代码有我的专属文件

你可以根据需要

自己创建文件

自己修改代码

 

【作品源代码】

'''
灵感来源:愚公移山的成语故事
为啥要做:
在家憋得慌
这是一项大工程
因为我不会云平台
所以自己做了几个文件
很麻烦的!
这回导入了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


回复

上一页1 页 / 共 1下一页
热情的月见草s4hL热情的月见草s4hL

我有Python 3.8.2安装包

点赞0


评论


热情的月见草s4hL热情的月见草s4hL

有本事你和我们工作室的黑客比,他精通7种语言,写过5000多行服务器代码

点赞0


评论


热情的月见草s4hL热情的月见草s4hL

center_image

点赞0


评论