|
发表于 2019-12-13 10:27:01
|
显示全部楼层
本帖最后由 参天小草 于 2019-12-13 10:28 编辑
萌新一枚,希望大伙指出问题
刚开始研究easygui,所以用easygui写了个有界面的
有点长,还想再加一个玩家名、玩家排名功能,奈何上班不能瞎搞
- import easygui as g
- import random
- '''有界面的猜拳游戏,统计胜率'''
- # Scissors_Rock_Paper 游戏判断主体
- def S_R_P(Choice, Random):
- Choice_num = choices.index(Choice)
- Random_num = choices.index(Random)
- if Choice_num - Random_num == 0:
- return 0
- elif Choice_num - Random_num == 1 or Choice_num - Random_num == -2:
- return 1
- else :
- return 2
- # 游戏统计主体
- def CountTimes(Result_num):
- global totle_times
- global win_times
- global lose_times
- global ping_times
- totle_times += 1
- if Result_num == 0:
- ping_times += 1
- elif Result_num == 1:
- win_times += 1
- else:
- lose_times += 1
- # 界面
- # 初始化
- totle_times = 0
- win_times = 0
- lose_times = 0
- ping_times = 0 # 不晓得平局怎么说qwq
- choices = ['剪刀', '石头', '布']
- # 开始游戏
- g.msgbox('要来一局吗?电脑会在你出拳之前出拳哦,绝不作弊OvO', '猜拳', ok_button = '确定', root = None)
- # 进入猜拳循环
- while 1:
- Random = random.choice(choices) # 电脑出拳
- Choice = g.buttonbox('请出拳', '挥动你的小拳拳', choices= choices) # 玩家出拳
- if Choice == None:
- break
- Result_num = S_R_P(Choice, Random)
- CountTimes(Result_num)
- results = ['平局', '你赢了', '你输了']
- Result = results[Result_num]
- is_continue = g.msgbox('电脑出的是%s,你出的是%s,%s'%(Random, Choice, Result), '胜负已定', ok_button = '继续', root = None)
- if is_continue == None:
- break
- # 统计信息
- g.msgbox('共%d局\n胜%d局\n败%d局\n平%d局\n胜率%.2f%%'%(totle_times, win_times, lose_times, ping_times, win_times/totle_times*100), '统计信息', ok_button = '关闭', root = None)
复制代码 |
|