Python中间的骰子游戏循环

2024-10-06 10:29:49 发布

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

我在写一个介于骰子之间的游戏。我之前有另一个问题被回答了,但我仍然有一个问题。(请记住,我对编程一般来说都是新手)

这是我得到的输出,它涉及到“更高或更低”选项,如果两个骰子掷同一个数字:

Would you like to play in-between [y|n]? y

Die 1: 1 Die 2: 1

Number of chips: 100 Place your bet: 50

Even-steven!

Even-steven! Higher or lower [h|l]? h

Die 3: 9

* You win! *

You now have 150 chips! Play again y|n? y

Die 3: 9

* Sorry - You lose! *

You now have 100 chips! Play again [y|n]?

它不应该再次显示骰子3并说“你输了”,它应该再次滚动骰子1和2(基本上从一开始,但保留已赢/输的筹码),如果玩家选择“n”,它会做同样的事情。如果玩家选择“n”,游戏结束。在

以下是我的代码(我将两个骰子上的数字都改为“1”,以测试更高/更低的游戏):

import random

# Number of chips
chipBalance = 100

play = input('Would you like to play in-between [y|n]? ')

while play == 'y':
    # First dice roll
    die1 = 1

    # Second dice roll
    die2 = 1 

    # Swaps the values of the dice if die one is larger than die two
    if die1 > die2:
        temp = die1
        die1 = die2
        die2 = temp

    # Displays value of the first and second die   
    print('\nDie 1:', die1, '  Die 2:', die2)

    # Displays the number of chips held by player
    print('\nNumber of chips:', chipBalance)

    # Prompts player to place their bet
    bet = int(input('Place your bet: '))

    #Third dice roll
    die3 = random.randint(1,12)

    # Checks if the dice are the same or different
    if die1 == die2:
        print('\nEven-steven!')
        guess = input('\nEven-steven! Higher or lower [h|l]? ')

        print('\nDie 3:', die3)

        if guess == 'h':
            if die3 > die1:
                print('\n*** You win! ***')
                chipBalance = chipBalance + bet
            elif die3 < die1:
                print('\n*** Sorry - You lose! ***')
                chipBalance = chipBalance - bet
            elif die3 == die1:
                print('\n*** You hit the post - You lose! ***')
                chipBalance = chipBalance - bet

        if guess == 'l':
            if die3 > die1:
                print('\n*** Sorry - You lose! ***')
                chipBalance = chipBalance - bet
            elif die3 < die1:
                print('\n*** You win! ***')
                chipBalance = chipBalance + bet
            elif die3 == die1:
                 print('\n*** You hit the post - You lose! ***')
                 chipBalance = chipBalance - bet

        # Displays when chip balance has reached zero
        if chipBalance <= 0:
            print('\nYou\'re all out of chips!\n\n*** GAME OVER ***')
        else:
            print('\nYou now have', chipBalance, 'chips!')

        play = input('Play again y|n? ')

    elif die1 != die2:
        print('\nNot the same, let\'s play!')

    # Value of the third die
    print('\nDie 3:', die3)

    # Results of dice roll
    if die3 > die1 and die3 < die2:
        print('\n*** You win! ***')
        chipBalance = chipBalance + bet
    elif die3 < die1 or die3 > die2:
        print('\n*** Sorry - You lose! ***')
        chipBalance = chipBalance - bet
    elif die3 == die1 or die3 == die2:
        print('\n*** You hit the post - You lose! ***')
        chipBalance = chipBalance - bet

    # Displays when chip balance has reached zero
    if chipBalance <= 0:
        print('\nYou\'re all out of chips!\n\n*** GAME OVER ***')
    else:
        print('\nYou now have', chipBalance, 'chips!')

    # Update loop control
    play = input('Play again [y|n]? ')

print('\nThanks for playing!')

任何关于我需要改变/改变为什么的帮助将不胜感激!提前谢谢。在


Tags: oftheyouplayifdiceprintelif
3条回答

缩进已关闭:

   play = input('Play again y|n? ') <  This is the expected play again

elif die1 != die2:
    print('\nNot the same, let\'s play!')

# Value of the third die  < - This should be indented inside the elif.
print('\nDie 3:', die3)

# Results of dice roll
if die3 > die1 and die3 < die2:
    print('\n*** You win! ***')
    chipBalance = chipBalance + bet
elif die3 < die1 or die3 > die2:
    print('\n*** Sorry - You lose! ***')
    chipBalance = chipBalance - bet
elif die3 == die1 or die3 == die2:
    print('\n*** You hit the post - You lose! ***')
    chipBalance = chipBalance - bet

# Displays when chip balance has reached zero
if chipBalance <= 0:
    print('\nYou\'re all out of chips!\n\n*** GAME OVER ***')
else:
    print('\nYou now have', chipBalance, 'chips!')

# Update loop control
play = input('Play again [y|n]? ')

在块if die1 == die2中,您有:

play = input('Play again y|n? ')

但在这个阶段,用户输入什么并不重要。脚本将在块外部继续

^{pr2}$

在偶数史蒂文部分的最后,你会问球员是否想再次上场。但是不管你是否进入even steven部分,不管用户是否要求再次播放,都要打印Die 3并处理它。(也许elif die1 != die2后面的代码应该在elif内?在

相关问题 更多 >