我正在尝试创建2048年的游戏,但有点不同。与其显示通常为4x4的网格,我希望根据用户的需要显示网格。例如,如果用户输入数字6,游戏板应该是6x6。我这里的代码是用来显示网格4x4的,但是我一直在试图弄清楚如何显示任何网格。我被困在这上面已经好几个小时了。
如何根据用户的输入来修复这个问题以显示游戏板?
String rowDashes = "----------------";
for ( int i = 0; i < board.length; i++) {
System.out.println(rowDashes);
System.out.print("|");
for (int j =0; j < board[i].length;j++) {
String number = "";
if (board[i][j] != 0)
{
number = board[i][j] + "";
}
System.out.print(" " + number + "|");
}
System.out.println();
}
System.out.println(rowDashes);发布于 2020-12-15 22:16:59
编辑:,我看错了。我添加了像100,1800,45这样的虚拟值。您可以删除值或随机初始化它们。
import java.util.Scanner;
public class Game {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter board size: ");
int boardSize = scanner.nextInt();
StringBuilder rowLine = new StringBuilder();
for (int i = 0; i < boardSize; i++) {
rowLine.append("+-----");
}
rowLine.append("+");
int[][] board = new int[boardSize][boardSize];
board[0][2] = 100;
board[1][3] = 1800;
board[1][2] = 45;
System.out.println(rowLine);
for (int i = 0; i < board.length; i++) {
System.out.print("|");
for (int j = 0; j < board[i].length; j++) {
int value = board[i][j];
if (value > 0) {
System.out.printf("%5d", board[i][j]);
} else {
System.out.print(" "); // 5 characters
}
System.out.print("|");
}
System.out.println();
System.out.println(rowLine);
}
}
}输出:
Enter board size: 6
+-----+-----+-----+-----+-----+-----+
| | | 100| | | |
+-----+-----+-----+-----+-----+-----+
| | | 45| 1800| | |
+-----+-----+-----+-----+-----+-----+
| | | | | | |
+-----+-----+-----+-----+-----+-----+
| | | | | | |
+-----+-----+-----+-----+-----+-----+
| | | | | | |
+-----+-----+-----+-----+-----+-----+
| | | | | | |
+-----+-----+-----+-----+-----+-----+https://stackoverflow.com/questions/65314335
复制相似问题