我对python很新,并且遇到了我正在处理的代码问题。正如你在下面我的代码中看到的那样,它基本上是相同的,唯一区分两者的是player/opponentTile
,我想将这两者合并在一起,但我不想确切知道如何。任何建议表示赞赏! (我不仅可以if self.legalMove(playerTile, opponentTile, x, y) == False:
)。
我也不想在self, playerTile, opponentTile
中同时考虑def ....Move
,我只想使用例如playerMove(playerTile)
调用代码中的定义(如果我这样做的话)弹出一个ValueError)
def playerMove(self,playerTile):
if self.legalMove(playerTile, x, y) == False:
continue
else:
break
def opponentMove(self,opponentTile):
if self.legalMove(opponentTile, x, y) == False:
continue
else:
break
答案 0 :(得分:3)
这些方法看起来完全一样。你只需要一个。
将其重命名为:
def move(self, tile)
你可以在两种情况下使用它。
答案 1 :(得分:2)
如果它是相同的,你只需要传递你想要移动的实体
def entity_move(self,entity_tile):
possibilities = '0 1 2 3 4 5 6 7 8 9'.split()
while True:
move = input().lower()
if len(move) == 2 and move[0] in possibilities and move[1] in possibilities:
x = int(move[0])
y = int(move[1])
if self.legalMove(entity_tile, x, y) == False:
continue
else:
break
else:
print('Not a valid input!')