我是一名学生,正在做一个滑道和梯子游戏。我不得不在电路板上放置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();
}
}
答案 0 :(得分:1)
上述代码存在的问题多于对齐(例如,它将永远循环而不会终止,并且滑槽和梯子上的数字是错误的)。但是关于对齐,问题是你用空格替换的字符串与空格本身的长度不同。使用String.format()将它们填充为四个字符。
用法如下:
board[temp] = String.format("%4s", s)
其中s是滑槽或梯子。