Игра в кости в кости - PullRequest
       13

Игра в кости в кости

0 голосов
/ 15 марта 2019

Я пытаюсь реализовать функцию craps (), которая не принимает аргументов, имитирует одну игру в кости и возвращает 1, если игрок выиграл, и 0, если игрок проиграл.

Вот правило: игра начинается с того, что игрок бросает пару стандартных шестигранных кубиков. Если игрок бросает в общей сложности 7 или 11, игрок выигрывает. Если игрок бросает в общей сложности 2, 3 или 12, игрок проигрывает. При всех других значениях броска игрок будет несколько раз бросать пару костей, пока он либо снова не бросит начальное значение (в этом случае он выиграет), либо 7 (в этом случае он проиграет)

Вот код, который я получаю. Я продолжаю получать 0, но не могу найти, где я допустил ошибку.

def craps():
    ''' () -> int

    Return 1 if the player won and 0 if the player lost.

    >>> craps()
    0
    >>> craps()
    1
    >>> craps()
    1
    '''
    import random
    dice = random.randrange(1, 7) + random.randrange(1, 7)
    if dice == 2 or dice == 3 or dice == 12:
        return 0
    elif dice == 7 or dice == 11:
        return 1
    else:
        dice1 = random.randrange(1, 7) + random.randrange(1, 7)
        while dice1 != dice or dice1 != 7:
            dice1 = random.randrange(1, 7) + random.randrange(1, 7)
        if dice1 == dice:
            return 1
        elif dice1 == 7:
            return 0

И когда я вызываю craps (), я все время получаю 0.

1 Ответ

1 голос
/ 15 марта 2019

Хорошая работа, вы были очень близки. Я нашел твою проблему, это была твоя оценка. Я позволил себе сделать вашу программу более читабельной, так как игральные кости - это множественное число. Также я переместил ваш случайный импорт из функции craps (). Я добавил печать только для проверки ошибок:

#Return 1 if the player won and 0 if the player lost.

import random


def craps():
    die1 = random.randrange(1,7)
    die2 = random.randrange(1,7)
    dice = die1 + die2
    if dice == 2 or dice == 3 or dice == 12:
        return 0
   elif dice == 7 or dice == 11:
        return 1
   else:
        die1 = random.randrange(1, 7)
        die2 = random.randrange(1, 7)
        dice2 = die1 + die2
        while dice2 != dice and dice2 != 7:
            die1 = random.randrange(1, 7)
            die2 = random.randrange(1, 7)
            dice2 = die1 + die2
        if dice2 == dice:
            return 1
        elif dice2 == 7:
            return 0


print(str(craps()))
...