public class TwoTwoIslandMove extends java.lang.Object implements MoveIterator, Move
TwoTwoIslandMove#executeMoveOnGraph(PebbleGraphController)
is called. This
class uses the double path finding of
controllers.D2AlgorithmController#getDoublePebblePaths(Island, PebbledVertex, PebbledVertex)
to perform the
double pebble moves.Constructor and Description |
---|
TwoTwoIslandMove(Island i)
Instantiates a new multi move.
|
Modifier and Type | Method and Description |
---|---|
int |
executeMoveOnGraph(PebbleInstance c)
Attempt execute the current move using the given GraphController.
|
IslandMove |
getM1()
Gets the m1.
|
IslandMove |
getM2()
Gets the m2.
|
java.util.Set<Vertex> |
getTargetedVerts() |
boolean |
hasNext() |
TwoTwoIslandMove |
next() |
void |
remove() |
public TwoTwoIslandMove(Island i)
i
- the idests
- the target destinationspublic IslandMove getM1()
public IslandMove getM2()
public boolean hasNext()
hasNext
in interface java.util.Iterator<Move>
public TwoTwoIslandMove next()
next
in interface java.util.Iterator<Move>
public void remove()
remove
in interface java.util.Iterator<Move>
public java.util.Set<Vertex> getTargetedVerts()
getTargetedVerts
in interface Move
public int executeMoveOnGraph(PebbleInstance c) throws CouldNotCompleteMove
Move
executeMoveOnGraph
in interface Move
c
- the cCouldNotCompleteMove
- the move could not be made