Skip to content
Advertisement

Asking player numbers then assigning player names to them

I wanted to ask how many players there are first , then depending on how many players they are playing the game, I wanted to loop through and ask their names as input and then assigning it to their player numbers. First: it will ask player numbers Second: it will ask their names Third: then it will create their names as variables

Here is what I tried but it is returning :

player_nums =int(input("how many players are there? "))
playernum = True
while playernum:
    if player_nums >7 or player_nums == 0 :
        print( "there cant be more than 7 players")
        print("please entre the player numbers again")
        player_nums =int(input("how many players are there? "))
    elif player_nums == 6 :
        player_one = input("please write ur name playerone")
        player_two = input("please write ur name playerone")
        player_three = input("please write ur name playerone")
        player_four = input("please write ur name playerone")
        player_five = input("please write ur name playerone")
        player_six = input("please write ur name playerone")
        playernum = False
    elif playernum ==5:
        player_one = input("please write ur name playerone")
        player_two = input("please write ur name playerone")
        player_three = input("please write ur name playerone")
        player_four = input("please write ur name playerone")
        player_five = input("please write ur name playerone")
        playernum = False
    elif playernum ==4:
        player_one = input("please write ur name playerone")
        player_two = input("please write ur name playerone")
        player_three = input("please write ur name playerone")
        player_four = input("please write ur name playerone")
        playernum = False
    elif playernum == 3: 
        player_one = input("please write ur name playerone")
        player_two = input("please write ur name playerone")
        player_three = input("please write ur name playerone")
        playernum = False
    elif playernum ==2:
        player_one = input("please write ur name playerone")
        player_two = input("please write ur name playerone")
    elif playernum == 1:
        player_one = input("please write ur name playerone")
        playernum = False
    else:
        continue
print(player_one)

Here is an another method i tried but it wont work, I dont know how it is not working:

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

    def new_name(self):
        self.new_names = input('what is your name')

    def __str__(self):
        return self.name_names

user = Player("")
player_nums =int(input("how many players are there? "))
playernum = True
while playernum:
    if player_nums >7 or player_nums == 0 :
        print( "there cant be more than 7 players")
        print("please entre the player numbers again")
        player_nums =int(input("how many players are there? "))
    else:
        for i in range(1,player_nums):
            user = Player.new_name(user)
print(user.new_name)

I wanted to loop through the player number to assign individual names to their player numbers, for example if there is 5 players, Player 1 : input (his name) player 2 : input (his name) etc

Advertisement

Answer

Your question as written is very confusing but from what I gather you want to:

  1. Ask how many players are participating (0 < n <=7).
  2. For each identified player associate a name with the player number.

In order to perform this task in an orderly, neat and efficient manner, you should utilize the inherent data structures available to you within python.

def start_game():
    while plyr_count := int(input('How Many Players are there? ')):
            if plyr_count <= 7:
                break
            print('Number of players must be less than or equal to 7, try again')
    players = []
    for i in range(plyr_count):
        players.append(input(f"Enter Player {i+1}'s name "))
    return players  

Then when executing start_game, you will get: How Many Players are there? 12 Number of players must be less than or equal to 7, try again

How Many Players are there? 4
Enter Player 1's name Bob
Enter Player 2's name Tom
Enter Player 3's name Judy
Enter Player 4's name Nancy
['Bob', 'Tom', 'Judy', 'Nancy']  

f you would like to create a player class and use this in the above code this is how I would approach it.

# The player Class definition
class Player:
    def __init__(self, name):
        self.name = name
    def __repr__(self):  # Allows for printing Class
        return self.name  

# Update Code to utilize player class in start_game
def start_game():
    while plyr_count := int(input('How Many Players are there? ')):
            if plyr_count <= 7:
                break
            print('Number of players must be less than or equal to 7, try again')
    players = []
    for i in range(plyr_count):
        players.append(Player(input(f"Enter Player {i+1}'s name ")))
    return players
User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement