MCPcopy Create free account
hub / github.com/geekcomputers/Python / _traverse_l

Method _traverse_l

Checker_game_by_dz/modules/checker_board.py:109–142  ·  view source on GitHub ↗
(self, start, stop, step, color, l, skip=[])

Source from the content-addressed store, hash-verified

107
108 # Traversal Left
109 def _traverse_l(self, start, stop, step, color, l, skip=[]):
110 moves = {}
111 last = []
112 for r in range(start, stop, step):
113 if l < 0:
114 break
115 current = self.board[r][l]
116 if current == 0:
117 if skip and not last:
118 break
119 elif skip:
120 moves[(r, l)] = last + skip
121 else:
122 moves[(r, l)] = last
123
124 if last:
125 if step == -1:
126 row = max(r - 3, 0)
127 else:
128 row = min(r + 3, rows)
129 moves.update(
130 self._traverse_l(r + step, row, step, color, l - 1, skip=last)
131 )
132 moves.update(
133 self._traverse_r(r + step, row, step, color, l + 1, skip=last)
134 )
135 break
136
137 elif current.color == color:
138 break
139 else:
140 last = [current]
141 l -= 1
142 return moves
143
144 # Traversal Right
145 def _traverse_r(self, start, stop, step, color, right, skip=[]):

Callers 2

get_valid_movesMethod · 0.95
_traverse_rMethod · 0.95

Calls 2

_traverse_rMethod · 0.95
updateMethod · 0.45

Tested by

no test coverage detected