Python用五个六面骰子玩的骰子游戏,每投骰子组一次,就会出现 5 个数字的数组(数字:1-6),统计数组里每个数字出现的次数,将每个数字出现的次数拆分成 3 次 和 1 次 的组合。

题目

用五个六面骰子玩的骰子游戏,每投骰子组一次,就会出现 5 个数字的数组(数字: 1-6 ),统计数组里每个数字出现的次数,将每个数字出现的次数拆分成 3 次 和 1 次 的组合,然后按照下面的规则进行计数。注意:如果出现次数大于或者等于 3 次,那么必须至 少有一个按照 3 次来计算不能全部按照 1 次来计算
3 次 1 = = 1000 3 6 = = 600 3 5 = = 500 3 4 = = 400 分 3 3 = = 300 3 2 = = 200 1 1 => 100 1 5 => 50 分 1 2 => 0 1 3 => 0 1 4 => 0 1 6 => 0 分。 例如,5 出现了 5 次,那么应当做作 3 5 1 5 1 5 来计算 得分;5 出现了 次,那么应当作 3 5 3 5 来计算得分,其他 数字同理。
测试用例 : 扔骰子计算得分
5 1 3 4 1 50 + 2 * 100 = 250
1 1 1 3 1 1000 + 100 = 1100
2 4 4 5 4 400 + 50 = 450。

方法

将输入的筛子点数,用集合将相同的去掉,再用循环判断每个点数出现的次数,形成点数与出现次数一一对应的两个列表。再用for循环,在for循环语句里,用点数出现次数的列表做for循环的迭代器,用两个while循环判断点数出现的次数是否大于3,while语句内部判断这个次数的骰子点数是多少,将其对应的分数算出来,用一个计数器将每次结果相加,最后输出就得到了最后的结果。

代码

s=input("输入骰子的点数:")
s1=s.split()#将字符串转成列表
s2=s1[:]#切片
s2=set(s2)#转换成集合
s2=list(s2)#再次转为列表
s3=[]
t1=0
t4=0
for i in s2:#计算每个骰子点数出现的次数
    t=s1.count(i)
    s3.append(t)
for i in s3:#迭代器为骰子点数出现次数的列表
    t3=s2[t4]#将这个次数的骰子值得到
    t3=int(t3)#列表里面为字符串,需要转换为整数才能进行下面操作
    i=int(i)
    t2 = i % 3#判断这个点数具体比3多几或者小于3具体出现几次
    while i>=3:#如果出现次数大于3进入这个while循环
        #判断骰子值具体是几,再进行相应的计算分值。因为每次取一个值,所有计算完后就要用break直接跳出while循环,
        # 再次进行for循环
        if t3==1:
            t1=t1+1000+t2*100#都已经出现三次了,所以t2一定是比三次多出的次数,
            break
        elif t3==2:
            t1=t1+200
            break
        elif t3==3:
            t1=t1+300
            break
        elif t3==4:
            t1=t1+400
            break
        elif t3==5:
            t1=t1+500+50*t2
            break
        elif t3==6:
            t1=t1+600
            break
    while i<3:#如果出现次数小于3
        #因为出现次数小于3的有些值没有分数,就没有if语句但是要跳出while循环,因此最后要多一个else  break 跳出,
        #这个要注意
        if t3==1:
            t1=t1+t2*100#t2就是这个筛子具体出现的次数
            break
        elif t3==5:
            t1=t1+50*t2
            break
        else:
            break
    t4=t4+1#手动将存储骰子列表向后推一位
print(f"扔骰子得分为:{t1}")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花子喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值