0

ifrom 0toごと7に、特定の方向の隣接セルへの x および y オフセットを返す、ある種の式を探しています。アイデアは、セルのグリッドにいて、周囲のセルをスキャンしたい場合、ifステートメントのクリスマスツリーを作成する必要がないということです (算術よりもはるかに遅い)。このスキャンには対角線が含まれていることに注意してください。私はこのようなものをオンラインで探していましたが、運がありません。

方向は、各入力が異なる出力を生成する限り、任意の順序で出力できます。x と y は 1、0、または -1 にのみ等しく、どの出力も ではありません(0, 0)

4

2 に答える 2

1

x,yそれが元の座標でありnx,ny、現在の隣人になると仮定します。

for (int cx = -1; cx <= 1; ++cx)
  for (int cy = -1; cy <= 1; ++cy)
    if (cx != 0 && cy != 0)
    {
      int nx = x + cx;
      int ny = y + cy;

      // do whatever you like
    }

または単に定数を使用します。

int delta[8][2] = {{1,0},{-1,0},{0,1},{0,-1},{1,1},{1,-1},{-1,1},{-1,-1}}
于 2012-11-05T04:24:47.643 に答える
0
for i in range(3):
    for j in range(3):
        if (i-1) or (j-1):
            print i-1,j-1

-1 -1
-1 0
-1 1
0 -1
0 1
1 -1
1 0
1 1

これは機能しますか?

于 2012-11-05T04:35:09.533 に答える