🌈所属专栏:【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 += 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}错误!请重新输入序号')
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 += 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}错误!请重新输入序号')
总结
感谢观看,原创不易,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹🌹🌹
👍🏻也欢迎你,关注我。👍🏻
如有疑问,可在评论区留言哦~