Как я могу добавить графический интерфейс с 4 изображениями в целом с помощью PIL в каждом раунде

#python #tkinter #python-imaging-library

#python #tkinter #python-imaging-library

Вопрос:

Я хочу добавить изображения 6 сторон кубика с помощью модуля tkinter и PIL, но я не могу. Как я могу это сделать? всего 4 изображения с кнопкой, чтобы бросить кости с 4 изображениями. Это то, что я хочу. Спасибо за помощь. Мне это нужно в каждом раунде для соответствия. Это игра в кости для 4 игроков.

     import random
    
    def main():
        player1 = 0
        player1wins = 0
        player2 = 0
        player2wins = 0
        player3 = 0
        player3wins = 0
        player4 = 0
        player4wins = 0
        rounds = 1
    
        while rounds != 11:
            print("Round "   str(rounds))
            player1 = dice_roll()
            player2 = dice_roll()
            player3 = dice_roll()
            player4 = dice_roll()
            print("Player 1 Roll: "   str(player1))
            print("Player 2 Roll: "   str(player2))
            print("Player 3 Roll: "   str(player3))
            print("Player 4 Roll: "   str(player4))
    
            if((player1>player2 and player1>player3 and player1>player4) and (player1 != player2 and player1 != player3 and player1 != player4)):
                player1wins = player1wins   1
                print("Player 1 wins!n")
            elif((player2>player1 and player2>player3 and player2>player4) and (player2 != player1 and player2 != player3 and player2 != player3)):
                player2wins = player2wins   1
                print("Player 2 wins!n")
            elif((player3>player1 and player3>player2 and player3>player4) and (player3 != player1 and player3 != player2 and player3 != player4)):
                player3wins = player3wins   1
                print("Player 3 wins!n")
            elif((player4>player1 and player4>player2 and player4>player3) and (player4 != player1 and player4 != player2 and player4 != player3)):
                player4wins = player4wins   1
                print("Player 4 wins!n")
            else:
                print("Round Draw! n")
    
            rounds = rounds   1
    
        if((player1wins>player2wins and player1wins>player3wins and player1wins>player4wins) and (player1wins != player2wins and player1wins != player3wins and player1wins != player4wins)):
                print("Player 1 Wins The Match nnRounds Won: "   str(player1wins))
        elif((player2wins>player1wins and player2wins>player3wins and player2wins>player4wins) and (player2wins != player1wins and player2wins != player3wins and player2wins != player3wins)):
                print("Player 2 Wins nnRounds Won: "   str(player2wins))
        elif((player3wins>player1wins and player3wins>player2wins and player3wins>player4wins) and (player3wins != player1wins and player3wins != player2wins and player3wins != player4wins)):
                print("Player 3 Wins nnRounds Won: "   str(player3wins))
        elif((player4wins>player1wins and player4wins>player2wins and player4wins>player3wins) and (player4wins != player1wins and player4wins != player2wins and player4wins != player3wins)):
                print("Player 4 Wins nnRounds Won: "   str(player4wins))
        else:
                print("Match Draw!")
    
        def dice_roll():
        diceRoll = random.randint(1, 6)
        return diceRoll
    
        main()
 

Комментарии:

1. Сначала исправьте отступ в вашем коде. Кроме того, здесь нет графического кода, вы должны опубликовать то, что вы пробовали при показе изображений.

2. что вы пробовали ? Что это значит "I am not able to" ? Это самая бесполезная информация. Вы получили сообщение об ошибке? Затем вы должны показать это в вопросе (не в комментарии) в виде текста (не изображения). У вас были какие — то проблемы с его отображением? Затем вы должны описать это с подробностями и кодом, который создает эту проблему. Но я не вижу никаких Label PhotoImage ошибок в вашем коде. Кстати: вы должны знать, что существует ошибка , при PhotoImage которой изображение удаляется из памяти, когда вы присваиваете его локальной переменной — вы можете увидеть пустое изображение. Вы должны присвоить PhotoImage переменной glocal или другому объекту.

3. см. Примечание в конце страницы Фотоизображение . В нем описана ошибка PhotoImage и способы ее исправления.

4. Кстати: если player1 > player2 затем автоматически, то это тоже player1 != player2 так, и вам не нужно проверять player1 != player2

5. вместо player1 , player2 , player3 , player4 вы могли бы использовать list players = [0, 0, 0, 0] , а затем вы могли бы использовать for -loop для запуска одного и того же кода для каждого игрока — т. е.. for number, p in enumerata(players, 1): print("Player", number, "Roll:", p) — и тогда код будет короче и проще. И то же самое с player1wins , player2wins , и т.д.