| 188 | if endPiece[0] != allyColor: |
| 189 | moves.append(Move((r,c), (endRow, endCol), self.board)) |
| 190 | class 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 |
no outgoing calls
no test coverage detected