MCPcopy Create free account
hub / github.com/Mrinank-Bhowmick/python-beginner-projects / ValidMoveGenerator

Class ValidMoveGenerator

projects/Chess/main.py:30–283  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28
29# define ValidMoveGenerator class
30class ValidMoveGenerator(object):
31 def __init__(self):
32 self.vMoves = []
33 self.vMoves2 = []
34 self.white = None
35
36 def generateValidMoves(self, x, y, grid):
37 global validMoves
38 self.vMoves = []
39 self.vMoves2 = []
40 self.white = grid[x][y].isupper()
41
42 piece = grid[x][y].upper()
43 if piece == "K":
44 validMoves = self.King(x, y, grid)
45 elif piece == "Q":
46 validMoves = self.Queen(x, y, grid)
47 elif piece == "R":
48 validMoves = self.Rook(x, y, grid)
49 elif piece == "B":
50 validMoves = self.Bishop(x, y, grid)
51 elif piece == "N":
52 validMoves = self.Knight(x, y, grid)
53 elif piece == "P":
54 validMoves = self.Pawn(x, y, grid)
55 return validMoves
56
57 def King(self, x, y, grid):
58 for i in range(-1, 2):
59 for j in range(-1, 2):
60 if i == 0 and j == 0:
61 continue
62 self.vMoves.append([x + i, y + j])
63
64 for i in range(len(self.vMoves)):
65 if (
66 self.vMoves[i][1] >= 0
67 and self.vMoves[i][0] >= 0
68 and self.vMoves[i][1] < 8
69 and self.vMoves[i][0] < 8
70 ):
71 base = grid[self.vMoves[i][0]][self.vMoves[i][1]]
72 sameColor = None
73 if base == 0:
74 sameColor = False
75 elif self.white:
76 sameColor = base.isupper()
77 else:
78 sameColor = base.islower()
79
80 if not sameColor:
81 self.vMoves2.append([self.vMoves[i][0], self.vMoves[i][1]])
82
83 return self.vMoves2
84
85 def Queen(self, x, y, grid):
86 r, b = self.Rook(x, y, grid), self.Bishop(x, y, grid)
87 for i in range(len(r)):

Callers 1

main.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected