#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, игра завершена.