🌈所属专栏:【python】
✨作者主页: Mr.Zwq
✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询!
您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!🤩🥰😍
目录
前言
效果图
开始时,进行模式选择
一局定胜负模式
三局两胜模式
错误异常输入处理
代码实现
1.电脑出招函数
2.玩家出招函数
3.胜负判断函数
4.执行函数
5.代码完整展示
前言
本案例将会通过对python基本知识的应用来实现一个模拟石头剪刀布的小游戏,将使用到字典、列表类型数据、while、if循环判断、函数以及random模块的使用,可以通过实现这个小案例来巩固加深自身python的知识。
代码模拟了石头、剪刀、布游戏的几个主要方面:玩家和电脑的出招,胜负的判断,以及游戏的流程控制。
效果图
开始时,进行模式选择
一局定胜负模式
三局两胜模式
错误异常输入处理
代码实现
1.电脑出招函数
# 模拟电脑随机出招
def computer():return random.choice(['石头','剪刀','布'])
2.玩家出招函数
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]
3.胜负判断函数
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 '电脑胜'
4.执行函数
# 循环,直到玩家进行退出操作
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 += 1elif res == '电脑胜':computer_win += 1# 三局两胜逻辑,谁先胜2局,就可以结束退出了if player_win >= 2 or computer_win >= 2: print(f'最终结果:玩家胜{player_win}局,电脑胜{computer_win}局')breakelif res == '3':breakelse:# 错误处理print(f'\n序号{res}错误!请重新输入序号')
5.代码完整展示
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 += 1elif res == '电脑胜':computer_win += 1# 三局两胜逻辑,谁先胜2局,就可以结束退出了if player_win >= 2 or computer_win >= 2:print(f'最终结果:玩家胜{player_win}局,电脑胜{computer_win}局')breakelif res == '3':breakelse:# 错误处理print(f'\n序号{res}错误!请重新输入序号')
总结
感谢观看,原创不易,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹🌹🌹
👍🏻也欢迎你,关注我。👍🏻
如有疑问,可在评论区留言哦~