我正在为我的compsci课程的最终项目创建一个Memory Matching游戏。
到目前为止,一旦你点击开始游戏,我就会在GUI窗口中显示这些卡片。 一旦开始游戏被击中,所有具有面值的牌立即显示在牌的背面。 (所以你永远不会真正看到卡片前端)
我这样做的理由是,当你点击一张卡片时,我会简单地取消后面的卡片图像,而不是“翻转”任何东西。
然而,我一直收到错误,当我没有收到错误时,它只会导致我的程序说“无响应”并让我必须重新启动Shell。
以下是我认为与我的问题相关的一些小部分代码:
for firstcard in range(6):
firstrow = self.deck.dealCard()
randomsuite = firstrow.getSuite()
randomrank = firstrow.getRank()
#Real image with face value of card
realCard = Image(Point(xpos,ypos),"playingcards/"+ (randomsuite) + str(randomrank) +".gif")
realCard.draw(win)
#Red Back of card to cover image
firstcard = Image(Point(xpos,ypos),"playingcards/b1fv.gif")
firstcard.draw(win)
#pushes the card to the right a bit
xpos += 100
while not Quitbutton.isClicked(p):
#Start Game
if StartGameButton.isClicked(p) and player == True:
if first == True:
Game.gameboard(win,150,125)
firstcard = Image(Point(xpos,ypos),"playingcards/b1fv.gif")
first = False
if StartGameButton.isClicked(p):
p = win.getMouse()
if firstcard.isClicked(p):
firstcard.undraw()
p = win.getMouse()
截至目前,您可以看到我的代码if firstcard.isClicked(p):
。但是,这实际上并不起作用,因为我的isClicked函数是Button类的一部分,因此,只有在处理按钮而不是图像时才有效。所以我不完全确定如何选择一张卡片,以及如何显示该卡片已被点击,因此应该是未拉出的