random猜拳

这篇博客介绍了如何使用编程语言实现一个随机猜拳游戏,包括石头、剪刀、布的随机选择和胜负判断逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


import random
'''
猜拳游戏:
和电脑进行猜拳游戏,规定 [0, 1, 2]  --> [石头 剪刀 布]
举例:当人输入 0 同时 电脑输入 1 打印 “恭喜您 您赢了”
      人输入 2 同时 电脑输入 1 打印 “机器你都赢不了 回家种田”
'''
j =0
i=0
k=0
v=0
while j<5:

# 人输入的数字
    people_num = int(input("请输入【0,1,2】三个数字:(0->石头,1->剪刀,2->布):"))

# 机器输入的数字
    computer = random.randint(0, 2)
# 声明一个列表用于友好打印
    lst = ['石头', '剪刀', '布']
    print("人输入的是:", lst[people_num], "  电脑输入的是:", lst[computer])

# 人赢的情况
    first = people_num == 0 and computer == 1
    second = people_num == 1 and computer == 2
    third = people_num == 2 and computer == 0

# 只要满足一种情况即可
    if any([first, second,third]):
        i+=1
        print("人赢了",i,"次")
        if i ==3:
            print("恭喜你,你赢了")
            break

    elif people_num == computer:
        k+=1
        print("平了",k,"次")
        if k == 3:
            print("再来五次")


    else:
        v+=1
        print("输了",v,"次")
        if v==3:
            print('机器你都赢不了 回家种田')
            break

    j+=1
    if j==5:
        j=0
        i=0
        k=0
        v=0


# 如果是五局三胜 猜拳五次,三次胜利才算赢 否则重新来过
# 打印出谁最终赢了 你赢的情况 恭喜您 您赢了  ,机器赢的情况:机器你都赢不了 回家种田
# 连续猜拳 知道有一方连续赢五次 才推出 打印出谁赢了,打印出比赛的次数



import random
'''
硬币游戏:
连续随机抛100次硬币,【0表示正面, 1表示反面】
打印出最长的连续出现同一面的数字的长度
举例:
11001000001 --> 打印出00000的长度,是最长连续出现同一面
分析:判断当前的抛出的结果和上一次抛出的结果进行对比
lst = [1, 0, 1, 1, 0, 0, 0, 1, 0, 0]
lst[i] = lst[i - 1]
x = 2
x = 3
x += 1
'''
lst = []
for j in range(100):
    lst.append(random.randint(0,1))
print(lst)
# 声明一个x变量 用于计算最大次数
x = 1
# 声明一个空列表 用于存储所有的连续出现的次数
lst1 = []
for i in range(1, 100):
    # print(lst[i], end=' ')
    # 判断是否连续 是则将x加1
    if lst[i] == lst[i-1]:
        x += 1
    # 如果不连续则 初始化x的值
    else:
        x = 1
    print(x, end=' ')
    lst1.append(x)
print(lst1)
print("连续次数最多的是:",max(lst1),"次")


# 作业:完善上面的练习
# 连续抛1000次硬币 打印出连续出现4次0的次数  连续出现8次1的次数
# 举例:10000111000010  打印出2
lst = []
for j in range(1000):
    lst.append(random.randint(0,1))
# print(lst)
# 声明一个x变量 用于计算最大次数
x = 0
# 声明一个空列表 用于存储所有的连续出现的次数
lst1 = []
for i in range(3,1000):
    # print(lst[i], end=' ')
    # 判断是否连续 是则将x加1
    # print(i)
    if i ==3: #前四个为零的时候
        if lst[i] == lst[i -1] == lst[i - 2] == lst[i - 3] ==0 and lst[i+1]==1:
            x+=1
        else:
            x=0
    elif i==len(lst)-1: #最后四个为零的时候
        if lst[i] == lst[i - 1] == lst[i - 2] ==lst[i-3] ==0 and lst[i-4]==1:
            x+=1
        else:
            x=0
    elif lst[i] == lst[i - 1] == lst[i - 2] == lst[i-3]== 0  and lst[i+1]!=0 and lst[i-4]!=0:#正常情况下
            x+=1
    # # 如果不连续则 初始化x的值
    else:
        x = 0
    print(x, end=' ')
    lst1.append(x)
print(lst1)
print("出现连续4个0的次数:",sum(lst1),"次")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值