質問: フィールドが以下のような場合 | | [0] | [1] | [2] | [3] | [4] | | --- | --- | --- | --- | --- | --- | | [0] | | | | | | | [1] | | 1 | | 4 | | | [2] | | 2 | 3 | 3 | | | [3] | | | 5 | 1 | | | [4] | | | | | | | [5] | | | | | | 得たい結果はインデックスを(x,y)と表現すると、 ``` {(1,1) (1,2) (2,2) (3,2) (3,3)} {(1,2) (2,2) (2,3)} {(2,2) (3,2) (3,1)} ``` という、10ができる組み合わせ毎のインデックスリストを得たいです。 ぷよぷよのアルゴリズムような再帰関数での取得を考えましたが インデックスの組み合わせを考えると上手く実装できません。 良いアルゴリズムはありますでしょうか。 実装例も合わせて提示していただけると助かります。
回答: 自己解決しました。 過去にぷよぷよの探索アルゴリズムは作成したことがあるので違いだけ。 ・上下左右に探索していき、その地点にある数値を足していくのは一緒。 ・探索を進める時に、座標を履歴で保存する。 ・空欄・壁に当たった時に探索を終了するのではなく、履歴の座標の上下左右をさらに探索する。