55 lines
1 KiB
Python
55 lines
1 KiB
Python
from enum import Enum
|
|
|
|
|
|
class Piece:
|
|
def get_valid_jumps() -> list:
|
|
raise NotImplementedError
|
|
|
|
|
|
class Bee(Piece):
|
|
pass
|
|
|
|
|
|
class Beetle(Piece):
|
|
pass
|
|
|
|
|
|
class Spider(Piece):
|
|
pass
|
|
|
|
|
|
class Grasshopper(Piece):
|
|
pass
|
|
|
|
|
|
class Ant(Piece):
|
|
pass
|
|
|
|
|
|
class PieceTranslator(Enum):
|
|
q = Bee
|
|
b = Beetle
|
|
s = Spider
|
|
g = Grasshopper
|
|
a = Ant
|
|
|
|
|
|
|
|
class Bee(Piece):
|
|
def __init__(self, p, q, team):
|
|
self.p = p
|
|
self.q = q
|
|
self.team = team # 'team' is a boolean where True represents one team and False represents the other.
|
|
|
|
def get_valid_jumps(self, board):
|
|
# The bee can move to an adjacent empty space.
|
|
valid_moves = []
|
|
for neighbor in get_neighbors(self.p, self.q):
|
|
# Check if the neighbor is within the bounds of the board and is empty
|
|
if neighbor in board and board[neighbor] == '':
|
|
valid_moves.append(neighbor)
|
|
return valid_moves
|
|
|
|
|
|
def get_neighbors(p, q):
|
|
get_neighbors.<locals>.<listcomp>
|