我正在尝试创建一个国际象棋模拟器。
请考虑以下情况:
在正方形2B中有一个名为Rook
的黑鸦(rook1
类的实例对象)。
在正方形2C中有一个白色的白鸦叫rook2
。
当玩家将rook1
移动到正方形2C时,i应该将rook2
对象从内存中完全删除。
我该怎么做?
P.S。我已经尝试过del rook2
,但是我不知道为什么它不起作用。
答案 0 :(得分:4)
尝试从内存中删除对象是错误的方法。 Python没有提供手动执行此操作的选项,无论如何执行都是错误的操作。
您需要更改表示国际象棋棋盘的任何数据结构,以使其代表游戏状态,其中c2处有一个黑鸦,b2处没有棋子,而不是一个游戏状态,其中b2处有一个黑鸦而a处C2的白鸦。在国际象棋棋盘的合理Python初学者项目实现中,这可能意味着要分配给列表列表中的单元格。不需要手动从内存中删除任何对象。
具有rook1
和rook2
变量来引用您的新手是不必要的,并且可能适得其反。