Merge pull request #6105 from devLotto/puzzlesolver-blank_value
puzzlesolver: break out blank tile value into a constant
This commit is contained in:
@@ -43,6 +43,8 @@ import net.runelite.api.InventoryID;
|
|||||||
import net.runelite.api.Item;
|
import net.runelite.api.Item;
|
||||||
import net.runelite.api.ItemContainer;
|
import net.runelite.api.ItemContainer;
|
||||||
import static net.runelite.api.SpriteID.MINIMAP_DESTINATION_FLAG;
|
import static net.runelite.api.SpriteID.MINIMAP_DESTINATION_FLAG;
|
||||||
|
import static net.runelite.client.plugins.puzzlesolver.solver.PuzzleSolver.BLANK_TILE_VALUE;
|
||||||
|
import static net.runelite.client.plugins.puzzlesolver.solver.PuzzleSolver.DIMENSION;
|
||||||
import net.runelite.api.widgets.Widget;
|
import net.runelite.api.widgets.Widget;
|
||||||
import net.runelite.api.widgets.WidgetInfo;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
import net.runelite.client.game.SpriteManager;
|
import net.runelite.client.game.SpriteManager;
|
||||||
@@ -69,9 +71,6 @@ public class PuzzleSolverOverlay extends Overlay
|
|||||||
private static final int PUZZLE_TILE_SIZE = 39;
|
private static final int PUZZLE_TILE_SIZE = 39;
|
||||||
private static final int DOT_MARKER_SIZE = 16;
|
private static final int DOT_MARKER_SIZE = 16;
|
||||||
|
|
||||||
private static final int BLANK_TILE_VALUE = -1;
|
|
||||||
private static final int DIMENSION = 5;
|
|
||||||
|
|
||||||
private final Client client;
|
private final Client client;
|
||||||
private final PuzzleSolverConfig config;
|
private final PuzzleSolverConfig config;
|
||||||
private final ScheduledExecutorService executorService;
|
private final ScheduledExecutorService executorService;
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import net.runelite.client.plugins.puzzlesolver.solver.pathfinding.Pathfinder;
|
|||||||
public class PuzzleSolver implements Runnable
|
public class PuzzleSolver implements Runnable
|
||||||
{
|
{
|
||||||
public static final int DIMENSION = 5;
|
public static final int DIMENSION = 5;
|
||||||
|
public static final int BLANK_TILE_VALUE = -1;
|
||||||
|
|
||||||
private Pathfinder pathfinder;
|
private Pathfinder pathfinder;
|
||||||
private PuzzleState startState;
|
private PuzzleState startState;
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import java.util.Arrays;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import net.runelite.client.plugins.puzzlesolver.solver.heuristics.Heuristic;
|
import net.runelite.client.plugins.puzzlesolver.solver.heuristics.Heuristic;
|
||||||
import static net.runelite.client.plugins.puzzlesolver.solver.PuzzleSolver.DIMENSION;
|
import static net.runelite.client.plugins.puzzlesolver.solver.PuzzleSolver.DIMENSION;
|
||||||
|
import static net.runelite.client.plugins.puzzlesolver.solver.PuzzleSolver.BLANK_TILE_VALUE;
|
||||||
|
|
||||||
public class PuzzleState
|
public class PuzzleState
|
||||||
{
|
{
|
||||||
@@ -54,7 +55,7 @@ public class PuzzleState
|
|||||||
|
|
||||||
for (int i = 0; i < pieces.length; i++)
|
for (int i = 0; i < pieces.length; i++)
|
||||||
{
|
{
|
||||||
if (pieces[i] == -1)
|
if (pieces[i] == BLANK_TILE_VALUE)
|
||||||
{
|
{
|
||||||
emptyPiece = i;
|
emptyPiece = i;
|
||||||
}
|
}
|
||||||
@@ -89,7 +90,7 @@ public class PuzzleState
|
|||||||
PuzzleState state = new PuzzleState(this);
|
PuzzleState state = new PuzzleState(this);
|
||||||
state.parent = this;
|
state.parent = this;
|
||||||
|
|
||||||
state.pieces[emptyPiece - 1] = -1;
|
state.pieces[emptyPiece - 1] = BLANK_TILE_VALUE;
|
||||||
state.pieces[emptyPiece] = pieces[emptyPiece - 1];
|
state.pieces[emptyPiece] = pieces[emptyPiece - 1];
|
||||||
state.emptyPiece--;
|
state.emptyPiece--;
|
||||||
|
|
||||||
@@ -105,7 +106,7 @@ public class PuzzleState
|
|||||||
PuzzleState state = new PuzzleState(this);
|
PuzzleState state = new PuzzleState(this);
|
||||||
state.parent = this;
|
state.parent = this;
|
||||||
|
|
||||||
state.pieces[emptyPiece + 1] = -1;
|
state.pieces[emptyPiece + 1] = BLANK_TILE_VALUE;
|
||||||
state.pieces[emptyPiece] = pieces[emptyPiece + 1];
|
state.pieces[emptyPiece] = pieces[emptyPiece + 1];
|
||||||
state.emptyPiece++;
|
state.emptyPiece++;
|
||||||
|
|
||||||
@@ -121,7 +122,7 @@ public class PuzzleState
|
|||||||
PuzzleState state = new PuzzleState(this);
|
PuzzleState state = new PuzzleState(this);
|
||||||
state.parent = this;
|
state.parent = this;
|
||||||
|
|
||||||
state.pieces[emptyPiece - DIMENSION] = -1;
|
state.pieces[emptyPiece - DIMENSION] = BLANK_TILE_VALUE;
|
||||||
state.pieces[emptyPiece] = pieces[emptyPiece - DIMENSION];
|
state.pieces[emptyPiece] = pieces[emptyPiece - DIMENSION];
|
||||||
state.emptyPiece -= DIMENSION;
|
state.emptyPiece -= DIMENSION;
|
||||||
|
|
||||||
@@ -137,7 +138,7 @@ public class PuzzleState
|
|||||||
PuzzleState state = new PuzzleState(this);
|
PuzzleState state = new PuzzleState(this);
|
||||||
state.parent = this;
|
state.parent = this;
|
||||||
|
|
||||||
state.pieces[emptyPiece + DIMENSION] = -1;
|
state.pieces[emptyPiece + DIMENSION] = BLANK_TILE_VALUE;
|
||||||
state.pieces[emptyPiece] = pieces[emptyPiece + DIMENSION];
|
state.pieces[emptyPiece] = pieces[emptyPiece + DIMENSION];
|
||||||
state.emptyPiece += DIMENSION;
|
state.emptyPiece += DIMENSION;
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ package net.runelite.client.plugins.puzzlesolver.solver.heuristics;
|
|||||||
|
|
||||||
import net.runelite.client.plugins.puzzlesolver.solver.PuzzleState;
|
import net.runelite.client.plugins.puzzlesolver.solver.PuzzleState;
|
||||||
import static net.runelite.client.plugins.puzzlesolver.solver.PuzzleSolver.DIMENSION;
|
import static net.runelite.client.plugins.puzzlesolver.solver.PuzzleSolver.DIMENSION;
|
||||||
|
import static net.runelite.client.plugins.puzzlesolver.solver.PuzzleSolver.BLANK_TILE_VALUE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An implementation of the manhattan distance heuristic function.
|
* An implementation of the manhattan distance heuristic function.
|
||||||
@@ -51,7 +52,7 @@ public class ManhattanDistance implements Heuristic
|
|||||||
{
|
{
|
||||||
int piece = state.getPiece(x, y);
|
int piece = state.getPiece(x, y);
|
||||||
|
|
||||||
if (piece == -1)
|
if (piece == BLANK_TILE_VALUE)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user