Python实现剪刀石头布

整体架构流程

1.需求分析

参与者:玩家,电脑

  玩家    手动输入

  电脑    随机出拳

2.判断输赢

  玩家赢  电脑赢   平局

流程

1.出拳(玩家,电脑)

  玩家-输入   电脑-随机

2.判断输赢

  2.1玩家胜

  2.2平局

  2.3电脑胜 

代码解释

优点:比较简洁,思路清晰

缺点:不够直观,不能直接说明电脑出的是什么,只能用数字代替

平局的时候必须重新运行游戏才能再来一次。

import random

# 让用户输入选择,0代表石头,1代表剪刀,2代表布
player = int(input('请出拳: 石头: 0 输:1 剪刀:2'))  # 这里的"输"应该是"布"的误写

# 电脑随机选择0、1或2
computer = random.randint(0, 2)

# 判断游戏结果
if ((player == 0) and (computer == 1)) or ((player == 1) and (computer == 2)) or ((player == 2) and (computer == 0)):
    print('玩家获胜,哈哈哈')
elif player == computer:
    print('平局,再来一次')
elif player >= 3 or computer >= 3:
    print('没有这种出法哦')
else:
    print('电脑获胜')

# 打印电脑的选择
print('电脑出的是:', computer)

这段代码的工作流程如下:

  1. 导入random模块,用于生成电脑的随机选择。
  2. 提示用户输入他们的选择(0代表石头,1代表剪刀,2代表布)。
  3. 使用random.randint(0, 2)生成电脑的随机选择,范围是0到2。
  4. 使用if-elif-else语句来判断游戏结果:
    • 如果玩家的选择击败了电脑的选择(例如,玩家出剪刀,电脑出布),则玩家获胜。
    • 如果玩家和电脑的选择相同,则为平局。
    • 如果玩家的选择无效(大于2),则提示没有这种出法。
    • 否则,电脑获胜。
  5. 打印电脑的选择,以便用户知道电脑出了什么。
import random

# 获取用户输入,0表示石头,1表示剪刀,2表示布
player = int(input('请出拳: 0-石头 1-剪刀 2-布:'))

# 电脑随机出拳
computer = random.randint(0, 2)

# 打印电脑出拳结果
if computer == 0:
    cpc = "石头"
elif computer == 1:
    cpc = "剪刀"
else:
    cpc = "布"
print("电脑出的是%s\n" % cpc)

# 检查用户输入是否有效
if player >= 3:
    print('没有这种出法哦')
else:
    # 判断游戏结果
    if (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player == 2 and computer == 0):
        print('玩家获胜,哈哈哈')
    elif player == computer:
        print('平局,再来一次')
    else:
        print('电脑获胜')
  1. 使用if-elif-else语句来判断游戏结果:
    • 如果玩家的选择击败了电脑的选择(例如,玩家出石头,电脑出剪刀),则玩家获胜。
    • 如果玩家和电脑的选择相同,则为平局。
    • 否则,电脑获胜。
import random

while True:  # 无限循环,直到用户选择退出
    player = int(input('请出拳: 0-石头 1-剪刀 2-布:'))

    computer = random.randint(0, 2)  # 电脑随机出拳
    cpc = ["石头", "剪刀", "布"][computer]  # 将数字转换为对应的出拳名称
    print(f"电脑出的是{cpc}\n")

如果你想一直玩下去的话,加一个while语句就可以了哦 

演示效果

 

小结

        改进后把电脑出的数字转化为了汉字表达比较直观。编写程序的过程中尤其要注意if语句的次序。把电脑生成的数字转化为汉字的if语句和判断输赢的if语句使并列的,如果不并列,将判断输赢的if语句弄到把电脑生成的数字转化为汉字的if语句里面去了就会导致程序执行到转化那里就直接停止了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你我哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值