我正在寻找创建一个简单的掷骰子游戏,我遇到了问题。
输入此代码时:
import random
def main():
starting_money = int(input("How much do you have to gamble? : "))
print()
player_bet = int(input("Enter your bet: "))
number_1 = (random.randint(1,6))
number_2 = (random.randint(1,6))
print("Dice roll 1: ", number_1)
print("Dice roll 2: ", number_2)
roll = number_1 + number_2
print("Your roll: ", roll)
rounds = input("Play again? (Y/N): ")
while rounds != "n" and rounds == "y":
if rounds == "n":
print("Congratulations, you left with")
if roll == 7 or roll == 11:
print("You win $", player_bet, sep="")
new_money = starting_money + player_bet
print("You have $", new_money, " remaining.", sep="")
elif roll == 2 or roll == 3 or roll == 12:
new_money = starting_money - player_bet
print("You lost $", player_bet, sep="")
print("You have $", new_money, " remaining.", sep="")
else:
print("You push.")
new_money = starting_money
print("You have $", new_money, " remaining.", sep="")
break
main()
当我输入“n”时会发生这种情况。
Enter your bet: 5
Dice roll 1: 6
Dice roll 2: 6
Your roll: 12
Play again? (Y/N): n
当我输入“y”时会发生这种情况。
Enter your bet: 5
Dice roll 1: 2
Dice roll 2: 3
Your roll: 5
Play again? (Y/N): y
You push.
You have $10 remaining.
在这两种情况下,它都需要在用户询问是否要再次播放之前告诉用户他们是否推,赢或输。我怎么能做到这一点?
如果我在while循环中放入“rounds”,它会告诉我在分配之前引用了舍入。
答案 0 :(得分:0)
第一个问题是告诉用户他们是推送,赢或输的所有代码都在循环内,如果用户输入" n",该代码永远不会运行。真正的问题是你的大部分代码都应该在循环中,包括询问用户他们想要下注多少以及掷骰子。
我首先将rounds
变量初始化为默认值" y"这样循环至少运行一次,然后不要问用户是否要再次播放,直到循环结束。然后在循环中移动所有其他代码。 (除了"你有多少赌博?"部分。这可能应该在循环之外。)
这是未经测试的,但事情的顺序应该是这样的:
import random
def main():
starting_money = int(input("How much do you have to gamble? : "))
print()
rounds = "y"
while rounds != "n" and rounds == "y":
player_bet = int(input("Enter your bet: "))
number_1 = (random.randint(1,6))
number_2 = (random.randint(1,6))
print("Dice roll 1: ", number_1)
print("Dice roll 2: ", number_2)
roll = number_1 + number_2
print("Your roll: ", roll)
if rounds == "n":
print("Congratulations, you left with")
if roll == 7 or roll == 11:
print("You win $", player_bet, sep="")
new_money = starting_money + player_bet
print("You have $", new_money, " remaining.", sep="")
elif roll == 2 or roll == 3 or roll == 12:
new_money = starting_money - player_bet
print("You lost $", player_bet, sep="")
print("You have $", new_money, " remaining.", sep="")
else:
print("You push.")
new_money = starting_money
print("You have $", new_money, " remaining.", sep="")
rounds = input("Play again? (Y/N): ")
main()
如果玩家没钱,你应该考虑结束游戏。
答案 1 :(得分:0)
我认为这里有很多东西可以消除,但为什么不从这开始:
rounds = 'y'
while .....
....
....
else:
....
rounds = input("Play again (y/n)")
这样,您可以在第一次滚动后自动进入while循环,并在询问是否要再次播放之前给出用户结果。您必须处理的下一个问题是,在while循环中,没有提供新的投注或再次掷骰子的条款。