나는 지뢰 찾기를 쓰고 있으며, the following method으로 고생하고 있습니다. 아래 코드를 볼 수도 있습니다. 나는 작은지도를 통과하고 새로운 배열을 넣었지만, 0 열과 0 행을 가져와 like in this example을 인쇄하는 방법에 대한 논리로 고민하고 있습니다. 아래 코드 중 일부를 볼 수 있습니다. 나는 그것을 실제로 기대했던 방식대로 작동시킬 수는 없지만. 내 지뢰 찾기 코드의 "라벨"인쇄 문제가 있습니다.
어떤 도움
/**
* This prints out the map. This shows numbers of the columns
* and rows on the top and left side, respectively.
* map[0][0] is row 1, column 1 when shown to the user.
* The first column, last column and every multiple of 5 are shown.
*
* To print out a 2 digit number with a leading space if the number
* is less than 10, you may use:
* System.out.printf("%2d", 1);
*
* @param map The map to print out.
*/
public static void printMap(char[][] map) {
char[][] mapWithNum = new char[map.length + 1][map[0].length + 1];
for (int i = 1; i < mapWithNum.length; i++) {
for (int j = 1; j < mapWithNum[0].length; j++) {
mapWithNum[i][j] = map[i - 1][j - 1];
}
}
for (int i = 0; i < mapWithNum.length; i++) {
for (int j = 0; j < mapWithNum[0].length; j++) {
if (i == 0 || j == 0) {
if (i == 0 && j == 0) {
System.out.print(" ");
} else if (j == 1 && i == 0) {
System.out.print(" " + j);
} else if ((j) % 5.0 == 0) {
System.out.print(" t1" + (j));
if (j == map.length - 1 && i == 0) {
System.out.print(" t2" + (j + 1));
}
} else {
System.out.print("--");
if (j == map.length - 1 && i == 0) {
System.out.print(" t2" + (j + 1));
}
}
} else {
System.out.print(" " + mapWithNum[i][j]);
}
/* \t if (j == 1) {
\t \t if (j % 5 == 0) {
\t \t \t System.out.print(" " + (i + 1));
\t \t }
\t \t else {
\t \t \t System.out.print('-');*/
//}
// \t }
}
System.out.println();
}
return;
}
if 문을 통해 첫 번째 줄 ("1 ------ 5 -------- 10")을 동적으로 만들겠습니까? 첫 번째 열과 마지막 열뿐만 아니라 5의 배수도 인쇄해야합니다.이 역동적 인 부분은 내가 정말로 고심하고있는 곳입니다. –
나는 첫 줄을있는 그대로 그대로 하드 코딩 할 것입니다. 루프 또는 IF 문은 필요 없습니다. 그러나 이것은 10이 최대 크기라고 가정합니다. 크기가 15, 20, ...으로 동적으로 커질 수 있다면 동적으로 만들어야합니다. –
정말로 성장할 필요가있어 주셔서 감사합니다. 그러나 열 매개 변수에 대한 루프를 사용하여이를 해결할 수있었습니다. –