首页 > 解决方案 > 移除元素后如何保持元素位置不变

问题描述

我创建了一个基本的记忆游戏,它创建了一个卡片矩阵,并且在接收到用户输入时会“翻转”并显示卡片。当两张牌匹配时,它将从矩阵中删除这对。然而,在玩游戏时,我在卡片放置方面遇到了两个问题 - 移除卡片时,移除卡片后的卡片占据移除的卡片位置,并且打乱卡片的顺序,移除卡片的“记忆”方面游戏。它看起来像这样:

   
           
             
             
             

卡片会自动恢复向左的位置,奇怪的是有时会在整个卡片布局的顶部弹出一两张卡片,这是第二个问题。

def remove_pairs():
    matrix[row][col].pop()

    for i in range(len(matrix)):
        for j in range(len(matrix[0])):
            try:
                print((matrix[i][j][1]), end = ' ')
            except IndexError:
                print("  ")
        print('')


if __name__ == "__main__":
    create_deck()

    p1_score = 0
    p2_score = 0

    card1 = None
    card2 = None

    while True:
        card1 = get_card()
        print(card1)
        card2 = get_card()
        print(card2)
        if card1[0] == card2[0]:
            remove_pairs()
        else:
            continue

我进行了一些修改,但不知道如何将卡片移到原始位置,以及解决卡片出现在布局顶部的问题。我将如何解决这个问题?

标签: python

解决方案


一种可能性是用“空”占位符替换卡,而不是将其移除。然后很容易保持矩阵的结构,但是您必须添加一些检查以查看用户是否选择了“空”点。您可能希望在“空白”位置显示一个新图标或其他内容。


推荐阅读