Only loop through directions when a peg is present.
This commit is contained in:
parent
7dc37d4ede
commit
7db1769723
@ -53,19 +53,22 @@ class Solver
|
|||||||
{
|
{
|
||||||
for (int col = 0; col <= row; col++)
|
for (int col = 0; col <= row; col++)
|
||||||
{
|
{
|
||||||
for (Board.Direction direction = Board.Direction.FIRST;
|
if (board.peg_present(row, col))
|
||||||
direction < Board.Direction.COUNT;
|
|
||||||
direction++)
|
|
||||||
{
|
{
|
||||||
Board.Position position = Board.Position(row, col);
|
Board.Position position = Board.Position(row, col);
|
||||||
Board new_board = board.move(position, direction);
|
for (Board.Direction direction = Board.Direction.FIRST;
|
||||||
if (new_board !is null)
|
direction < Board.Direction.COUNT;
|
||||||
|
direction++)
|
||||||
{
|
{
|
||||||
found_valid_move = true;
|
Board new_board = board.move(position, direction);
|
||||||
Move m = new Move(position, position.move(direction, 2));
|
if (new_board !is null)
|
||||||
Move[] new_moves = moves.dup;
|
{
|
||||||
new_moves ~= m;
|
found_valid_move = true;
|
||||||
eval_board(new_board, new_moves);
|
Move m = new Move(position, position.move(direction, 2));
|
||||||
|
Move[] new_moves = moves.dup;
|
||||||
|
new_moves ~= m;
|
||||||
|
eval_board(new_board, new_moves);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user