Trieデータ構造を使用して、さらに最適化できます。すべての英語の単語 (または別の言語) を構造に入力すると、O(1) で、特定の隣人の文字を調べる必要があるかどうかを確認できます。
この時点で、ストレージを時間と交換していることに注意してください。Trie 全体を格納するにはおそらくより多くの RAM が必要になりますが、単語の順序付きリストをチェックインするよりも高速にクエリを実行できます。
ゲームの背後にあるアーキテクチャに関しては、専用のサーバーを使用していると思います。このサーバーは、新しいゲーム (マトリックス) と許容される単語のリストを DB に保存するためにフルタイムで動作します。ゲーム中、デバイスは ID を受け取り、マトリックスと許容される単語のリストをダウンロードします。これで十分にプレイできます。各ゲームの終了時にすべてが削除され、最終スコア (整数のみ) がサーバーに送信され、プロファイルが更新されます。実際のゲームでは、バッジや統計情報も含まれているため、さらに何かがあります (ただし、収集するのは些細なことです)。これは、私が設計および開発する方法にすぎないことを覚えておいてください。
どう思いますか?もっとうまくやれるだろうか?