Как создать разные переменные на основе пользовательского ввода - PullRequest
1 голос
/ 21 апреля 2019

Для монополистической игры, которую я делаю, у меня есть раздел, в котором запрашивается имя разных игроков.

Количество раз, которое запрашивается, будет основано на предыдущем входе, который спрашивает пользователя, сколько игроков там.

И из этого будут установлены разные переменные для количества игроков.

То есть, если число игроков, указанных во входных данных, равно 4, то для игрока 1 будут введены переменные с их введенным именем и т. Д. Для player4.

Как бы я создал число переменных на основе количества введенных игроков, а также спросил бы имена каждого игрока?

Переменные будут выглядеть примерно так:

player1 = John
player2 = Doe
player3 = Sam

Ответы [ 3 ]

1 голос
/ 21 апреля 2019

Вы, вероятно, хотите одну переменную. Это может быть list или dict. В любом случае вы, вероятно, захотите, чтобы dict внутри любого из них представляло информацию о каждом игроке. Таким образом, list, который вы создадите, будет выглядеть так:

players = [
    {
        "name": "Joe",
        "money": 1234,
        "properties": [
            "Boardwalk",
        ]
        "railroads": [
            "Reading",
        ],
        ...
    },
    {
        "name": "Sam",
        "money": 4444,
        "get_out_of_jail_card": true,
        ...
    }
}

Вы можете составить этот список, когда будете получать информацию о каждом игроке. Начните с пустого списка, а затем добавьте игроков:

startingMoneyValue = 20000

...

player_count = int(input("Enter number of players: "))

players = []

for i in range(player_count):
    playerName = input("What is the next player's name?")
    players.append({
        "name": playerName,
        "money": startingMoneyValue,
        "properties": [],
        "railroads": [],
        ...
    })

Ключевым моментом здесь является то, что как только вы создали запись каждого игрока, вы можете легко получить и изменить эти данные. Например, чтобы получить сумму денег, которую имеет второй игрок, вы должны сделать следующее:

money = players[1]['money']

и когда игрок # 3 проходит, идут:

players[2]['money'] += 200

Вы можете инициализировать все конкретные значения, которые вы ассоциируете с каждым игроком заранее, или вы можете добавить некоторые значения позже, когда что-то случится.

0 голосов
/ 21 апреля 2019

Вы можете использовать словарь:

playerdict, players = {}, int(input('How many players are there?'))

for x in range(players):
    playerdict[f'player{x+1}'] = input(f'What is player {x+1}\'s name?')
0 голосов
/ 21 апреля 2019

Вы хотите просмотреть диапазон в зависимости от количества игроков.Я не думаю, что вы можете генерировать переменные в сценарии, как вы спрашиваете.Но список работает так же хорошо.

number_of_players = input("Enter number of players: ")
players = []
for player in range(number_of_players):
    players.append(input(f'Enter player {player+1} name: '))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...