puzzlesolver: fix solution being reset when clicking the puzzle quickly

This commit is contained in:
Lotto
2018-02-24 00:38:41 +01:00
parent 31af43e9be
commit 3396c7ac45
4 changed files with 49 additions and 78 deletions

View File

@@ -25,15 +25,12 @@
*/
package net.runelite.client.plugins.puzzlesolver;
import java.util.List;
import net.runelite.client.plugins.puzzlesolver.solver.PuzzleSolver;
import net.runelite.client.plugins.puzzlesolver.solver.PuzzleState;
import net.runelite.client.plugins.puzzlesolver.solver.heuristics.ManhattanDistance;
import net.runelite.client.plugins.puzzlesolver.solver.pathfinding.IDAStar;
import org.junit.Test;
import static net.runelite.client.plugins.puzzlesolver.solver.PuzzleSolver.DIMENSION;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class PuzzleSolverTest
@@ -97,27 +94,8 @@ public class PuzzleSolverTest
solver.run();
assertTrue(solver.hasSolution());
for (int i = 0; i < solver.getStepCount(); i++)
{
int futureMove = solver.getStep(i);
List<PuzzleState> moves = state.computeMoves();
for (PuzzleState move : moves)
{
if (move.getEmptyPiece() == futureMove)
{
state = move;
break;
}
}
}
for (int i = 0; i < FINISHED_STATE.length; i++)
{
assertEquals(state.getPiece(i % DIMENSION, i / DIMENSION), FINISHED_STATE[i]);
}
assertFalse(solver.hasFailed());
assertTrue(solver.getStep(solver.getStepCount() - 1).hasPieces(FINISHED_STATE));
}
}
}