Python实现石头剪刀布游戏:从基础到带充值机制的完整教程
本文详细介绍使用Python编写石头剪刀布小游戏的完整过程。内容涵盖基础单次对战逻辑、利用while循环实现持续游戏、引入机会机制限制游玩次数,以及当机会耗尽时通过充值恢复次数的交互设计。代码示例展示了随机函数应用、条件判断及异常处理,适合Python初学者理解基础语法与逻辑控制。
Python石头剪刀布游戏基础实现
本文分享一个基于Python的简单小游戏实现方案,供读者参考学习。
核心功能是利用随机函数生成计算机的出拳结果,从而制作石头剪刀布游戏。
初始版本中,程序仅执行一次交互后便结束运行。
import random
a = input("请出拳(石头/剪刀/布):")
b = ["剪刀", "石头", "布"]
# 定义赢的列表
win_list = [["石头", "剪刀"], ["剪刀", "布"], ["布", "石头"]]
# 计算机随机选择出拳
mac = random.choice(b)
print("你出拳:", a)
print("计算机出拳:", mac)
if a in b:
if a == mac:
print("平局")
elif [a, mac] in win_list:
# 如果在赢的列表中,代表你赢了,主要你和计算机的顺序要和赢的列表一样
print("恭喜,你赢了")
else:
print("很遗憾,你输了")
else:
print("输入错误")
利用while循环实现持续游戏
若每次出拳都需要重新启动程序,操作较为繁琐,因此需要让程序保持持续运行状态。
通过在代码中加入while循环条件,即可解决程序持续运行的问题。
import random
while True:
a = input("请出拳(石头/剪刀/布):")
b = ["剪刀", "石头", "布"]
# 定义赢的列表
win_list = [["石头", "剪刀"], ["剪刀", "布"], ["布", "石头"]]
# 计算机随机选择出拳
mac = random.choice(b)
print("你出拳:", a)
print("计算机出拳:", mac)
if a in b:
if a == mac:
print("平局")
elif [a, mac] in win_list:
# 如果在赢的列表中,代表你赢了,主要你和计算机的顺序要和赢的列表一样
print("恭喜,你赢了")
else:
print("很遗憾,你输了")
else:
print("输入错误")
需注意,长期沉迷游戏可能影响身心健康,建议适度游玩。
引入机会机制与胜负判定
为此,可以为游戏预设初始机会次数,每进行一局游戏扣除一次机会,若玩家获胜则额外增加一次机会。
import random
count = 3
while count:
a = input("请出拳(石头/剪刀/布):")
b = ["剪刀", "石头", "布"]
# 定义赢的列表
win_list = [["石头", "剪刀"], ["剪刀", "布"], ["布", "石头"]]
# 计算机随机选择出拳
mac = random.choice(b)
print("你出拳:", a)
print("计算机出拳:", mac)
if a in b:
count -= 1
if a == mac:
print("平局")
elif [a, mac] in win_list:
# 如果在赢的列表中,代表你赢了,主要你和计算机的顺序要和赢的列表一样
print("恭喜,你赢了")
count += 1
else:
print("很遗憾,你输了")
else:
print("输入错误")
print("你还剩余机会", count)
为了模拟真实场景中的收益机制,可以在代码中加入相应的逻辑处理。
充值逻辑与异常处理
当游戏剩余机会为0时,提示用户可选择充值以继续游戏,充值金额设定为1元、5元或10元,分别对应不同的机会增加量。若用户输入非数字字符串或非1、5、10的数值,程序应提示错误并退出。
import random
count = 3
while count:
a = input("请出拳(石头/剪刀/布):")
b = ["剪刀", "石头", "布"]
win_list = [["石头", "剪刀"], ["剪刀", "布"], ["布", "石头"]]
mac = random.choice(b)
print("你出拳:", a)
print("计算机出拳:", mac)
if a in b:
count -= 1
if a == mac:
print("平局")
elif [a, mac] in win_list:
print("恭喜,你赢了")
count += 1
else:
print("很遗憾,你输了")
else:
print("输入错误")
print("你还剩余机会", count)
if count == 0:
print("机会用完啦,充值可以继续玩哦,充值金额分别为1,5,10元,一元可增加三次机会。")
a = input("请选择充值金额:")
try:
a = int(a)
if a == 1 or a == 5 or a == 10:
count = a
else:
print("请输入1,5,10")
except:
print("请输入正确的金额")
若用户输入字符串或输入值不是1、5、10,程序应允许用户重新输入,或选择输入Q键退出程序。
import random
count = 3
while count:
a = input("请出拳(石头/剪刀/布):")
b = ["剪刀", "石头", "布"]
win_list = [["石头", "剪刀"], ["剪刀", "布"], ["布", "石头"]]
mac = random.choice(b)
print("你出拳:", a)
print("计算机出拳:", mac)
if a in b:
count -= 1
if a == mac:
print("平局")
elif [a, mac] in win_list:
print("恭喜,你赢了")
count += 1
else:
print("很遗憾,你输了")
else:
print("输入错误")
print("你还剩余机会", count)
if count == 0:
print("机会用完啦,充值可以继续玩哦,充值金额分别为1,5,10元,一元可增加三次机会。")
while True:
a = input("请选择充值金额或者输入Q退出:")
if a == 'Q':
exit()
try:
a = int(a)
if a == 1 or a == 5 or a == 10:
count = a
else:
print("请输入1,5,10")
except:
print("请输入正确的金额")
以上即为本文的全部内容,希望能为读者的Python学习提供有益帮助,同时也欢迎大家支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













