移动角色并将移动应用到棋盘上
大家好,我之前在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轴上的位置。请你试试看。