Python趣味案例 您所在的位置:网站首页 三局两胜 Python趣味案例

Python趣味案例

2024-06-29 10:05| 来源: 网络整理| 查看: 265

前言

最近看了这篇知乎文章,深受启发: Python之石头剪刀布小游戏(史上最详细步骤) - 真小凡的文章 - 知乎

Python中实现剪刀石头布游戏的方式有很多种,这个博主允许直接输入石头、剪刀、布,执行起来丝滑许多。但目前一局定胜负、三局两胜、五局三胜都是固定的游戏模式,我想加入一个功能,允许用户自行选择游戏局数。

所以,我这篇文章直接在博主的基础上扩充啦!

一、游戏模式说明

1、输入总局数,只能为奇数。若输入的不是奇数,就提示重新输入。 获胜规则: (1)石头打赢剪刀,剪刀打赢布,布打赢石头; (2)每一轮电脑随机出拳 (3)【新增】若用户或者电脑获胜次数>总局数/2的整数部分,如,总局数为5,则单方获胜次数>2时游戏结束; (4)【新增】若所有局都正常结束,则在结束以后根据胜负次数判断最终输赢。 2、出拳阶段 3、亮拳阶段 4、本局胜负判定 5、【新增】游戏最终胜负判定 6、【新增】每一次游戏结束后,都可以选择再玩一次

二、加M局N胜制——参考代码 import random N=5 # 剪刀石头布 punches = ['石头','剪刀','布'] user_choice = '' computer_choice = '' win = 0 lose = 0 mode = int(input("这是一个猜拳游戏,请输入总局数,要求必须是奇数:")) # 这里只允许输入正整数和奇数,不限制次数上限 while mode mode//2: break elif lose > mode//2: break # 只有循环结束,才会判定最终结果 if win > lose: print("========最终结果========\n恭喜你赢了!") elif lose > win: print("========最终结果========\n很遗憾你输了!") else: print("========最终结果========\n势均力敌,平局!") 三、 改为函数版——参考代码 import random # 剪刀石头布 def mode(): game_mode = int(input("这是一个猜拳游戏,请输入总局数,要求必须是奇数:")) while game_mode my_mode // 2: break elif lose > my_mode // 2: break if win > lose: print("—————最终结果—————\n恭喜你赢了!") elif lose > win: print("—————最终结果—————\n很遗憾你输了!") else: print("—————最终结果—————\n势均力敌,平局!") 四、加入“是否下一轮”逻辑 import random # 剪刀石头布 def mode(): game_mode = int(input("这是一个猜拳游戏,请输入总局数,要求必须是奇数:")) while game_mode my_mode // 2: break elif lose > my_mode // 2: break if win > lose: print("—————最终结果—————\n恭喜你赢了!") elif lose > win: print("—————最终结果—————\n很遗憾你输了!") else: print("—————最终结果—————\n势均力敌,平局!") # 以下为控制是否下一轮的代码,这里只接受Y和N两种输入方式 next_game=input("是否进行下一轮?Y/N\n") if next_game == 'Y': print('新一轮游戏开始啦!\n———————————————') elif next_game == 'N': flag=0 print('游戏结束!') else: print('输入错误,游戏结束!') 五、更正 在加是否下一轮逻辑的时候,出现了一个问题TypeError: ‘int’ object is not callable 百度了一下,说是变量名和函数名冲撞了,因此原代码中的变量mode我改名为my_mode,就可以了。 这里不能也叫game_mode,原则上函数内部的变量名和也要有唯一性,才符合规范。

新手学习,如有疏漏,欢迎指正!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有