複数の川を渡る問題 (Fox Goat Cabbage、Jealous Husbands、Mercenaries and Cannibals など) を解決する DFS を作成しようとしています。パズル クラスを作成しましたが、ソルバーの構造化に問題があります。DFS がどのように機能するかは理解していますが、この設計に適応させるためにどこから始めればよいかわかりません。
各パズルには move() メソッドがあり、有効な手であれば true を返し、ルールセットに違反している場合は false を返します。乗客は、川のそれぞれの側を表す一対のリストで追跡されます。ソルバーはこれらのリストにアクセスできますが、乗客が川を渡るたびに可能な動きが変わるため、これを使用して可能な動きセットを生成する方法がわかりません。