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

【作品介绍】
猜点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