Python实现石头剪刀布游戏:从基础到带充值机制的完整教程

Luna
Luna
发布时间:2026-10-14 | 4人浏览过
原创

本文详细介绍使用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学习提供有益帮助,同时也欢迎大家支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表