MCPcopy Create free account
hub / github.com/ndleah/python-mini-project / Move

Class Move

Chess_Game/ChessEngine.py:190–221  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

188 if endPiece[0] != allyColor:
189 moves.append(Move((r,c), (endRow, endCol), self.board))
190class Move():
191
192 ranksToRow = {"1": 7, "2": 6, "3": 5, "4": 4,
193 "5": 3, "6": 2, "7": 1, "8": 0}
194 rowsToRanks = {v: k for k, v in ranksToRow.items()}
195 filesToCols = {"a": 0, "b": 1, "c": 2, "d": 3,
196 "e": 4, "f": 5, "g": 6, "h": 7}
197 colsToFiles = {v: k for k, v in filesToCols.items()}
198
199 def __init__(self, startSq, endSq, board):
200 self.startRow = startSq[0]
201 self.startCol = startSq[1]
202 self.endRow = endSq[0]
203 self.endCol = endSq[1]
204 self.pieceMoved = board[self.startRow][self.startCol]
205 self.pieceCaptured = board[self.endRow][self.endCol]
206 self.isPawnPromotion = False
207 if (self.pieceMoved == 'wp' and self.endRow == 0) or (self.pieceMoved == 'bp' and self.endRow == 7):
208 self.isPawnPromotion = True
209 self.moveID = self.startRow * 1000 + self.startCol * 100 + self.endRow * 10 + self.endCol
210
211 def __eq__(self, other):
212 if isinstance(other, Move):
213 return self.moveID == other.moveID
214 return False
215
216
217 def getChessNotation(self):
218 return self.getRankFile(self.startRow, self.startCol) + self.getRankFile(self.endRow, self.endCol)
219
220 def getRankFile(self, r, c):
221 return self.colsToFiles[c] + self.rowsToRanks[r]
222

Callers 5

getPawnMovesMethod · 0.85
getRookMovesMethod · 0.85
getKnightMovesMethod · 0.85
getBishopMovesMethod · 0.85
getKingMovesMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected