所以,我要構建一個小遊戲,在這個小遊戲中我需要一個包含所有可能動作的搜索樹。但是,在實現搜索樹時遇到一些困難。我設法構建了一個可以計算移動的函數,但是我不知道如何構建樹,它應該是遞歸的。每個節點應該有一個包含所有可能移動的列表。在Java中構建一個搜索樹
public class Tree {
private Node root;
private int level;
public Tree(int level, Board board) {
this.level = level;
root = new Node(board);
}
public void add(Board board) {
int newLevel = board.numberPlacedDiscs();
if(newLevel>level){
//Add this at a new level.
Node newNode =new Node(board);
newNode.setParent(root);
root = newNode;
}else{
//add at this level.
root.addChild(new Node(board));
}
}
}
public class Tree {
private Node root;
private int level;
public Tree(int level, Board board) {
this.level = level;
root = new Node(board);
}
public void add(Board board) {
int newLevel = board.numberPlacedDiscs();
if(newLevel>level){
//Add this at a new level.
Node newNode =new Node(board);
newNode.setParent(root);
root = newNode;
}else{
//add at this level.
root.addChild(new Node(board));
}
}
}
正如你所看到的,我不知道如何添加新節點。我如何知道何時在樹中降級並添加更多節點?每次將新光盤添加到電路板時,它都應該向下一級。
我認爲給你的Node/Board類至少一個* outline *可能會有幫助。您會看到:您創建了新節點... **所有**都使用相同的Board實例。我不確定這是多麼有幫助。我也想知道你是否明白有很多不同形式的樹木? – GhostCat