猫史档案馆


【Python作品分享】坐标藏藏(更新版)【作品秀】

用户:一只会偷懒的papyrus一只会偷懒的papyrus查看:3 回复:1 评论:3 创建时间:2020-04-01T13:57:13


【作品展示】

center_image

 

【作品介绍】

猜点P的坐标,可以选择对应的音乐

主要是让大家看一下我的307行代码,好不容易才做成的

 

【作品源代码】

'''
坐标藏藏(上次的更新版)
更新着的时候
喵D顺序搞反了
我去!
难怪提示错误!
毁了我高大的形象(虽然有点假~~~)
这怎么能行!
心情好不容易才缓过来
好了好了,回归正题:
更新内容:
增加了音乐
并且可以点歌
增加了难易程度的选择
可以根据自己的情况来选择
可能有几个玩意儿
大家不要在意
这是pygame造成的
要不然哪有背景音乐呢
'''
'''
时间:
2020年4月1日
11:28
代码行数:
307行
'''
#导入random、time、pygame三个库,习惯性的一行搞定
import random,time,pygame





########让用户选歌,然后播放音乐##########





#初始化mixer模块
pygame.mixer.init()
#分隔线,以方便用户区分主界面
print('=' * 32)
print('这些细节不要在意')
print('这是pygame')
print('=' * 32)
#把音乐地址存入字典中
file_dict = {'1':'C:\\Users\\hp\\Desktop\\醉梦前尘.mp3',
            '2':'C:\\Users\\hp\\Desktop\\银临 - 问琴[高音质 MP3].mp3',
            '3':'C:\\Users\\HP\\Desktop\\夜空中最亮的星.mp3'}
#选择音乐
while 1:
    try:
        file = file_dict[input('请选择音乐:1.醉梦前尘;2.问琴;3.夜空中最亮的星')]
        break
    except:
        print('输入有误')
#加载用户选择的音乐
pygame.mixer.music.load(file)
#播放音乐(重复播放)
pygame.mixer.music.play(loops = -1)






###########给需要的变量赋值################







x,y,input_x,input_y,first_clock,now_clock,text,mode,large_number = 0,0,0,0,0,0,'','',0






#########给需要的字典赋值############





game_text_dict = {
    '1':'注意只有60秒的时间',
    '2':'注意只有十次机会'
}
large_number_dict = {
    '1':3,
    '2':5,
    '3':7
}






########定义游戏的类##########








class Game():





    ########定义准备工作的函数#########




    def ready(self):
        #给需要用的变量定义为全局变量
        global x,y,first_clock,text,mode,large_number,game_text_dict,large_number_dict
        #选择难度
        while 1:
            try:
                large_number = large_number_dict[input('请选择难度:1.简单;2.一般;3.困难')]
                break
            except:
                print('输入有误,请重新输入')
        #选择模式
        while 1:
            try:
                mode = input('请选择模式:1.计时模式;2.普通模式')
                print('在坐标系中,动点P会移到随机一点,已知动点P的X,Y坐标都在{}到{}之间,找出动点P吧!({})'.format(str(-large_number),str(large_number),game_text_dict[mode]))
                break
            except:
                print('输入有误')
        #加载(说加载不如说等待5秒)
        print('加载中...')
        time.sleep(5)
        #开始游戏
        print('来吧!')
        #给变量x和y赋值
        x,y = random.randint(-large_number,large_number),random.randint(-large_number,large_number)
        #定义游戏开始的时间
        first_clock = time.clock()






    #########定义玩游戏的类###########







    class Play():
        






        #########定义计时模式的函数#########







        def clock_mode(self):
            #给需要用的变量定义为全局变量
            global x,y,input_x,input_y,first_clock,now_clock,victory
            #在游戏运行60秒以内运行
            while now_clock <= 60:
                #设置游戏当前运行时间
                now_clock = time.clock() - first_clock
                #让用户猜X、Y值,中间刷新一次时间
                input_x = int(input('请输入你要猜的X值'))
                now_clock = time.clock() - first_clock
                input_y = int(input('请输入你要猜的Y值'))
                #刷新时间
                now_clock = time.clock() - first_clock
                #判断用户是否猜对
                if x == input_x and y == input_y:
                    #如果猜对了,输出信息,并输出用时,设置胜利为真,退出循环
                    print('猜对啦!用时{}秒'.format(now_clock))
                    victory = 1
                    break
                #如果猜错了,根据情况,给出提示
                if x < input_x:
                    print('你的X值猜大了')
                elif x == input_x:
                    print('你的X值猜对了')
                else:
                    print('你的X值猜小了')
                if y < input_y:
                    print('你的Y值猜大了')
                elif y == input_y:
                    print('你的Y值猜对了')
                else:
                    print('你的Y值猜小了')
            #如果猜了60秒还没猜出来,输出信息,并输出答案
            if (not victory):
                print('你太慢了,点P的X值是{},Y值是{}'.format(x,y))
        




        ###########定义普通模式的函数##############








        def normal_mode(self):
            #把需要用的变量定义为全局变量
            global x, y, input_x, input_y, first_clock, now_clock, victory
            #遍历十次(十次机会)
            for i in range(10):
                #设置游戏运行时间
                now_clock = time.clock() - first_clock
                #让用户猜X、Y值,中间刷新一次时间
                input_x = int(input('请输入你要猜的X值'))
                now_clock = time.clock() - first_clock
                input_y = int(input('请输入你要猜的Y值'))
                #刷新时间
                now_clock = time.clock() - first_clock
                #判断用户是否猜对
                if x == input_x and y == input_y:
                    #如果猜对了,输出信息,并输出用时,设置胜利为真,退出循环
                    print('猜对啦!用时{}秒'.format(now_clock))
                    victory = 1
                    break
                #如果猜错了,根据情况,给出提示
                if x < input_x:
                    print('你的X值猜大了')
                elif x == input_x:
                    print('你的X值猜对了')
                else:
                    print('你的X值猜小了')
                if y < input_y:
                    print('你的Y值猜大了')
                elif y == input_y:
                    print('你的Y值猜对了')
                else:
                    print('你的Y值猜小了')
            #如果猜了十次还没猜出来,输出信息,并输出答案
            if (not victory):
                print('你的机会用光了,点P的X值是{},Y值是{}'.format(x, y))





############游戏正式运行################






#实例化游戏的两个对象(虽然说是一个套一个...)
game = Game()
play = game.Play()
#循环运行游戏
while 1:
    #做好准备工作
    game.ready()
    #分情况判断运行哪个模式
    if mode == '1':
        play.clock_mode()
    else:
        play.normal_mode()
    #让用户选择是否重新玩一遍
    choice = input('''
    你是要重新玩一遍,还是退出
    1.重新玩一遍
    2.退出
    ''')
    #分支判断是否重新玩一遍
    if choice == '1':
        #如果用户重新玩一遍,输入“好的”,跳过本次循环
        print('好的')
        continue
    elif choice != '2':
        #如果用户输入有误,输出信息“默认退出”
        print('输入有误,默认退出')
    #输出退出语句
    print('你已退出游戏')
    #退出循环
    break

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
dounsm36dounsm36

emm......

空行是用来区分不同作用的代码的,

没必要空那么多...

点赞0


评论