Игра 6 игроков - PullRequest
       29

Игра 6 игроков

0 голосов
/ 09 июня 2019

Я хочу, чтобы пользователь выбрал двух игроков из меню из 6 игроков, эти игроки будут играть в теннис.

Я пытался создать меню с подменю, но оно становится сложным и грязным.

def player1():
    print("You chose player 1, please choose another player")
def player2():
    print("You chose player 2, please choose another player")
def player3():
    print("You chose player 3, please choose another player")
def player4():
    print("You chose player 4, please choose another player")
def player5():
    print("You chose player 5, please choose another player")
def player6():
    print("You chose player 6, please choose another player")


Player_select = {
    1: player1,
    2: player2,
    3: player3,
    4: player4,
    5: player5,
    6: player6
}

Selection = 0


while (Selection != 7):
     print("1. player1")
     print("2. player2")
     print("3. player3")
     print("4. player4")
     print("5. player5")
     print("6. player6")
     print("7. Quit")
     Selection = int(input("Please choose two players: "))
     if (Selection >= 0) and (Selection < 7):
         Player_select[Selection]()
     Selection = Selection - 1

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

Ответы [ 2 ]

0 голосов
/ 09 июня 2019

Вот хороший короткий ответ с циклом while:

players = ["player1", "player2", 'player3', 'player4', 'player5', 'player6']


def print_player(x):
    print("You chose player:", str(x), "-", players[x-1])


for id, player in enumerate(players, 1):
    print(str(id) + '. ' + player)


chosen_players = []
while len(chosen_players) != 2:
    selection = int(input("Please choose a player: "))
    if selection in range(1, len(players)):
        chosen_players.append(selection)
        print_player(selection)
    else:
        print('Invalid number, choose again')

print('Nice you selected two players:')
print([players[x-1] for x in chosen_players])
0 голосов
/ 09 июня 2019
def player1():
    print("You chose player 1, please choose another player")
def player2():
    print("You chose player 2, please choose another player")
def player3():
    print("You chose player 3, please choose another player")
def player4():
    print("You chose player 4, please choose another player")
def player5():
    print("You chose player 5, please choose another player")
def player6():
    print("You chose player 6, please choose another player")


Player_select = {
    1: player1,
    2: player2,
    3: player3,
    4: player4,
    5: player5,
    6: player6
}

Selection = 0

count = 0
while (count < 2):
    count += 1
    for k in Player_select:
        print(str(k) +". player"+str(k))
    Selection = int(input("Please choose two players: "))
    if (Selection >= 0) and (Selection < 7):
        Player_select[Selection]()
        del Player_select[Selection]

Это удаляет плеер из словаря, когда он был выбран.Можете ли вы сказать мне, почему вы уменьшили выделение на 1 в конце цикла while?Если я набираю 7 для выхода, цикл выполняет 7 - 1 и поэтому не завершается.

...