Python猜拳“小”游戏

猜拳小游戏想必大家都玩过,它起源于中国汉代,后传入日本并发展成现代形式。在东亚文化中,猜拳常用于解决争议或娱乐。日本称为“じゃんけん”,韩国称为“가위바위보”,西方称为“Rock-Paper-Scissors”。

今天我想介绍几种Python实现猜拳小游戏的方法: if-else , random 模块,for循环,while循环

  .       

方式一:使用 if-else 条件语句


电脑的出拳方式的生成通过计算得到,而算法只能模拟出随机数的一部分特点,因此可能存在一定的问题。

注意,这个程序中只会执行一次猜拳游戏→

# 定义常量
ROCK = 1
PAPER = 2
SCISSORS = 3

# 输出欢迎信息
print("欢迎来到猜拳游戏!")
print("游戏规则:")
print("1. 石头胜剪刀")
print("2. 剪刀胜布")
print("3. 布胜石头")

# 定义得分变量
player_score = 0
computer_score = 0
tie_count = 0

# 让玩家输入出拳方式
player_choice = int(input("请输入您的出拳方式(1:石头,2:剪刀,3:布):"))

# 判断玩家的选择
if player_choice == ROCK:
    print("你出了石头")
elif player_choice == PAPER:
    print("你出了剪刀")
else:
    print("你出了布")

# 生成电脑的出拳方式(运用算法)
computer_choice = ((player_score + computer_score + tie_count) % 3) + 1

# 输出电脑的选择
if computer_choice == ROCK:
    print("电脑出了石头")
elif computer_choice == PAPER:
    print("电脑出了剪刀")
else:
    print("电脑出了布")

# 判断输赢并输出结果
if player_choice == ROCK:
    if computer_choice == ROCK:
        print("平局")
        tie_count += 1
    elif computer_choice == PAPER:
        print("电脑获胜")
        computer_score += 1
    else:
        print("你获胜")
        player_score += 1
elif player_choice == PAPER:
    if computer_choice == ROCK:
        print("你获胜")
        player_score += 1
    elif computer_choice == PAPER:
        print("平局")
        tie_count += 1
    else:
        print("电脑获胜")
        computer_score += 1
else:
    if computer_choice == ROCK:
        print("电脑获胜")
        computer_score += 1
    elif computer_choice == PAPER:
        print("你获胜")
        player_score += 1
    else:
        print("平局")
        tie_count += 1

# 输出得分情况
print(f"您的得分:{player_score},电脑的得分:{computer_score},平局次数:{tie_count}")

方式1-1:random模块+👆

通过random模块生成电脑的选择,再与用户输入进行比较,利用条件判断输出结果。

import random

def rock_paper_scissors():
    choices = ['石头', '剪刀', '布']
    computer_choice = random.choice(choices)
    user_choice = input("请输入你的选择(石头/剪刀/布): ").strip()
    
    if user_choice not in choices:
        print("输入无效,请重新输入!")
        return
    
    print(f"电脑选择了: {computer_choice}")
    if user_choice == computer_choice:
        print("平局!")
    elif (user_choice == '石头' and computer_choice == '剪刀') or \
         (user_choice == '剪刀' and computer_choice == '布') or \
         (user_choice == '布' and computer_choice == '石头'):
        print("你赢了!")
    else:
        print("你输了!")

rock_paper_scissors()
 



 方式二:使用for循坏

使用random模块生成电脑的选择 + for循环(有固定轮数)

此代码我命令它执行3次👇

也可自行添加 input,输入

import random

choices = ["石头", "剪刀", "布"]
rounds = 3  # 设置游戏轮数

for i in range(rounds):
    print(f"\n第 {i+1} 轮:")
    player_choice = input("请输入你的选择(石头/剪刀/布): ").strip()
    if player_choice not in choices:
        print("输入无效,请重新选择!")
        continue

    computer_choice = random.choice(choices)
    print(f"电脑选择: {computer_choice}")

    if player_choice == computer_choice:
        print("平局!")
    elif (player_choice == "石头" and computer_choice == "剪刀") or \
         (player_choice == "剪刀" and computer_choice == "布") or \
         (player_choice == "布" and computer_choice == "石头"):
        print("你赢了!")
    else:
        print("你输了!")
 



 方式三:使用while循环

可以选择是否继续游戏,玩无数次!

更加灵活  nice~~~

import random

choices = ["石头", "剪刀", "布"]
play_again = True

while play_again:
    player_choice = input("\n请输入你的选择(石头/剪刀/布): ").strip()
    if player_choice not in choices:
        print("输入无效,请重新选择!")
        continue

    computer_choice = random.choice(choices)
    print(f"电脑选择: {computer_choice}")

    if player_choice == computer_choice:
        print("平局!")
    elif (player_choice == "石头" and computer_choice == "剪刀") or \
         (player_choice == "剪刀" and computer_choice == "布") or \
         (player_choice == "布" and computer_choice == "石头"):
        print("你赢了!")
    else:
        print("你输了!")

    # 询问是否继续游戏
    response = input("是否继续游戏?(是/否): ").strip().lower()
    play_again = response == "是"
 



悄悄告诉你:

尽管猜拳看似随机,但部分玩家会尝试预测对手行为:

  • 新手倾向重复上一轮的手势。
  • 输家可能下意识更换手势。
  • 统计表明,石头是最常见的初始选择。
  • 嘿嘿🤭
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值