移动角色并将移动应用到棋盘上

0 投票
1 回答
1525 浏览
提问于 2025-04-16 18:09

大家好,我之前在StackOverflow上问过关于如何在Python中创建一个二维棋盘的问题,现在我又遇到了一个新问题,跟这个棋盘游戏有关。

我想做的是在我的棋盘上移动棋子(可以是数字或者字母),并把这个移动的结果保存下来,以便下次轮到同一个玩家时可以继续使用。

基本上,

1 . . . .
2 . . . .
3 . . . .
4 . . . .
. a b c d
Letters' turn: an
1 . . . .
2 . . . .
3 . . . .
4 a . . .
. . b c d
Numbers' turn: 1e
. 1 . . .
2 . . . .
3 . . . .
4 a . . .
. . b c d
Letters' turn: an
. 1 . . .
2 . . . .
3 a . . .
4 . . . .
. . b c d

你们明白我的意思了吧……

我已经有了棋盘,但我不知道怎么移动棋子并让它们保持在原来的位置,以便下次可以继续移动。

我有一些函数:

def doMove(currentPlayer, board):
def isValidMove(board, move):
and def applyMove(board, move):

如果你们能给点建议,那就太好了!

1 个回答

1

我觉得你可能忽略了Python中类的一个重要特性:内部状态。这里有个简单的例子:

class Counter():
  def __init__(self):
    self.internalCount = 0;
    return
  def addToInternalCount(self, val):
    self.internalCount = self.internalCount + val
    return self.internalCount

注意,如果我创建一个新的计数器(Counter),我可以多次调用addToInternalCount这个方法,而内部的计数数据会在多次调用之间保持不变。还有,关于状态来说,类并没有什么特别的。任何在函数外部的变量都可以被更新,并且它的值在多次调用中也会保持不变。

那么,internalCount有什么特别之处吗?其实没有。它也可以表示x轴上的位置。请你试试看。

撰写回答