我正在尝试制作一款小型记忆游戏。但是,我必须检测一下玩家单击的两张卡是否相同,以便可以将其删除。
我正在尝试使其变色,以使卡片图像成为变量,然后查看两个图像是否相同,如果是,则将它们移除。但是,这似乎不起作用。
所以我想知道,你们会推荐我做什么?
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
答案 0 :(得分:0)
一种简单的解决方案是为不同的图像创建一个变量并单击一个变量:
clicked_=False
image1_click=False
image2_click=False
...
当按下“内存块”时,相应的变量将设置为true。如果也单击了第二个,则执行命令将两者都删除。例如,这将应用于具有image1的两个图块:
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时,游戏结束。