您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!🤩🥰😍
目录
本案例将会通过对python基本知识的应用来实现一个模拟石头剪刀布的小游戏,将使用到字典、列表类型数据、while、if循环判断、函数以及random模块的使用,可以通过实现这个小案例来巩固加深自身python的知识。
代码模拟了石头、剪刀、布游戏的几个主要方面:玩家和电脑的出招,胜负的判断,以及游戏的流程控制。




- # 模拟电脑随机出招
- def computer():
- return random.choice(['石头','剪刀','布'])
- def player():
- # 这里用字典映射是为了方便玩家通过输入序号就可以代替出拳,简化玩家打字操作
- dic = {'1': '石头', '2': '剪刀', '3': '布'}
- res=input('1-石头,2-剪刀,3-布\n请输入序号:')
- # 进行错误处理,规避无效出拳序号
- if res not in dic.keys():
- print(f'\n序号{res}错误!请重新输入正确的序号')
- return player()
- return dic[res]
- def judge(player,computer):
- if player == computer:
- return '平局'
- if player == '石头':
- if computer == '剪刀':
- return '玩家胜'
- else:
- return '电脑胜'
- elif player == '剪刀':
- if computer == '布':
- return '玩家胜'
- else:
- return '电脑胜'
- else:
- if computer == '石头':
- return '玩家胜'
- else:
- return '电脑胜'
- # 循环,直到玩家进行退出操作
- while True:
- print('操作选择'.center(20, '*'))
- res = input('1.一局定胜负\n2.三局两胜\n3.退出\n请输入对应序号:')
- if res == '1':
- print('一局定胜负'.center(20, '*'))
- # 电脑输出
- computer_output = computer()
- # 玩家输出
- player_output = player()
- # 结果输出
- print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{judge(player_output, computer_output)}\n')
- elif res == '2':
- print('三局两胜'.center(20, '*'))
- player_win = 0 # 记录玩家胜局次数
- computer_win = 0 # 记录电脑胜局次数
- while True:
- computer_output = computer()
- player_output = player()
- res = judge(player_output, computer_output)
- print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{res}\n')
- if res == '玩家胜':
- player_win += 1
- elif res == '电脑胜':
- computer_win += 1
- # 三局两胜逻辑,谁先胜2局,就可以结束退出了
- if player_win >= 2 or computer_win >= 2:
- print(f'最终结果:玩家胜{player_win}局,电脑胜{computer_win}局')
- break
- elif res == '3':
- break
- else:
- # 错误处理
- print(f'\n序号{res}错误!请重新输入序号')
- import random
-
-
- # 模拟电脑随机出招
- def computer():
- return random.choice(['石头', '剪刀', '布'])
-
-
- def player():
- # 这里用字典映射是为了方便玩家通过输入序号就可以代替出拳,简化玩家打字操作
- dic = {'1': '石头', '2': '剪刀', '3': '布'}
- res = input('1-石头,2-剪刀,3-布\n请输入序号:')
- # 进行错误处理,规避无效出拳序号
- if res not in dic.keys():
- print(f'\n序号{res}错误!请重新输入正确的序号')
- return player()
- return dic[res]
-
-
- def judge(player, computer):
- if player == computer:
- return '平局'
- if player == '石头':
- if computer == '剪刀':
- return '玩家胜'
- else:
- return '电脑胜'
- elif player == '剪刀':
- if computer == '布':
- return '玩家胜'
- else:
- return '电脑胜'
- else:
- if computer == '石头':
- return '玩家胜'
- else:
- return '电脑胜'
-
-
- # 循环,直到玩家进行退出操作
- while True:
- print('操作选择'.center(20, '*'))
- res = input('1.一局定胜负\n2.三局两胜\n3.退出\n请输入对应序号:')
- if res == '1':
- print('一局定胜负'.center(20, '*'))
- # 电脑输出
- computer_output = computer()
- # 玩家输出
- player_output = player()
- # 结果输出
- print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{judge(player_output, computer_output)}\n')
- elif res == '2':
- print('三局两胜'.center(20, '*'))
- player_win = 0 # 记录玩家胜局次数
- computer_win = 0 # 记录电脑胜局次数
- while True:
- computer_output = computer()
- player_output = player()
- res = judge(player_output, computer_output)
- print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{res}\n')
- if res == '玩家胜':
- player_win += 1
- elif res == '电脑胜':
- computer_win += 1
- # 三局两胜逻辑,谁先胜2局,就可以结束退出了
- if player_win >= 2 or computer_win >= 2:
- print(f'最终结果:玩家胜{player_win}局,电脑胜{computer_win}局')
- break
- elif res == '3':
- break
- else:
- # 错误处理
- print(f'\n序号{res}错误!请重新输入序号')
感谢观看,原创不易,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹🌹🌹
👍🏻也欢迎你,关注我。👍🏻
如有疑问,可在评论区留言哦~