如何在Python中对多个整数进行排序而不使它们成为数组或列表

2024-10-04 03:23:28 发布

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

我只是在学习编程,我已经开始学习Python了。我有一项任务要做: 用4名玩家模拟游戏。每个玩家掷一个骰子,直到掷出6个为止,然后下一个玩家继续掷骰子。在大多数尝试中投6球的玩家是赢家。程序应该写下玩家投掷的是谁以及他尝试了多少次。如果两名玩家在相同的尝试次数中投掷6次,则先前投掷的玩家获胜

任务来自pythonladies顺便说一句,目前im无法按降序排序并选择获胜者。我不想在很多情况下(如果,如果其他),我也在第五章,我没有学习数组/列表,所以我想让你不用它。以下是我目前的代码:

hrac表示玩家
pokusy表示尝试

from random import randrange, random

hrac1 = 0
pokusy1 = 0

hrac2 = 0
pokusy2 = 0

hrac3 = 0
pokusy3 = 0

hrac4 = 0
pokusy4 = 0

while hrac4 != 6:
    while True:
        if hrac1 != 6:
            hrac1 = randrange(1, 7)
            pokusy1 = pokusy1 + 1
            print("Hráč 1 hodil: ", hrac1, " Toto bol jeho: ",pokusy1," pokus")
        else:<br>
            break
    while True:<br>
        if hrac2 != 6:
            hrac2 = randrange(1, 7)
            pokusy2 = pokusy2 + 1
            print("Hráč 2 hodil: ", hrac2, " Toto bol jeho: ",pokusy2," pokus")
        else:
            break
    while True:<br>
        if hrac3 != 6:
            hrac3 = randrange(1, 7)
            pokusy3 = pokusy3 + 1
            print("Hráč 3 hodil: ", hrac3, " Toto bol jeho: ",pokusy3," pokus")
        else:
            break
    while True:
        if hrac4 != 6:
            hrac4 = randrange(1, 7)
            pokusy4 = pokusy4 + 1
            print("Hráč 4 hodil: ", hrac4, " Toto bol jeho: ",pokusy4," pokus")
        else:
            break

此外,如果您有简化此代码的想法,我很高兴:)


Tags: trueif玩家hrprintrandrangewhilehrac2
1条回答
网友
1楼 · 发布于 2024-10-04 03:23:28

因为你不知道列表和数组,所以我可以告诉你,当我是C++程序员时,你的解决方案是:

让我们想象一下这些尝试次数的样本数:

pokusy1 = 1
pokusy2 = 2
pokusy3 = 3
pokusy4 = 4

temp = 0

然后你只需要用这种方式比较它们:

if(pokusy1 > pokusy2):
    temp = pokusy1
else:
    temp = pokusy2
if(pokusy3 > temp):
    temp = pokusy3
if(pokusy4 > temp):
    temp = pokusy4

相关问题 更多 >