我是 Java 新手,目前正在從事一個小型初學者項目。我應該構建一個掃雷 Java 游戲。但是,我一直在尋找將游戲板上的整數“0”更改為空白。也許你們可以幫我解決這個問題。謝謝public class Game { private Gameloop gameloop; boolean finish = false; boolean win = false; int turn=0; public Game(){ gameloop = new Gameloop(); Play(gameloop); } public void Play(Gameloop gameloop){ do{ turn++; System.out.println("There are a total of 10 mines in the mine field"); gameloop.show(); finish = gameloop.checkLocation(); if(!finish){ gameloop.numberOfMines(); finish = gameloop.win(); } }while(!finish); if(gameloop.win()){ System.out.println("You Win!"); gameloop.showMines(); } else { System.out.println("Game Over!"); gameloop.showMines(); } } public class Gameloop { private int[][] mines; private char[][] boardgame; private int Line, Column; Random random = new Random(); Scanner input = new Scanner(System.in); public Gameloop (){ mines = new int[12][12]; boardgame = new char[12][12]; startMines(); randomFillGrid(); fillTips(); startBoard(); } public boolean win(){ int count=0; for(int line = 1 ; line < 11 ; line++) for(int column = 1 ; column < 11 ; column++) if(boardgame[line][column]=='_') count++; if(count == 12) return true; else return false; }
5 回答

慕工程0101907
TA貢獻1887條經驗 獲得超5個贊
System.out.print(" "+ (boardgame[Line][Column] == '0' ? "" : boardgame[Line][Column]));
用上面的行替換show
方法中的打印行。你會得到所需的結果。

絕地無雙
TA貢獻1946條經驗 獲得超4個贊
改變
boardgame[Line+i][Column+j]=Character.forDigit(mines[Line+i][Column+j], 12);
進入
char ch = Character.forDigit(mines[Line+i][Column+j], 12); // 12 digits 0, 1, .. 9, a, b
boardgame[Line+i][Column+j] = ch == '0' ? ' ' : ch;

RISEBY
TA貢獻1856條經驗 獲得超5個贊
到目前為止我不知道,唯一的方法是進行邏輯檢查,如果值為 0,則顯示一個空白區域。
如果您需要字符方面的表示,您可以使用它。
Character ch = Character.MIN_VALUE;

拉丁的傳說
TA貢獻1789條經驗 獲得超8個贊
int 值中沒有空格。所以最簡單的方法是編寫一個返回字符或字符串的方法。它應該將數字本身作為字符或字符串返回(在轉換時要小心,數字可能無法通過簡單的轉換正確解釋,可能有 .toChar 或類似的東西)或 ' ' 如果它是 0
添加回答
舉報
0/150
提交
取消