安东尼娅和大卫正在玩游戏。每名球员先得100分

2024-04-28 05:41:16 发布

您现在位置:Python中文网/ 问答频道 /正文

问题:安东尼娅和大卫正在玩游戏。每名球员先得100分。游戏使用标准的六面骰子,分回合进行。在一轮中,每位玩家掷一个骰子。掷骰较低的玩家将失去较高骰子上显示的点数。如果两个玩家掷相同的号码,任何一个玩家都不会丢分。编写一个程序输出最终分数和获胜者

输入规范输入的第一行包含整数n(1≤ N≤ 15) ,这是将进行的回合数。在接下来的n行中的每一行上,都会有两个整数:那一轮的安东尼娅卷,后面是空格,最后是那一轮的大卫卷。每卷为1到6(含)之间的整数。输出规格输出将由两行组成。在第一行,输出所有回合结束后安东尼娅的点数。在第二行,输出所有回合结束后David的点数

我的许多问题之一是使程序列表中的输入数与第一个输入指定的输入数一致

以下是我到目前为止的情况:

我知道我只要求一件事,但谁能完成这个挑战,让我看看我能为我的程序添加什么


Tags: 程序规范游戏标准玩家整数骰子大卫
1条回答
网友
1楼 · 发布于 2024-04-28 05:41:16

因为这是一个家庭作业问题,你真的应该先自己解决。说到这里,我会给你们一些提示,但我不会给你们一个完整的工作程序——我希望你们能理解我的理由

首先,这个问题肯定需要某种类型的迭代,因为掷骰子n次是重复的。选择for循环还是while循环取决于您-在本例中,我使用while循环。在获得轮数后(不要忘记将用户输入转换为int),您可以编写如下内容:

while rounds > 0:
   # simulate rolling here
   rounds -= 1

掷骰子是一个随机动作-掷骰子有1/n的几率,其中n是骰子上的边数。我建议列出所有可能性:

dice = [1,2,3,4,5,6]

然后使用random模块中的choice()从该列表中选择一个随机项

from random import choice

david_roll = choice(dice)
antonia_roll = choice(dice)

现在您已经有了每个卷的值,您可以对卷执行一些简单的比较:

if david_roll > antonia_roll:
    # modify scores accordingly
elif david_roll < antonia_roll:
    # modify scores accordingly

相关问题 更多 >