public List <Position> applyMove(Board board, IPiece piece) { Position p = piece.Position; Position possible; List <Position> moves = new List <Position>(); int scalar; for (scalar = 1; scalar < Chess.Board.BOARD_DIMENSION; scalar++) { possible = new Position(p.Column + scalar * x, p.Row + scalar * y); Position.Placement placement = board.validPosition(piece, possible); switch (placement) { case Position.Placement.VALID: case Position.Placement.CAPTURE: moves.Add(possible); break; case Position.Placement.BLOCKED: case Position.Placement.ILLEGAL: default: break; } if (placementWillTerminateVector(placement)) { break; } } return(moves); }
Boolean placementWillTerminateVector(Position.Placement placement) { switch (placement) { case Position.Placement.VALID: return(false); case Position.Placement.CAPTURE: case Position.Placement.BLOCKED: case Position.Placement.ILLEGAL: default: return(true); } }
public List <Position> applyMove(Board board, IPiece piece) { Position p = piece.Position; Position possible = new Position(p.Column + x, p.Row + y); List <Position> moves = new List <Position>(); Position.Placement placement = board.validPosition(piece, possible); switch (placement) { case Position.Placement.VALID: case Position.Placement.CAPTURE: moves.Add(possible); break; case Position.Placement.BLOCKED: case Position.Placement.ILLEGAL: default: break; } return(moves); }