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

Method _traverse_r

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

Source from the content-addressed store, hash-verified

143
144 # Traversal Right
145 def _traverse_r(self, start, stop, step, color, right, skip=[]):
146 moves = {}
147 last = []
148 for r in range(start, stop, step):
149 if right >= cols:
150 break
151 current = self.board[r][right]
152 if current == 0:
153 if skip and not last:
154 break
155 elif skip:
156 moves[(r, right)] = last + skip
157 else:
158 moves[(r, right)] = last
159
160 if last:
161 if step == -1:
162 row = max(r - 3, 0)
163 else:
164 row = min(r + 3, rows)
165 moves.update(
166 self._traverse_l(
167 r + step, row, step, color, right - 1, skip=last
168 )
169 )
170 moves.update(
171 self._traverse_r(
172 r + step, row, step, color, right + 1, skip=last
173 )
174 )
175 break
176
177 elif current.color == color:
178 break
179 else:
180 last = [current]
181 right += 1
182 return moves

Callers 2

get_valid_movesMethod · 0.95
_traverse_lMethod · 0.95

Calls 2

_traverse_lMethod · 0.95
updateMethod · 0.45

Tested by

no test coverage detected