Игра с памятью, проблема с определением того, что оба изображения одинаковы

#python

#python

Вопрос:

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

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

Итак, мне интересно, что бы вы, ребята, порекомендовали мне сделать?

 if mousehovercard0 == 1 and button1 == 1:
    if click == 1:
        cardclick1 = card0.image
    if click == 2:
        cardclick2 = card0.image
if mousehovercard1 == 1 and button1 == 1:
    if click == 1:
        cardclick1 = card1.image
    if click == 2:
        cardclick2 = card1.image
if mousehovercard2 == 1 and button1 == 1:
    if click == 1:
        cardclick1 = card2.image
    if click == 2:
        cardclick2 = card2.image
if mousehovercard3 == 1 and button1 == 1:
    if click == 1:
        cardclick1 = card3.image
    if click == 2:
        cardclick2 = card3.image


if cardclick1 == cardclick2:
    cardclick1.rect.x = -100
    cardclick2.rect.x = -100
  

Ответ №1:

Простое решение — создать переменную для разных изображений и одну выбранную переменную:

 clicked_=False
image1_click=False
image2_click=False
...
  

При нажатии «memory tile» соответствующей переменной присваивается значение true. Если также щелкнуть по второму, то вы выполняете команду для удаления обоих. Например, это применяется к двум плиткам с изображением1:

 if clicked:
    if image1_click:
        #Command to remove both buttons
    else:
        #Incorrect click, reset table
        image1_click=False
    clicked=False
else:
    clicked=True
    image1_click=True
  

В качестве бонуса, когда все image1_click имеют значение true, игра завершена.