如何为python的数字猜测游戏添加第二个玩家?

如何为python的数字猜测游戏添加第二个玩家?,python,Python,嗨,我不确定如何添加第二个玩家的数字猜测游戏,即在玩家1作出猜测,然后玩家2作出猜测。就像在每一次猜测之间。我只能这样做,让玩家2猜后,玩家1猜完成他的所有选择(代码如下),如果有人能够告诉我,我正在寻找的是可能的,或者如果有任何建议,将不胜感激。提前谢谢 def main(): import random n = random.randint(1, 99) chances = 5 guess = int(input("Player 1 please e

嗨,我不确定如何添加第二个玩家的数字猜测游戏,即在玩家1作出猜测,然后玩家2作出猜测。就像在每一次猜测之间。我只能这样做,让玩家2猜后,玩家1猜完成他的所有选择(代码如下),如果有人能够告诉我,我正在寻找的是可能的,或者如果有任何建议,将不胜感激。提前谢谢

def main():
    import random
    n = random.randint(1, 99)
    chances = 5
    guess = int(input("Player 1 please enter an integer from 1 to 99, you have 5 chances: "))
    while n != "guess":
        chances -=1
        if chances ==0:
            print("out of chances")
            break
        if guess < n:
            print("guess is low")
            guess = int(input("Enter an integer from 1 to 99: "))
        elif guess > n:
            print ("guess is high")
            guess = int(input("Enter an integer from 1 to 99: "))
        else:
            print("you guessed it")
            break
            
        import random
    n1 = random.randint(1, 99)
    chances1 = 0
    guess1 = int(input("Player 2 please enter an integer from 1 to 99, you have 5 chances "))
    while n1 != "guess":
        chances1 +=1
        if chances1 ==5:
            print("out of chances")
            break
        if guess1 < n1:
            print("guess is low")
            guess1 = int(input("Enter an integer from 1 to 99: "))
        elif guess > n1:
            print ("guess is high")
            guess1 = int(input("Enter an integer from 1 to 99: "))
        else:
            print("you guessed it")
            break
    retry=input("would you like to play again? (please choose either 'yes' or 'no')")
    if retry == "yes":
        main()
    else:
        print("Okay. have a nice day! :D ")
main()
def main():
随机输入
n=random.randint(1,99)
机会=5
guess=int(输入(“玩家1请输入1到99之间的整数,你有5次机会:”)
而n!=“猜测”:
机会-=1
如果机会==0:
打印(“机会不足”)
打破
如果猜测n:
打印(“猜测很高”)
guess=int(输入(“输入1到99之间的整数:”)
其他:
打印(“你猜对了”)
打破
随机输入
n1=随机。随机数(1,99)
机会1=0
猜1=int(输入(“玩家2请输入1到99之间的整数,你有5次机会”))
而n1!=“猜测”:
机会1+=1
如果信道1==5:
打印(“机会不足”)
打破
如果1n1:
打印(“猜测很高”)
guess1=int(输入(“输入一个从1到99的整数:”)
其他:
打印(“你猜对了”)
打破
重试=输入(“您想再次播放吗?(请选择“是”或“否”))
如果重试==“是”:
main()
其他:
打印(“好的,祝你有愉快的一天!:D”)
main()

为了实现这一点,我将使用while循环和变量来检测是哪一位玩家轮换。像这样:

import random

random_number = random.randint(1, 99)

player_chances = 5
current_player = 1

while player_chances > 0:
    if current_player == 1:
        guess = int(input("Player 1 please enter an integer from 1 to 99, {} chances left. ".format(player_chances)))
        
        player_chances -= 1
        current_player = 2
        
        if guess < random_number:
            print("->guess is too low")
        elif guess > random_number:
            print("->guess is too high")
        else:
            print("CONGRATULATIONS! You guessed it! Player 1 wins!")
            break
        
    else:
        guess = int(input("Player 2 please enter an integer from 1 to 99, {} chances left. ".format(player_chances)))

        player_chances -= 1
        current_player = 1
       
        if guess < random_number:
            print("->guess is too low")
        elif guess > random_number:
            print("->guess is too high")
        else:
            print("CONGRATULATIONS! You guessed it! Player 1 wins!")
            break

print("####")
print("Out of chances! The number was {}.".format(random_number))
print("####")
随机导入
随机数=random.randint(1,99)
玩家机会=5
当前玩家=1
当玩家机会>0时:
如果当前_播放器==1:
guess=int(输入(“玩家1请输入一个1到99之间的整数,左{}次机会。”。格式(玩家_次机会)))
玩家机会-=1
当前玩家=2
如果猜测<随机数:
打印(“->猜测太低”)
elif guess>随机数:
打印(“->猜测太高”)
其他:
打印(“恭喜!你猜对了!玩家1赢了!”)
打破
其他:
guess=int(输入(“玩家2请输入一个1到99之间的整数,左{}次机会。”。格式(玩家_次机会)))
玩家机会-=1
当前玩家=1
如果猜测<随机数:
打印(“->猜测太低”)
elif guess>随机数:
打印(“->猜测太高”)
其他:
打印(“恭喜!你猜对了!玩家1赢了!”)
打破
打印(“######”)
打印(“不可能!数字是{}.”格式(随机数))
打印(“######”)

为了实现这一点,我将使用while循环和变量来检测是哪一位玩家轮换。像这样:

import random

random_number = random.randint(1, 99)

player_chances = 5
current_player = 1

while player_chances > 0:
    if current_player == 1:
        guess = int(input("Player 1 please enter an integer from 1 to 99, {} chances left. ".format(player_chances)))
        
        player_chances -= 1
        current_player = 2
        
        if guess < random_number:
            print("->guess is too low")
        elif guess > random_number:
            print("->guess is too high")
        else:
            print("CONGRATULATIONS! You guessed it! Player 1 wins!")
            break
        
    else:
        guess = int(input("Player 2 please enter an integer from 1 to 99, {} chances left. ".format(player_chances)))

        player_chances -= 1
        current_player = 1
       
        if guess < random_number:
            print("->guess is too low")
        elif guess > random_number:
            print("->guess is too high")
        else:
            print("CONGRATULATIONS! You guessed it! Player 1 wins!")
            break

print("####")
print("Out of chances! The number was {}.".format(random_number))
print("####")
随机导入
随机数=random.randint(1,99)
玩家机会=5
当前玩家=1
当玩家机会>0时:
如果当前_播放器==1:
guess=int(输入(“玩家1请输入一个1到99之间的整数,左{}次机会。”。格式(玩家_次机会)))
玩家机会-=1
当前玩家=2
如果猜测<随机数:
打印(“->猜测太低”)
elif guess>随机数:
打印(“->猜测太高”)
其他:
打印(“恭喜!你猜对了!玩家1赢了!”)
打破
其他:
guess=int(输入(“玩家2请输入一个1到99之间的整数,左{}次机会。”。格式(玩家_次机会)))
玩家机会-=1
当前玩家=1
如果猜测<随机数:
打印(“->猜测太低”)
elif guess>随机数:
打印(“->猜测太高”)
其他:
打印(“恭喜!你猜对了!玩家1赢了!”)
打破
打印(“######”)
打印(“不可能!数字是{}.”格式(随机数))
打印(“######”)

为了以一种高效的方式实现这一点,我会创建这样一个player类:

class Player:
    def __init__(self,name):
        self.name = name
        self.getNumberOfTrys = 0
        self.guess = 0

    def getNumberOfTrys(self):
        return self.getNumberOfTrys

    def getPlayerName(self):
        return self.name

    def play(self):
        try:
            self.guess = int(input("Enter an integer from 1 to 99: "))
            self.getNumberOfTrys+=1
            return self.guess
        except Exception as error: 
            print(error)
            return None


这个类负责创建具有尝试次数、猜测和姓名的玩家

逻辑将遍历玩家列表(您可以添加任意数量的玩家),并按如下方式执行游戏逻辑:

import random
p1 = Player("Player 1")
p2 = Player("Player 2")
players = []
players.append(p1)
players.append(p2)
n1 = random.randint(1, 99)
NUMBER_OF_TRIES = 5
print(n1)
while players:
    for player in players:
        print(player.getPlayerName() + " turn, you have " + str(NUMBER_OF_TRIES - player.getNumberOfTries) + " turns left")
        guess = player.play()
        if guess < n1:
            print("guess is low")
        elif guess > n1:
            print ("guess is high")
        else:
            print(player.getPlayerName()," you guessed it")
            players.clear()
            break
        if player.getNumberOfTries == NUMBER_OF_TRIES:
            print(player.getPlayerName(), " out of chances")
            players.remove(player)
随机导入
p1=玩家(“玩家1”)
p2=玩家(“玩家2”)
玩家=[]
玩家。附加(p1)
玩家。附加(p2)
n1=随机。随机数(1,99)
尝试次数=5
打印(n1)
而玩家:
对于玩家中的玩家:
打印(player.getPlayerName()+“转身,你有”+str(尝试次数-player.getnumbernoftries)+“左转”)
猜=player.play()
如果猜测n1:
打印(“猜测很高”)
其他:
打印(player.getPlayerName(),“你猜对了”)
玩家。清除()
打破
如果player.getNumberOfTries==尝试次数:
打印(player.getPlayerName(),“机会不足”)
玩家。移除(玩家)
基本上,创建一个玩家列表,然后检查每个玩家并应用游戏逻辑(获取输入、比较和检查尝试次数) 当一个玩家输了之后,我们应该把他从名单中删除,如果一个玩家赢了,我们可以清除名单,从而退出游戏

以下是完整的代码:

class Player:
    def __init__(self,name):
        self.name = name
        self.getNumberOfTries = 0
        self.guess = 0

    def getNumberOfTries(self):
        return self.getNumberOfTries

    def getPlayerName(self):
        return self.name

    def play(self):
        try:
            self.guess = int(input("Enter an integer from 1 to 99: "))
            self.getNumberOfTries+=1
            return self.guess
        except Exception as error: 
            print(error)
            return None


import random
p1 = Player("Player 1")
p2 = Player("Player 2")
players = []
players.append(p1) #addding player
players.append(p2)
n1 = random.randint(1, 99)
NUMBER_OF_TRIES = 5
print(n1) #for debug
while players:
    for player in players:
        print(player.getPlayerName() + " turn, you have " + str(NUMBER_OF_TRIES - player.getNumberOfTries) + " turns left")
        guess = player.play()
        if guess < n1:
            print("guess is low")
        elif guess > n1:
            print ("guess is high")
        else:
            print(player.getPlayerName()," you guessed it")
            players.clear() # exit game 
            break #exit loop 
        if player.getNumberOfTries == NUMBER_OF_TRIES:
            print(player.getPlayerName(), " out of chances")
            players.remove(player)
职业玩家:
定义初始化(self,name):
self.name=名称
self.getNumberOfTries=0
self.guess=0
def getNumberOfT