Python应用:三局两胜制石头剪刀布游戏

发布于:2025-07-27 ⋅ 阅读:(16) ⋅ 点赞:(0)

        大家好! 本文将一步步解析一个简单但完整的Python项目——三局两胜制的“石头剪刀布”游戏。通过这个项目,初学者可以巩固Python基础语法,理解程序逻辑结构。

      代码呈现:

import random

all_choices = ['石头', '剪刀', '布']
win_list = [['石头', '剪刀'], ['剪刀', '布'], ['布', '石头']]
prompt = """(0) 石头
(1) 剪刀
(2) 布
请选择(0/1/2): """
cwin = 0
pwin = 0

while cwin < 2 and pwin < 2:
    computer = random.choice(all_choices)
    ind = int(input(prompt))
    player = all_choices[ind]

    print("Your choice: %s, Computer's choice: %s" % (player, computer))
    if player == computer:
        print('\033[32;1m平局\033[0m')
    elif [player, computer] in win_list:
        pwin += 1
        print('\033[31;1mYou WIN!!!\033[0m')
    else:
        cwin += 1
        print('\033[31;1mYou LOSE!!!\033[0m')

    代码解析:

  1. 初始化设置

    all_choices = ['石头', '剪刀', '布']
    win_list = [['石头', '剪刀'], ['剪刀', '布'], ['布', '石头']]
    
    • all_choices:定义玩家可选的三种手势

    • win_list:存储玩家获胜的组合条件(玩家手势, 电脑手势)

  2. 游戏主循环

    while cwin < 2 and pwin < 2:
    
    • 循环持续直到某一方获胜局数达到2局

    • cwin记录电脑胜利次数,pwin记录玩家胜利次数

  3. 随机生成电脑选择

    computer = random.choice(all_choices)
    
    • random.choice()从列表中随机选取一个元素

    • 实现电脑的“出拳”行为

  4. 玩家输入处理

    ind = int(input(prompt))
    player = all_choices[ind]
    
    • 通过数字0/1/2接收玩家选择

    • 将数字索引转换为对应的手势字符串

  5. 胜负判断逻辑

    if player == computer:  # 平局
    elif [player, computer] in win_list:  # 玩家赢
    else:  # 电脑赢
    
    • 平局:双方手势相同

    • 玩家赢:当前组合存在于win_list

    • 电脑赢:以上条件均不满足

  6. 胜局计数与颜色提示

    print('\033[31;1mYou WIN!!!\033[0m')  # 红色高亮
    
    • \033[31;1m控制台输出红色高亮文字

    • \033[0m重置文本样式

  关键知识点总结:

  1. 随机数生成

    random.choice()实现电脑的随机出拳,是游戏的核心随机源。

  2. 列表与嵌套列表

    使用列表存储游戏选项,嵌套列表定义获胜规则。

  3. 循环控制

    while循环确保游戏持续进行直到达成胜利条件。

  4. 条件分支

    多层if-elif-else结构处理不同胜负场景。

  5. 用户输入处理

    将数字输入映射到手势选项,提升用户体验。

       总结:

        欢迎在评论区分享你的练习代码或疑问~


网站公告

今日签到

点亮在社区的每一天
去签到