0

私は学生で、シュートとはしごのゲームに取り組んでいます。私は100のスペースでボードを作り、ボードに10のランダムなシュートとはしごを置き、ボードを10*10印刷する必要がありました。これまでのところ、ボード部分を印刷するまですべてが機能します。印刷方法を使用すると、ボード印刷はすべて印刷する必要がありますが、うまく整列しません。すべてのプリントアウトを並べる方法に関するヒントはありますか?

import java.util.Random;
public class ChutesAndLadders {
    String[] board;
    Random ran = new Random();


public void setBoard(String[] b) {
    board = b;
    for(int i=0;i<board.length;i++){
        board[i]="  ";
    }
}

public void makeChutes(int x){
    for(int i=0;i<x;i++){
    int temp = ran.nextInt(board.length);
    if (board[temp].equals("    "))
        board[temp]="C"+x;
    else 
        i--;
    }
}

public void makeLadders(int y){
    for(int i=0;i<y;i++){
    int temp = ran.nextInt(board.length);
    if (board[temp].equals("    "))
        board[temp]="L"+y;
    else 
        i--;
    }
}
    public void printBoard(){
    int counter = 0;
    for(int i=0;i<board.length;i++){
        counter++;
        System.out.print("|"+board[i]);
        if(counter==10){
            System.out.print("|"+"\n");
            counter=0;
        }
    }
}
public static void main(String[] args) {
     ChutesAndLadders cl = new ChutesAndLadders();
     cl.setBoard(new String[100]);
     cl.makeChutes(10);
     cl.makeLadders(10);
     cl.printBoard();
}
}
4

1 に答える 1

1

上記のコードには、整列よりも多くの問題があります (たとえば、終了せずに永遠にループする、シュートとはしごの番号が間違っている)。しかし、配置に関しては、スペースを置き換える文字列がスペース自体と同じ長さではないという問題があります。String.format()を使用して 4 文字にパディングします。

使用法は次のようになります。

board[temp] = String.format("%4s", s)

ここで、s はシュートまたははしごです。

于 2013-01-31T04:37:31.373 に答える