[英]Two Player Number Guessing Game - Python
我正在嘗試編寫一個游戲,其中玩家一選擇一個數字,玩家二有 5 個猜測來猜測它。 如果他設法做到了,他就贏了,否則,他就輸了,而玩家一獲勝。
所以我有代碼,但是例如,如果玩家一選擇數字“3”,而玩家二在他的任何一次比賽中輸入數字“3”,它仍然說玩家一獲勝。
>>>
Player One enter you chosen number: 3
Player Two have a guess: 3
Player One wins.
>>>
這也會發生:
>>>
Player One enter you chosen number: 5
Player Two wins.
此外,玩家二可以有任意多的回合,但應該只有 5 次。如果他超過了這個數量,玩家一自動獲勝。 這是我的代碼:(我不知道我在這里出錯了。)
def Game():
Guess = 0
NumberOfGuesses = 0
NumberToGuess = int(input("Player One enter you chosen number: "))
while NumberToGuess < 1 or NumberToGuess > 10:
NumberToGuess = int(input("Not a valid choice, please enter another number: "))
while Guess != NumberToGuess and NumberOfGuesses < 5:
Guess = int(input("Player Two have a guess: "))
NumberOfGuesses = NumberOfGuesses + 1
if Guess == NumberToGuess:
print("Player One wins.")
else:
print("Player Two wins.")
Game()
您的 if 語句是錯誤的方式。 代替
if Guess == NumberToGuess:
print("Player One wins.")
else:
print("Player Two wins.")
它應該是
if Guess == NumberToGuess:
print("Player Two wins.")
else:
print("Player One wins.")
因為如果玩家 2 猜到玩家 1 選擇的數字 (NumberToGuess),他就會獲勝。 我無法重建你的第二個問題,即玩家 2 立即獲勝,玩家 1 進入 5。它對我來說很好用。
邏輯是錯誤的。 如果輸入不等於NumberToGuess
則您無法打印Player Two wins.
然后你必須循環。 然后在循環外檢查玩家一是否成功。
while Guess != NumberToGuess and NumberOfGuesses < 5:
Guess = int(input("Player Two have a guess: "))
NumberOfGuesses = NumberOfGuesses + 1
if Guess == NumberToGuess:
print("Player Two wins.")
if Guess != NumberToGuess:
print("Player One wins.")
"""This game generates random number, then players try to guess the number generated"""
import random
#generate number directly
num = random.randrange(1,5)
#initialize global variables
player1 = "Human"
player2 = "Alien"
player = ""
player1PlayCount = 0
player2PlayCount = 0
maxPlayTimes = 3
#game logic
def Game():
global player1, player2, player, player1PlayCount, player2PlayCount, maxPlayTimes, num
"""enter and assign names to players"""
player1Name = input('Player1 Enter Your Name: ')
player2Name = input('Player2 Enter Your Name: ')
player1 = player1Name
player2 = player2Name
player = player1
print(player1, 'turn')
while ((player1PlayCount and player2PlayCount) != maxPlayTimes):
guessNum = int(input("Guess Number: "))
if guessNum == num:
print(player, "won")
exit()
elif player == player1:
player1PlayCount +=1
player = player2
print(player2, 'turn')
elif player == player2:
player2PlayCount +=1
player = player1
print(player1, 'turn')
else:
print("Both ", player1, " and ", player2, " lose")
exit()
Game()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.