Программа на Python, которая имитирует бросание кубика на 6 сторон и суммирует результат каждого броска, пока вы не бросите 1 - PullRequest
0 голосов
/ 30 сентября 2018

так что это код, который я написал, который пытается ответить на вопрос в заголовке:

import random
print("Well, hello there.")
while True:
    a = random.randint(1,6)
    sum = 0
    if(a==1): #If a one is indeed rolled, it just shows rolled a 1 and 'Pigs out' and makes the score equal to 0(player score that is) and is a sort of a GameOver
        print("Pigged out!")
        break #To get out of the loop
    else:
        while(sum<=20): 
            sum += a
            print(sum)

Программа должна удерживать счет до достижения 20 (или более) и отображать его.По сути, это один оборот «Свиньи»Я не могу понять, где я иду не так с этим?Любые предложения будут полезны.

Пример примера вывода:

-rolled a 6 -rolled a 6 -rolled a 5 -rolled a 6 -Turn score is 23

Ответы [ 4 ]

0 голосов
/ 30 сентября 2018

Если я правильно понимаю, вы можете значительно упростить это, например:

import random
print("Well, hello there.")
score = 0
while score < 20:
    a = random.randint(1,6)
    print("A {} was rolled".format(a))
    score += a
    if a == 1:
        print("Pigged out!")
        score = 0
        break
print("Turn score is {}".format(score))
0 голосов
/ 30 сентября 2018

Вы должны прерваться после того, как сумма превысит 20

else:
    while(sum<=20): 
        sum += a
        print(sum)
    break

Редактировать:

import random
print("Well, hello there.")
while True:
    a = random.randint(1,6)
    sum = 0
    if(a==1): #If a one is indeed rolled, it just shows rolled a 1 and 'Pigs out' and makes the score equal to 0(player score that is) and is a sort of a GameOver
        print("Pigged out!")
        break #To get out of the loop
    else:
        if not SumWasReached:
           while(sum<=20): 
               a = random.randint(1,6)
               sum += a
               print(sum)
           SumWasReached ==True:
        else:
            while(a!=1):
               a = random.randint(1,6)
            break
0 голосов
/ 30 сентября 2018

это то, что вы хотите?

import random
print("Well, hello there.")
sum=0
while True:
    a = random.randint(1,6)
    sum+=a
    if(a==1): #If a one is indeed rolled, it just shows rolled a 1 and 'Pigs out' and makes the score equal to 0(player score that is) and is a sort of a GameOver
        print("Pigged out!")
        break #To get out of the loop
    else:
        if sum<=20: 
            sum += a
            print(sum)
        else:
            print(sum,'limit reached')
            break
0 голосов
/ 30 сентября 2018

Если вы просто хотите отобразить сумму, когда она больше 20, не должны ли вы сделать отступ print(sum) слева?По существу:

while(sum<=20): 
    sum += a
print(sum)

Было бы неплохо, если бы вы могли уточнить, каким должен быть вывод, и чем он сейчас занимается.

...