2

私はオセロに似たパズル ゲームを構築しています。プレイヤーがゲームを学習するのに役立つチュートリアル モードを構築したいと考えています。そのためには、連続する値 (この場合は白または黒) の水平、垂直、および対角線を検出して、プレーヤーが次に実行できる可能性のある動きを示す必要があります...

ここに画像の説明を入力

私はこれを C++ で構築していますが、2D マトリックス (または単純化する場合は 1D 配列) を使用して線を検出するために使用できる一般的な戦略に本当に興味があります。

私の現在の戦略は非常に簡単ですが、これが最も遅い方法ではないかと疑っています...

for y = 0 to 7
  for x = 0 to 7
    cell = find the first unoccupied cell (no color)
    inspect the 8 surrounding cells to see if they contain a color
      if so, trace the cells in that direction to see if it forms a line of at least 3 contiguous colors
        if so, store the coords of those cells in a list of detected lines

他のアイデア?

あなたの知恵を前もってありがとう!

4

1 に答える 1