グリッド上のタイルのセットを前提として、以下を決定します。
- タイルが囲まれた図を作る場合
- ボードの側面を図の端として数えたときにタイルが囲まれた図を作る場合
- 前の2つのステートメントのいずれかがtrueの場合、追加のタイルが囲まれた図の内側に入ると、最初のタイルが形成されます。
プレーヤーは、1つのタイルを押し下げてから、指を他のタイルにドラッグして、同じ色のタイルのチェーンを作成します。次のタイルが有効であるかどうかを確認するために行くときに確認します。例 プレーヤーが赤いタイルから始めた場合、次に有効なのは隣接する赤いタイルへの移動のみです(対角線はカウントされます)。ユーザーが指を離したときに、上記の3つの項目を確認できるようにする必要があります。
ですから、私の最初の考えは、行くたびにチェーンの有効性をチェックしているので、プレーヤーが指を離したときに、最初と最後のタイルが隣接しているかどうかを確認できるということでした。(同じ色だとわかっています。)隣接している場合は、囲まれた図を作成するという予感がありました。ここに来て、大きなものが足りないかどうかを確認しました。私の直感が正しかったことのある種の論理的/数学的な証明(またはそれが正しくないことを証明する例)
しかし、そのときは、アイテム番号2について考えました。ボードの端を囲まれた図の側面として使用するチェーンも考慮する必要があります。その場合、チェーンの最初と最後のアイテムは隣接しませんが、囲まれた図がまだあります。さて、私は少し正方形に戻りました。
このグリッド座標のチェーンを使用して、囲まれた図を作成するかどうかを判断するにはどうすればよいですか?私は一度、ん、私は囲まれた数字を持って知って、その境界内に入る全てのタイルの追加のリストを取得するための最良の方法は何ですか?
上記では、このテストの4つの可能な結果が期待できるものの絵を描きました。
チェーンは同封の図を作りません。
チェーンは囲まれた図を作ります。
ボードの側面を図のエッジ(または複数のエッジ)として数えると、チェーンは囲まれた図になります。
チェーンは囲まれた図を作成しますが、作成された図の一部ではない余分なデータポイント(チェーンの一部としてユーザーが有効に選択したもの)があります。
ケース4は、「余分な」チェーンリンクを抽出して、囲まれた図形とその中にある部分を見つける必要があるためです(ただし、「閉じられていない」領域の周りではありません)。
だから...誰もがこれを解決する良い方法のアイデアを持っていますか、それとも私のための出発点ですか?この時点で私は一種の円を描いており、別の目を使用できます。