def move2(dir, n): global loc2 track2[loc2].remove(char) loc2 = loc2 + dir*n loc2 = envelope(loc2, 0, lastind(track2)) track2[loc2].append(char)
def move2(dir, n): global loc2 track2[loc2].remove(char) loc2 = loc2 + dir * n loc2 = envelope(loc2, 0, lastind(track2)) track2[loc2].append(char)
def move(dir, n): """Move `n` times in `dir` direction.""" global loc track[loc] = blank loc = envelope(loc + dir*n, 0, lastind(track)) track[loc] = char
def move(dir, n): """Move `n` times in `dir` direction.""" global loc track[loc] = blank loc = envelope(loc + dir * n, 0, lastind(track)) track[loc] = char
def move(self, loc): """Move to location `loc`, if moved past the end, set `done` property.""" track[self.loc] = blank if loc > lastind(track): self.done = True else: if track[loc] is not blank: track[loc].loc = -1 # bump enemy piece back to start track[loc] = self self.loc = loc
def valid(self, piece, loc): """Valid move: any move that does not land on your other piece (beyond track is ok).""" if loc > lastind(track): return True return bool(track[loc] == blank or track[loc].char != piece.char)