У меня возникла проблема при разработке моей первой игры на питоне (камень, бумага, ножницы с карточками) с PyGames, я не могу ввести определенное количество операторов if.

 whoWin(player_one, player_two) -> int:

    print ("player =", player_one.choosed_card, "ia =", player_two.choosed_card)
    if (player_one.choosed_card == player_two.choosed_card):
        print ("Equality among player.")
        return (0)
    elif (int(player_one.choosed_card) == 0 & int(player_two.choosed_card) == 2):
        print ("1")
        return (1)
    elif (int(player_one.choosed_card) == 1 & int(player_two.choosed_card) == 0):
        print ("2")
        return (1)
    elif (int(player_one.choosed_card) == 2 & int(player_two.choosed_card) == 1):
        print ("3")
        return (1)
    elif (int(player_one.choosed_card) == 2 & int(player_two.choosed_card) == 0):
        print ("4")
        return (2)
    elif (int(player_one.choosed_card) == 0 & int(player_two.choosed_card) == 1):
        print ("5")
        return (2)
    elif (int(player_one.choosed_card) == 1 & int(player_two.choosed_card) == 2):
        print ("6")
        return (2)
    print ("no return")

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

-1
Sgt Shepard 10 Фев 2021 в 02:29

1 ответ

Лучший ответ

Похоже, вы не понимаете разницы между побитовым "и "оператор & и логический" и "оператор and.

Вы определенно планировали второе, но использовали первое, попробуйте изменить все ваши условия, чтобы вместо этого использовать логическое «и».

1
moreON 10 Фев 2021 в 05:53