簡體   English   中英

兩人猜數字游戲 - Python

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM