我正在编写一个Java程序来模拟A *算法,并且需要向我的a()
函数传递两个参数initial state
和goal state
。但是,为了确保我有正确的目标状态,我检查它的启发式值是否为0.如果是,则标记boolean goal == true
否则我将其标记为false。
我想知道,有没有办法通过检查它的布尔值来将变量State goal
初始化为该目标状态?
for(int i = 0; i < states.size(); i++)
states.get(i).isGoal();
states
是算法状态的HashMap,isGoal()
是一种设置每个状态的布尔标志的方法,具体取决于其启发式值。
答案 0 :(得分:0)
让isGoal()
返回布尔值并在检查State goal
标志后设置isGoal
。即。
for(int i = 0; i < states.size(); i++)
if(map.get(i).isGoal()){
map.get(i).setGoal();
}
答案 1 :(得分:0)
我想你想要这样的东西:
for(int i = 0; i < states.size(); i++) {
if(map.get(i).isGoal()){
//instantiate wherever you want if goal is true
map.get(i).setGoal();
} else {
//instantiate wherever you want if goal is false
}
}