SuccessorState.java in eightpuzzle.zip
Sponsored links
import java.util.LinkedList;
import java.util.List;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author samiQ
*/
public class SuccessorState {
private int[] tempArray = null;
public FifoNodeStore generateSuccessorStates(Node curNode){
// this method is called by Astar class
FifoNodeStore tempSuccessorNodes = new FifoNodeStore();
int[] arrayPosition = curNode.getPuzzleArray();
int index=0;
for(int i=0; i<9; i++){
if(arrayPosition[i] == 0){
index = i;
break;
}
}
if(index == 0){
tempSuccessorNodes.add(new Node(swapPositions(0,1,arrayPosition),curNode));
tempSuccessorNodes.add(new Node(swapPositions(0,3,arrayPosition),curNode));
}
else if(index == 1){
tempSuccessorNodes.add(new Node(swapPositions(0,1,arrayPosition),curNode));
tempSuccessorNodes.add(new Node(swapPositions(1, 4, arrayPosition),curNode));
tempSuccessorNodes.add(new Node(swapPositions(1, 2, arrayPosition),curNode));
}
else if(index == 2){
tempSuccessorNodes.add(new Node(swapPositions(2, 1, arrayPosition),curNode));
tempSuccessorNodes.add(new Node(swapPositions(2, 5, arrayPosition),curNode));
}
else if(index == 3){
tempSuccessorNodes.add(new Node(swapPositions(3, 0, arrayPosition),curNode));
tempSuccessorNodes.add(new Node(swapPositions(3, 4, arrayPosition),curNode));
tempSuccessorNodes.add(new Node(swapPositions(3, 6, arrayPosition),curNode));
}
else if(index == 4){
tempSuccessorNodes.add(new Node(swapPositions(4,
...
...
... to be continued.
This is a preview. To get the complete source file,
please click here to download the whole source code package.