Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 河流穿越者的一般情况_Java_Oop_Depth First Search_River Crossing Puzzle - Fatal编程技术网

Java 河流穿越者的一般情况

Java 河流穿越者的一般情况,java,oop,depth-first-search,river-crossing-puzzle,Java,Oop,Depth First Search,River Crossing Puzzle,我正试图写一个DFS来解决多个跨河问题(狐狸山羊卷心菜、嫉妒的丈夫、雇佣兵和食人族等等)。我已经编写了拼图类,但是我在构建解算器时遇到了问题。我了解DFS是如何工作的,但我不知道从何处着手使其适应这种设计 每个拼图都有一个move()方法,如果它是有效的移动,则返回true;如果它破坏了规则集,则返回false。乘客在一对代表河流两侧的列表中进行跟踪。解算器可以访问这些列表,但我不确定如何使用它来生成可能的移动集,因为每次乘客过河时,可能的移动都会发生变化。在您的状态(或节点)对象中创建一个va

我正试图写一个DFS来解决多个跨河问题(狐狸山羊卷心菜、嫉妒的丈夫、雇佣兵和食人族等等)。我已经编写了拼图类,但是我在构建解算器时遇到了问题。我了解DFS是如何工作的,但我不知道从何处着手使其适应这种设计


每个拼图都有一个move()方法,如果它是有效的移动,则返回true;如果它破坏了规则集,则返回false。乘客在一对代表河流两侧的列表中进行跟踪。解算器可以访问这些列表,但我不确定如何使用它来生成可能的移动集,因为每次乘客过河时,可能的移动都会发生变化。

在您的状态(或节点)对象中创建一个
validMoves
方法,该方法返回一个数组、一个
集合,或者更好的是,
迭代器
覆盖移动(或覆盖有效状态)。从搜索算法调用(在“节点扩展”阶段)