• python简单练习案例-石头剪刀布小游戏


    •  🌈所属专栏:【python】

    •  ✨作者主页:  Mr.Zwq

    • ✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询!

    您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!🤩🥰😍

    目录

    前言 

    效果图

    开始时,进行模式选择

    一局定胜负模式

    三局两胜模式

    错误异常输入处理

    代码实现

    1.电脑出招函数

     2.玩家出招函数

     3.胜负判断函数

     4.执行函数

     5.代码完整展示


    前言 

            本案例将会通过对python基本知识的应用来实现一个模拟石头剪刀布的小游戏,将使用到字典、列表类型数据、while、if循环判断、函数以及random模块的使用,可以通过实现这个小案例来巩固加深自身python的知识。

            代码模拟了石头、剪刀、布游戏的几个主要方面:玩家和电脑的出招,胜负的判断,以及游戏的流程控制。


    效果图

    开始时,进行模式选择

    一局定胜负模式

    三局两胜模式

    错误异常输入处理


    代码实现

    1.电脑出招函数

    1. # 模拟电脑随机出招
    2. def computer():
    3. return random.choice(['石头','剪刀','布'])

     2.玩家出招函数

    1. def player():
    2. # 这里用字典映射是为了方便玩家通过输入序号就可以代替出拳,简化玩家打字操作
    3. dic = {'1': '石头', '2': '剪刀', '3': '布'}
    4. res=input('1-石头,2-剪刀,3-布\n请输入序号:')
    5. # 进行错误处理,规避无效出拳序号
    6. if res not in dic.keys():
    7. print(f'\n序号{res}错误!请重新输入正确的序号')
    8. return player()
    9. return dic[res]

     3.胜负判断函数

    1. def judge(player,computer):
    2. if player == computer:
    3. return '平局'
    4. if player == '石头':
    5. if computer == '剪刀':
    6. return '玩家胜'
    7. else:
    8. return '电脑胜'
    9. elif player == '剪刀':
    10. if computer == '布':
    11. return '玩家胜'
    12. else:
    13. return '电脑胜'
    14. else:
    15. if computer == '石头':
    16. return '玩家胜'
    17. else:
    18. return '电脑胜'

     4.执行函数

    1. # 循环,直到玩家进行退出操作
    2. while True:
    3. print('操作选择'.center(20, '*'))
    4. res = input('1.一局定胜负\n2.三局两胜\n3.退出\n请输入对应序号:')
    5. if res == '1':
    6. print('一局定胜负'.center(20, '*'))
    7. # 电脑输出
    8. computer_output = computer()
    9. # 玩家输出
    10. player_output = player()
    11. # 结果输出
    12. print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{judge(player_output, computer_output)}\n')
    13. elif res == '2':
    14. print('三局两胜'.center(20, '*'))
    15. player_win = 0 # 记录玩家胜局次数
    16. computer_win = 0 # 记录电脑胜局次数
    17. while True:
    18. computer_output = computer()
    19. player_output = player()
    20. res = judge(player_output, computer_output)
    21. print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{res}\n')
    22. if res == '玩家胜':
    23. player_win += 1
    24. elif res == '电脑胜':
    25. computer_win += 1
    26. # 三局两胜逻辑,谁先胜2局,就可以结束退出了
    27. if player_win >= 2 or computer_win >= 2:
    28. print(f'最终结果:玩家胜{player_win}局,电脑胜{computer_win}局')
    29. break
    30. elif res == '3':
    31. break
    32. else:
    33. # 错误处理
    34. print(f'\n序号{res}错误!请重新输入序号')

     5.代码完整展示

    1. import random
    2. # 模拟电脑随机出招
    3. def computer():
    4. return random.choice(['石头', '剪刀', '布'])
    5. def player():
    6. # 这里用字典映射是为了方便玩家通过输入序号就可以代替出拳,简化玩家打字操作
    7. dic = {'1': '石头', '2': '剪刀', '3': '布'}
    8. res = input('1-石头,2-剪刀,3-布\n请输入序号:')
    9. # 进行错误处理,规避无效出拳序号
    10. if res not in dic.keys():
    11. print(f'\n序号{res}错误!请重新输入正确的序号')
    12. return player()
    13. return dic[res]
    14. def judge(player, computer):
    15. if player == computer:
    16. return '平局'
    17. if player == '石头':
    18. if computer == '剪刀':
    19. return '玩家胜'
    20. else:
    21. return '电脑胜'
    22. elif player == '剪刀':
    23. if computer == '布':
    24. return '玩家胜'
    25. else:
    26. return '电脑胜'
    27. else:
    28. if computer == '石头':
    29. return '玩家胜'
    30. else:
    31. return '电脑胜'
    32. # 循环,直到玩家进行退出操作
    33. while True:
    34. print('操作选择'.center(20, '*'))
    35. res = input('1.一局定胜负\n2.三局两胜\n3.退出\n请输入对应序号:')
    36. if res == '1':
    37. print('一局定胜负'.center(20, '*'))
    38. # 电脑输出
    39. computer_output = computer()
    40. # 玩家输出
    41. player_output = player()
    42. # 结果输出
    43. print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{judge(player_output, computer_output)}\n')
    44. elif res == '2':
    45. print('三局两胜'.center(20, '*'))
    46. player_win = 0 # 记录玩家胜局次数
    47. computer_win = 0 # 记录电脑胜局次数
    48. while True:
    49. computer_output = computer()
    50. player_output = player()
    51. res = judge(player_output, computer_output)
    52. print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{res}\n')
    53. if res == '玩家胜':
    54. player_win += 1
    55. elif res == '电脑胜':
    56. computer_win += 1
    57. # 三局两胜逻辑,谁先胜2局,就可以结束退出了
    58. if player_win >= 2 or computer_win >= 2:
    59. print(f'最终结果:玩家胜{player_win}局,电脑胜{computer_win}局')
    60. break
    61. elif res == '3':
    62. break
    63. else:
    64. # 错误处理
    65. print(f'\n序号{res}错误!请重新输入序号')

    总结

    感谢观看,原创不易,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹🌹🌹

    👍🏻也欢迎你,关注我。👍🏻

    如有疑问,可在评论区留言哦~

  • 相关阅读:
    GPS北斗模块串口助手输出测试
    java word文档 转 html文件
    vscode远程登录ubuntu linux报错,一直输入密码问题
    Linux docker(02) docker实战-最简构建编译系统
    十八张图带你入门实时监控系统HertzBeat
    【无标题】微信小程序使用npm,(以vant为例)
    Charles抓包web、手机、小程序配置
    08 | Harbor 不可用排查方法
    jzoj1212 重建道路
    【开发指南】AR Foundation 开发环境部署
  • 原文地址:https://blog.csdn.net/zwq_zwq_zwq111/article/details/139702483