扔骰子问题,两人各扔三次

构造一个扔骰子模型。小明和小王每人都掷骰子3次,每次都扔3个骰子,每次都比较大小,骰子点数和较大的一方赢。如果骰子点数相同则为平局,如果一方投出3个一点或者3个六点,则立即取得胜利。整个游戏五局三胜。请在计算机控制台输出模拟过程。



import random

v =[0,0]
while 5 not in v:
    s = [random.randint(1,6) for _ in range(6)]
    print('A点数::',*s[:3])
    print('B点数::',*s[3:])
    if sum(s[:3]) in [3,18]:
        v[0] += 1
        print('A胜')
        continue
    if sum(s[3:]) in [3,18]:
        v[1] += 1
        print('B胜')
        continue
    if sum(s[:3]) > sum(s[3:]):
        v[0] += 1
        print('A胜')
    elif sum(s[:3]) < sum(s[3:]):
        v[1] += 1
        print('B胜')
    else:
        print('平局')
print('最终','A胜' if v[0] > v[1] else 'B胜',sep=':')    

主要使用random生成随机数模拟骰子,望采纳

import random

def roll_dice():
    # 随机生成1-6之间的整数,表示骰子点数
    return random.randint(1, 6)

def play_round():
    scores = [0, 0]   # 记录两个玩家的得分
    for i in range(3):
        # 每个玩家轮流掷三次骰子
        for j in range(2):
            # 每次掷三个骰子
            dice = []
            for k in range(3):
                dice.append(roll_dice())
            # 比较大小,加分
            if dice.count(1) == 3 or dice.count(6) == 3:
                # 一方投出3个一点或者3个六点,则立即取得胜利
                scores[j] += 1
                break
            elif sum(dice) > sum(dice[::-1]):
                scores[j] += 1
    # 判断胜负
    if scores[0] == scores[1]:
        print("平局")
        return None
    else:
        winner = 1 if scores[0] < scores[1] else 2
        print("第{}局,{}获胜".format(rounds_played + 1, "小明" if winner == 1 else "小王"))
        return winner

# 主程序开始
rounds_played = 0
wins = [0, 0]   # 记录两个玩家的胜利场次
while rounds_played < 5 and max(wins) < 3:
    result = play_round()
    if result is not None:
        wins[result - 1] += 1
    rounds_played += 1

# 输出最终胜者
if wins[0] == wins[1]:
    print("比赛结束,平局")
else:
    winner = 1 if wins[0] > wins[1] else 2
    print("比赛结束,{}获得最终胜利".format("小明" if winner == 1 else "小王"))
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7719123
  • 这篇博客你也可以参考下:同样的随机种子,前几次可以复现,但不知道动了哪里,复现不了以前的结果了
  • 除此之外, 这篇博客: 软件测试工程师的工作,可以干一辈子吗?中的 1)技术路线 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 初级测试工程师→中级测试工程师→高级测试工程师→性能测试工程师→自动化测试工程师→测试开发架构师→安全测试工程师→性能调优工程师

    为什么测试行业会有越老越吃香这一说,在这个行业,经验的含金量还是很重要,面对各式各样奇形怪状的BUG,老测试员的策略、处理方式和新手相比就成熟的多了。就和游戏闯关一样,需要主人公的等级达到一定的程度,才能迈入下一个关卡,当测试员步入35的门槛时,需要达到测试开发架构师的程度,总之这个阶段,不能仅仅局限于测试这一单一领域了。经常有人拿开发和测试作比较,也有人会觉得开发比测试更有前景,其实不然,当测试工程师达到自动化测试工程师和测试开发架构师的程度时是完全可以替代开发的,通过技术手段可以改变整个项目的质量。但如果你到了35还没有比较高的技术化,被淘汰的几率是80%,毕竟那时的体力和学习能力与年轻人相比,就有些捉襟见肘了。所以,想要走技术路线在这个行业一直干下去,就是鼎恒商学院的葛老师常挂在嘴边的一句话:不能停止学习。

  • 您还可以看一下 陈槐老师的软件测试全栈系列课程课程中的 电商平台部署服务清单小节, 巩固相关知识点