python-编写石头剪刀布小游戏

python-编写石头剪刀布小游戏

1.基本功能能实现版本

#编写石头、剪刀、布的小游戏
import random
pc = random.choice(['石头', '剪刀', '布'])
player = input('请出拳(石头/剪刀/布):')

print("你出的拳是:%s,计算机出的拳是: %s" % (player, pc))
if player == '石头':
    if pc == '石头':
        print('平局')
    elif pc == '剪刀':
        print('你赢了!')
    else:
        print('你输了!')
elif player == '剪刀':
    if pc == '石头':
        print('你输了')
    elif pc == '剪刀':
        print('平局')
    else:
        print('你赢了')
else:
    if pc == '石头':
        print('你赢了')
    elif pc == '剪刀':
        print('你输了')
    else:
        print('平局')

2.精简版本

#编写石头、剪刀、布的小游戏
import random
pc = random.choice(['石头', '剪刀', '布'])
player = input('请出拳(石头/剪刀/布):')
#人能赢的三种情况,写成列表的形式
win_list = [['石头', '剪刀'], ['剪刀', '布'], ['布', '石头']]

print("你出的拳是:%s,计算机出的拳是: %s" % (player, pc))
if player == pc:
    print('平局')
elif [player, pc] in win_list: #成员关系判断
    print('你赢了')
else:
    print('你输了')

3.升级版本-三局两胜

#编写石头、剪刀、布的小游戏
import random

all_choice = ['石头', '剪刀', '布'] #只有三种选择,定义成列表
win_list = [['石头', '剪刀'], ['剪刀', '布'], ['布', '石头']] #人能赢的三种情况,写成列表的形式
prompt = """*********************
(0) 石头
(1) 剪刀
(2) 布
********************
请出拳(0/1/2):
"""
player_win = 0 #人赢的次数
pc_win = 0  #计算机赢的次数
while player_win < 2 and pc_win < 2:
#注意这里:为什么不是player_win < 2 or pc_win < 2呢?
#or的两边有一边是True,其结果就是True,就往下执行,
#也就是说得等到player_win < 2为True时,且pc_win < 2为True时,循环才会结束
#and的两边有一边是False,循环就会结束
    pc = random.choice(all_choice)
    ind = int(input(prompt)) #把人输入的数字序号转换成字符类型
    player = all_choice[ind]

    print("你出的拳是:%s,计算机出的拳是: %s" % (player, pc))
    if player == pc:
        print('\033[32m平局\033[0m')
    elif [player, pc] in win_list: #成员关系判断
        print('\033[32m你赢了\033[0m')
        player_win += 1
    else:
        print('\033[31m你输了\033[0m')
        pc_win += 1

4.游戏效果

在这里插入图片描述
在这里插入图片描述

おすすめ

転載: blog.csdn.net/qq_44839276/article/details/122214177
おすすめ