私は今日、小さなゲームのアイデアについて考えていて、それを実装する方法に出くわしました。プレイヤーは少しの効果をもたらす一連の動きをすることができますが、特定のシーケンスで行われた場合、より大きな効果をもたらすという考え方です。これまでのところ、これは私が行う方法を知っています。明らかに、私はそれをより複雑にする必要がありました(私たちはそれをより複雑にするのが好きなので)、それで私は、異なるものではありますが、両方がより大きな効果を引き起こすシーケンスの可能なパスが複数ある可能性があると思いました。また、一部のシーケンスは他のシーケンスの始まりである可能性があり、シーケンス全体でさえ他のより大きなシーケンスに含まれている可能性があります。今、私はこれを実装するための最良の方法を確かに知りません。しかし、私にはいくつかのアイデアがありました。
1)循環nリンクリストを実装できます。しかし、移動のリストは決して終わらないので、スタックオーバーフロー™を引き起こす可能性があるのではないかと心配しています。すべてのノードにn個の子があり、コマンドを受信すると、その子の1つに誘導されるか、そのようなコマンドに使用できる子がない場合は、最初に戻る可能性があります。子供が到着すると、いくつかの機能が実行され、小さな効果と大きな効果が発生します。ただし、これにより、ツリー上に多数の重複ノードが発生し、特定の移動で終了する可能性のあるすべてのシーケンスにさまざまな効果で対処できるようになる可能性があります。これは維持するのが面倒かもしれませんが、よくわかりません。理論的にのみ、コードでこれほど複雑なことを試したことはありません。このアルゴリズムは存在し、名前がありますか?それは良い考えですか?
2)ステートマシンを実装できました。次に、リンクリストをさまよっている代わりに、関数を呼び出してそれに応じてマシンの状態を更新する巨大なネストされたスイッチがあります。実装するのは簡単なようですが...まあ...面白くないようです...エレガントでもありません。巨大なスイッチはいつも私には醜いように見えますが、これはもっとうまくいくでしょうか?
3)提案?私は良いですが、私ははるかに経験が浅いです。コーディング分野の良いところは、あなたの問題がどんなに奇妙であっても、誰かが過去にそれを解決したことですが、どこを見ればよいかを知っている必要があります。誰かが私が持っていたものよりも良いアイデアを持っているかもしれません、そして私は本当に提案を聞きたかったです。