我正在用Java控制台进行扫雷游戏,用户必须在其中输入x和y坐标以选择他/她要打开或标记的位置。如您在第一张图片中所见,网格由一个10x10的点板组成。现在,用户必须对行和列进行计数,然后他/她才可以在控制台中写出他/她希望进行归纳处理的位置。对于用户而言,这确实不是一个很好的体验,所以我想知道是否有任何方法可以将行和列从1编号到10,以便用户更轻松地选择他/她想要选择的坐标。 1
网格的代码如下
public String appearanceAt(Pos p) {
if (statuses[p.y][p.x] == StatusOfArea.CLOSED) {
return ". ";
}
if (statuses[p.y][p.x] == StatusOfArea.flagEDASBOMB) {
return "* ";
}
int count = countMineNeighbors(p);
if (count == 0) {
return "0 ";
}
return + count + " ";
}
谢谢
我看到您已将Position详细信息封装在一个对象中。
您可以类似地将二维数组封装在Board类中。
董事会的打印方法可以:
此方法也可以调用getStatus函数来确定您需要在用户输入中显示的内容
看起来像这样
0 1 2 3 4 5 6 7 8 9
A . . . . . . . . . .
B . . . . . . . . . .
C . . . . . . . . . .
D . . . . . . . . . .
E . . . . . . . . . .
F . . . . . . . . . .
G . . . . . . . . . .
H . . . . . . . . . .
I . . . . . . . . . .
J . . . . . . . . . .
用户将输入输入为“ D 5”。将由InputHandler进行翻译并相应地设置Position对象。
希望这会有所帮助:)