public class MagicSquare
{
public static int[][] grid = new int[3][3];
public static int i = 0;
public static int j = 0;
public static void main(String[] args) {
int x = 1;
int y = 2;
int z = 0;
while(z < 9)
{
int holdx = x;
int holdy = y;
z++;
x++;
y--;
if(x == 3)
{
x = 0;
}
if(y == -1)
{
y = 2;
}
if(y == 3)
{
y = 0;
}
if(grid[x][y] == 0)
{
grid[x][y] = z;
}
else
{
holdy++;
if(holdy == 3)
{
holdy = 0;
}
grid[holdx][holdy] = z;
x = holdx;
y = holdy;
}
}
for(int i = 0; i < 3; i++)
{
System.out.print(grid[i][0]+", ");
}
System.out.println(" ");
for(int i = 0; i < 3; i++)
{
System.out.print(grid[i][1]+", ");
}
System.out.println(" ");
for(int i = 0; i < 3; i++)
{
System.out.print(grid[i][2]+", ");
}
}
出力は次のようになります。
2、4、9、6、8、1、7、3、5
、
_
こんにちは、正方形のグリッドとその右側を埋めることができる黒魔術コードを書きましたが、数字で埋められた場合、次の数字は現在の場所の下にある正方形に置かれます.
次に、1 マス上と右に移動し、そこに次の整数を配置します。グリッドから外れると、次の数字は下または左に回り込みます。このプログラムは、すべてのマスが埋まるまで実行されます。
while ループから for ループの最後までのコードを短いコードに凝縮できるかどうか疑問に思っていました。
誰かが、たった 2 行を使用してこれをコーディングできると言っていましたが、それは奇妙だと思います... しかし、彼らは実行可能だと言いました!
ヒント、ヘルプ、またはポインターをいただければ幸いです。
どうもありがとう!