我是 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
提交
取消