ゲーム Globs ( http://www.deadwhale.com/play.php?game=131 ) を解決するためのアルゴリズムとデータ構造を提案してください。オタクな意味でとても楽しいです。
アプローチの時空間の複雑さ (big-O) をグリッドのサイズ (N>=14) で表します。複雑さが低く、十分に効率的なアルゴリズムが優先されます。
(MatrixFrog は、このゲームが FloodIt としても知られていることを正しく指摘しており、Smashery は 3 か月前に、彼が以下に引用したリンクで解決策を示しました。あなたたち全員が、最適ではない解決策を提供する 1 回の先読みのみでプルーニング/貪欲を提案しています。)
ゲームは nxn ノードのランダムな正方形グリッドを生成します。各ノードは 6 色 (Grn=1、Ylw=2、Red=3、Blu=4、Pur=5、Orn=6) のいずれかに着色されています。レベル 1 には 9x9 のグリッドがあり、n は各レベルを最大 14 まで増やします。各レベルは最大 25 ターンを取ることができます。各ターンで、左上のノードを変更する色を選択します。たとえば、新しい色の接続された隣接する (水平/垂直) ノードが形状に同化され、同化されたノードごとに 1 ポイントが追加されます。あなたのスコア。スコアリングの目的は、各グリッドをできるだけ少ないターンで完了することです。たとえば、16 ターンで完了した場合、未使用の 9 つの移動 => 累積スコアの 2*9 乗数倍になります。
明らかに、これを分解する方法はたくさんあります。14x14 グリッドを使用した再帰的バックトラッキングのデフォルトの選択は実行可能な候補です。これは、他にどのようなタイプのデータ構造に適していますか? あ*? 最適性にこだわらないでください。「十分な」アルゴリズムがあるかどうか疑問に思っています。
(ロボットのコードを作成して馬鹿げた高得点を獲得するのは楽しいプロジェクトかもしれないと思いました。ただし、3.5E+12 はすべてフレッシュウェアの自分で採点しました。)