Игра для начинающих python: Крэпс, а-l oop выпуск - PullRequest
0 голосов
/ 11 апреля 2020

Я новичок в программировании, и моя задача - сделать игру в кости. Игра продолжается, пока вы не ответите «нет», когда вас попросят снова играть. После того, как вы введете «нет», он должен показать, сколько раз вы выиграли и проиграли. Это работало нормально с этим (без учета счета):

import random

def main():

    playGame = input("Would you like to play Craps? (Enter yes or no): ")
    while playGame == 'yes':
        roll = input("Press Enter to roll the dice")
        rollDice1 = random.randint(1, 6)
        rollDice2 = random.randint(1, 6)
        print("You got a", rollDice1, "and a", rollDice2)
        rolledDice = rollDice1 + rollDice2
        print("you rolled a", rolledDice)
        if rolledDice == 7 or rolledDice == 11:
            print("IT'S YOUR LUCKY DAY! YOU WIN!")

        elif rolledDice == 2 or rolledDice == 3 or rolledDice == 12:
            print("YOU LOSE! BETTER LUCK NEXT TIME!")

        else:
            print("YOU NEITHER WIN NOR LOSE!")

        playGame = input("Try again? (Enter yes or no): ")
        if playGame == "no":
            print("Place holder")
main()

Когда я пытался сохранить счет, и я не получу l oop, когда вы выиграете или проиграете. (Хотя это все еще происходит, когда вы не выигрываете и не проигрываете):

import random

def main():
    wins = 0
    losses = 0

    playGame = input("Would you like to play Craps? (Enter yes or no): ")
    while playGame == 'yes':
        roll = input("Press Enter to roll the dice")
        rollDice1 = random.randint(1, 6)
        rollDice2 = random.randint(1, 6)
        print("You got a", rollDice1, "and a", rollDice2)
        rolledDice = rollDice1 + rollDice2
        print("you rolled a", rolledDice)
        if rolledDice == 7 or rolledDice == 11:
            print("IT'S YOUR LUCKY DAY! YOU WIN!")
            wins = wins + 1
            return wins

        elif rolledDice == 2 or rolledDice == 3 or rolledDice == 12:
            print("YOU LOSE! BETTER LUCK NEXT TIME!")
            losses = losses + 1
            return losses

        else:
            print("YOU NEITHER WIN NOR LOSE!")

        playGame = input("Try again? (Enter yes or no): ")
        if playGame == "no":
            print("Wins: ", wins)
            print("Losses: ", losses)
main()

Я ценю любую помощь и совет, данный. Как я уже говорил, я новичок в этом, поэтому, пожалуйста, попробуйте объяснить, что не так и что я должен сделать простым способом.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

Если вы return что-то изнутри функции, вы оставляете это - вот почему ваше время l oop не работает:

def main():
    wins = 0
    losses = 0

    playGame = input("Would you like to play Craps? (Enter yes or no): ")
    while playGame == 'yes':
        roll = input("Press Enter to roll the dice")
        rollDice1 = random.randint(1, 6)
        rollDice2 = random.randint(1, 6)
        print("You got a", rollDice1, "and a", rollDice2)
        rolledDice = rollDice1 + rollDice2
        print("you rolled a", rolledDice)
        if rolledDice == 7 or rolledDice == 11:
            print("IT'S YOUR LUCKY DAY! YOU WIN!")
            wins = wins + 1
            return wins   # EXITS main() - simply delete this row

        elif rolledDice == 2 or rolledDice == 3 or rolledDice == 12:
            print("YOU LOSE! BETTER LUCK NEXT TIME!")
            losses = losses + 1
            return losses # EXITS main() - simply delete this row

        else:
            print("YOU NEITHER WIN NOR LOSE!")

        playGame = input("Try again? (Enter yes or no): ")
        if playGame == "no":
            print("Wins: ", wins)
            print("Losses: ", losses)
             return  # add this to exit the function (could use break as well)
main()
0 голосов
/ 11 апреля 2020

Вместо использования return используйте yield. Return завершает функцию, чтобы дать вам результат, в то время как yield продолжается с функцией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...