我认为这是我的问题?基本上,无论我尝试多少种方式,这些代码都不会起作用。国家不会设置为给定的数组。
if(difficulty == "easy") {
state= new int[] {1,3,4,8,6,2,7,0,5};
blankTile = 7;
Node start = new Node(difficulty,state,blankTile);
openList.add(start);
}
else if(difficulty == "medium") {
state= new int[] {2,8,1,0,4,3,7,6,5};
blankTile = 3;
Node start = new Node(difficulty,state,blankTile);
openList.add(start);
}
else if(difficulty == "hard") {
state= new int[] {2,8,1,4,6,3,0,7,5};
blankTile = 6;
Node start = new Node(difficulty,state,blankTile);
openList.add(start);
}
else if(difficulty == "worst"){
state= new int[] {5,6,7,4,0,8,3,2,1};
blankTile = 4;
Node start = new Node(difficulty,state,blankTile);
openList.add(start);
}
我首先在Node的构造函数中有这个,我只是传递难度,它会在构造函数中设置state和blankTile。但那也不起作用。有人会帮助我吗?
答案 0 :(得分:2)
这不是你如何比较Java中的字符串。您正在比较两个对字符串对象的引用是否相同,而不是字符串本身是。
这就是永远不会分配createuser -P -U pgsql testuser
的原因。
您需要使用state
String.equals()
作为旁注,您正在重复这些行
if(difficulty.equals("easy")) {
state= new int[] {1,3,4,8,6,2,7,0,5};
blankTile = 7;
...
}
else if(difficulty.equals("medium")) {
state= new int[] {2,8,1,0,4,3,7,6,5};
blankTile = 3;
...
}
几次。将它们移到Node start = new Node(difficulty,state,blankTile);
openList.add(start);
语句之外可能很有用。