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,
你好,我写了一个黑魔法代码,它能够填充正方形的网格,但如果它填充了一个数字,那么下一个数字将被放在它当前位置下方的正方形中.
然后,向上和向右移动一个正方形并将下一个整数放在那里,如果我也离开网格,那么下一个数字将环绕到底部和/或左侧。该程序运行直到所有的方块都被填满。
我想知道是否可以将我的代码从我的 while 循环开始到我的 for 循环结束压缩成更短的代码?
有人说我只用 2 行就可以编写代码,我认为这很奇怪……但他们说这是可行的!
任何提示、帮助或指针将不胜感激!
太感谢了!