创建7x7多维数组。
在数组单元FillBoard(int [] []):void
选择一个随机的行和列来开始游戏(不能是一堵墙)。
创建一个名为“ PrintBoard(int [] [],int x,int y):void”的方法,该方法可以打印电路板。用管道将当前单元格包围起来: “ | 64 |”
所以这是我的测验任务,但我坚持使用粗体部分。 你能帮我吗?
这是我的代码
import java.util.Random;
public class Answer2 {
public static void main(String[] args) {
int board[][] = fillBoard(7, 7);
Random start = new Random();
int startX = start.nextInt(7);
int startY = start.nextInt(7);
System.out.println("StartX: " + startX + " StartY: " + startY );
System.out.println();
System.out.println("----Initial Board----");
System.out.println();
printBoard(board,startX,startY);
}
public static int [][] fillBoard (int row, int column){
int [][] array = new int [row][column];
Random rnd = new Random();
for(int i= 0; i < array.length; i++) {
for(int j = 0; j < array[i].length; j++) {
array[i][j] = rnd.nextInt(100)+1;
}
}
return array;
}
public static void printBoard(int [][] array, int x, int y) {
Random st = new Random();
x = st.nextInt(7);
y = st.nextInt(7);
for(int i = 0; i < array.length; i++) {
for(int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j] + "\t");
}
System.out.println();
}
}
}
答案 0 :(得分:1)
据此,我想您被困在打印单元管道?
创建一个名为“ PrintBoard(int [] [],int x,int y):void”的方法,该方法 打印板。用管道将当前单元格包围起来: “ | 64 |”
在这种情况下,将您的方法更改为以下一种:
public static void printBoard(int[][] array, int x, int y) {
Random st = new Random();
x = st.nextInt(7);
y = st.nextInt(7);
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print("|" + array[i][j] + "|" + "\t");
}
System.out.println();
}
}
输出:
StartX: 5 StartY: 6
----Initial Board----
|74| |95| |31| |12| |26| |3| |3|
|87| |59| |84| |73| |67| |44| |47|
|35| |71| |55| |44| |10| |75| |60|
|68| |49| |85| |43| |87| |31| |33|
|30| |97| |45| |82| |60| |25| |68|
|28| |32| |88| |83| |82| |34| |21|
|6| |20| |5| |85| |67| |75| |53|
答案 1 :(得分:1)
x
和y
作为参数时,请不要在方法中更改其值x,y
与索引i,j
进行比较,以了解将管道放置在何处printf("%2d, value);
public static void printBoard(int[][] array, int x, int y) {
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
if (i == x && j == y) {
System.out.printf("|%2d|\t", array[i][j]);
} else {
System.out.printf(" %2d \t", array[i][j]);
}
}
System.out.println();
}
}