滑槽和梯子游戏板间距不对齐

时间:2013-01-31 04:28:29

标签: java printing spacing

我是一名学生,正在做一个滑道和梯子游戏。我不得不在电路板上放置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();
}
}

1 个答案:

答案 0 :(得分:1)

上述代码存在的问题多于对齐(例如,它将永远循环而不会终止,并且滑槽和梯子上的数字是错误的)。但是关于对齐,问题是你用空格替换的字符串与空格本身的长度不同。使用String.format()将它们填充为四个字符。

用法如下:

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

其中s是滑槽或梯子。