likes
comments
collection
share

python 从剪刀石头布开始

作者站长头像
站长
· 阅读数 33

1. 概述

当然,对于刚刚接触编程的同学,剪刀石头布也不失为帮助大家充分熟悉条件控制与循环语句好方法。

这个游戏古老而简单,其中充满了一物降一物和相生相克的哲学思想~~

总而言之,其规则如下:

  • 石头克制剪刀
  • 剪刀克制布
  • 布克制石头

为了顺利完成游戏流程,我们需要做到以下几点:

  • 可以通过人机交互的方式输入自己的选择
  • 设置电脑机器人进行其自己的选择
  • 进行比赛角逐,得出游戏的胜负关系

2. 代码

总体代码如下所示:

import random
import os
import re

// 用户(我们)的选择
def UserChoiceText(userChoice):
    if 'S' == str.upper(userChoice):
        return '石头'
    elif 'J' == str.upper(userChoice):
        return '剪刀'
    elif 'B' == str.upper(userChoice):
        return '布'

os.system('cls' if os.name=='nt' else 'clear')
while (True):
    print("\n")
    print("石头, 剪刀, 布 - 开始......")
    userChoice = input("进行你的选择:[S]石头,[J]剪刀,[B]布,[T]退出: ")
    if 'T' == str.upper(userChoice):
        print("你选择了退出,GAME OVER。")
        break
    if not re.match("[JjSsBb]", userChoice):
        print("只能选择下面的字母:")
        print("[S]石头, [J]剪刀, 或 [B]布.")
        continue
    print("你的选择: " + UserChoiceText(userChoice))
    choices = ['S', 'B', 'J']
    opponenetChoice = random.choice(choices) // 机器人(电脑)的选择
    print("我的选择: " + UserChoiceText(opponenetChoice))
    
    // 胜负关系的判断
    if opponenetChoice == str.upper(userChoice):
        print("平局! ")
    elif opponenetChoice == 'S' and userChoice.upper() == 'J':
        print("石头砸剪刀, 我赢了! ")
        continue
    elif opponenetChoice == 'J' and userChoice.upper() == 'B':
        print("剪刀剪布, 我赢了! ")
        continue
    elif opponenetChoice == 'B' and userChoice.upper() == 'S':
        print("布包石头,我赢了! ")
        continue
    else:       
        print("你赢了!")
转载自:https://juejin.cn/post/7125849294405369892
评论
请登录