2017-11-30 4 views
0

줄 번호가있는 2 차원 게임 필드를 만들려고하는데 Java에서 번호 매기기를 올바르게 코딩하는 방법에 대해 머리를 맞지 않습니다.2 차원 배열 gamemap 줄 번호 매기기

나는 공간이 충분하지 않기 때문에 지금까지 단 두 자리 숫자가 올바르게지도를 표시하지 않는 것 이상 9.

에 행과 열의 imput까지 노력하고 있습니다 무엇. 행 넘버링이 수백 가지가 될 수 있도록 두 개의 공백을 말하도록 블록을 추가 할 수는 있지만 제한이없는지도를 얻으려고합니다.

도움을 주시면 감사하겠습니다.

public String toString() { 
    String output; 
    output = "gamemap:\n "; 
    for (int j = 0; j < this.y; j++) { // loop over columns 
     output += j; 
    } 
    output += "\n *"; 

    for (int j = 0; j < this.y; j++) { // loop over columns 
     output += "*"; 
    } 
    output += "*\n"; 

    for (int i = 0; i < this.x; i++) { // loop over rows 
     output += i + "*"; 
     for (int j = 0; j < this.y; j++) { // loop over columns 
      output += this.map[i][j]; 
     } 
     output += "*\n"; 
    } 
    output += " *"; 

    for (int j = 0; j < this.y; j++) { // loop over columns 
     output += "*"; 
    } 
    output += "*\n"; 

    output += "The player has "+ this.player.lives + " lives left."; 
    return output; 
} 
+0

이것은 무엇입니까? 이 .x? 이거? –

+0

나는이 질문을 이해하지 못한다. 그러나 모든 문자열 결합 연산을 피하기 위해'output'을 StringBuilder로 바꾸는 것을 고려해야한다. –

+2

예상 출력을 추가 할 수 있습니까? –

답변

0
private String getPaddedNumber(int number, int maxNumber) { 
    if(maxNumber <= number) return Integer.toString(number); 

    int buffer = number; 
    while((buffer /= 10) != 0 & (maxNumber /= 10) != 0) { 
     //nothing 
    } 

    StringBuilder sb = new StringBuilder(); 
    while(maxNumber != 0) { 
     sb.append('0'); //alternatively sb.append(' '); 
     maxNumber /= 10; 
    } 

    return sb.append(number).toString(); 
} 

번호를 표시 할 행 번호, MAXNUMBER은 당신이 (또는 그 이상 precicely, 가장 높은 라인 인덱스 당신이) 줄 수있을 것

입니다 : 여기 내가 지금 가지고있는 것입니다