3

作成中のゲームのチェッカーボード パターンを生成する必要があります。私は次の (疑似) コードを思いつきましたが、これを行うにはもっとコンパクトな方法が必要だと感じています。すべての提案を歓迎します!

for (int i = 1; i < 9; i++){
    for (int j = 1; j < 9; j++){
        if (i % 2 == 1){
            if (j % 2 ==1){
                color = white
            }
            if (j % 2 ==0){
                color = black
            }
        }

        if (i % 2 == 0){
            if (j % 2 ==1){ 
                color = black
            }
            if (j % 2 ==0){
                color = white
            }
        }
        id = (i-1)*8+j
    }//end inner for
}//end outer for

ありがとう。

4

6 に答える 6

0

正方形の辺のピクセル数と、チェッカーボードの辺の正方形の総数を選択できる一般的なソリューション。

int dimSq = 10;         // in pixels
int dimBoard = 8;       // in squares
int pixels = dimSq * dimBoard;
for (int x = 0; x < pixels; x++)
    for (int y = 0; y < pixels; y++)
        boolean black = (x / dimSq) + (y / dimSq) % 2 == 0;
于 2015-12-10T13:47:51.833 に答える
0

何かを描くたびに色を交換すると、これが達成されるはずです。例えば。

Start with black
Outer loop i
   Inner loop j
      Print colour square at position i,j
      Swap colours

次に、奇数番号のボードに移動する必要があります。3x3

bwb
wbw
bwb
于 2013-06-24T23:40:31.653 に答える
-1
for (int i = 1; i < 9; i++){
    for (int j = 1; j < 9; j++){
        if (i % 2 == j % 2){
            color = white
        } else {
            color = black
        }
        id = (i-1)*8+j
    }//end inner for
}//end outer for

すべてのタイルを調べて、両方が偶数または奇数の場合 (つまり、(1,1)、(1,3)... および (2,2) (2,4) (2,6))。 .. および (3,1) (3,3) (3,5) ... など) の場合は 1 つの色にし、そうでない場合は他の色を使用します。

例:

B W B W B W
W B W B W B
B W B W B W
W B W B W B
B W B W B W
W B W B W B

ここで色がすべて黒であるインデックスを確認すると、これらすべてで、X と Y が両方とも奇数または両方で偶数であることがわかります。

id = (i-1)*8+jまた、あなたのラインが何をしているのか正確にはわかりません

于 2013-06-24T23:40:56.037 に答える