gpt4 book ai didi

java - 螺旋穿过二维数组(l-r,向下,r-l,向下,l-r,...)

转载 作者:行者123 更新时间:2023-11-30 08:25:40 27 4
gpt4 key购买 nike

我正在为蛇和梯子制作一 block 板,到目前为止,我已经按降序打印了板。但是,我需要以正确的方式打印电路板。

编辑“螺旋下降”意味着

100...91
81...90
80...71
...

这是我的代码:

public class PrintGrid
{
public static void main(String[] args)
{
final int Rows=10;
final int columns=10;
int position =100;

int board [][]= new int [Rows][columns];


for (int row =0; row <=Rows-1;row++)
{
for(int col = 0; col <=columns-1; col ++)
{
board [row][col]= position;
position--;
}
System.out.println(" ");
}
}
}

我试图让输出以螺旋方式打印电路板,即:

100,99,98,97,96,95,94,93,92,91
81,82,83,84,85,86,87,88,89,90
80,79,78,77,76,75,74,73,72,71

然而它是这样打印出来的,

100,99,98,97,96,95,94,93,92,91
90,89,88,87,86,85,84,83,82,81
80,79,78,77,76,75,74,73,72,71

任何帮助都会很棒!

最佳答案

试试这个:

package com.stackoverflow.q22099123;

public class PrintGrid
{
public static void main(String[] args)
{

int numRows = 10;
int numColumns = 10;
int numSpaces = numRows * numColumns;
int[][] board = new int[numRows][numColumns];

for (int space = 0; space < numSpaces; space++)
{
int row = space / numRows;
int column = space % numColumns;
if (row % 2 == 0)
{
board[row][column] = (numSpaces - space);
}
else
{
board[row][(numColumns - column) - 1] = (numSpaces - space);
}
}

for (int[] row : board)
{
for (int col : row)
{
System.out.printf("%4d", col);
}
System.out.println();
}
}
}

打印:

 100  99  98  97  96  95  94  93  92  91
81 82 83 84 85 86 87 88 89 90
80 79 78 77 76 75 74 73 72 71
61 62 63 64 65 66 67 68 69 70
60 59 58 57 56 55 54 53 52 51
41 42 43 44 45 46 47 48 49 50
40 39 38 37 36 35 34 33 32 31
21 22 23 24 25 26 27 28 29 30
20 19 18 17 16 15 14 13 12 11
1 2 3 4 5 6 7 8 9 10

老实说,如果您正在制作蛇梯游戏,棋盘的组织方式实际上更多的是显示问题。将游戏空间存储为升序一维数组(以便更轻松地计算移动)并担心单独处理棋盘的显示可能更有意义。

关于java - 螺旋穿过二维数组(l-r,向下,r-l,向下,l-r,...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22099123/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com