我正在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 + " ";
}
谢谢
发布于 2020-05-10 01:14:22
我看到您已经将位置详细信息封装在一个对象中。
您可以类似地将二维数组封装在Board类中。
Board的print方法可以:
此方法还可以调用getStatus函数,以确定需要在用户输入上显示什么内容
它看起来就像这样
0 1 2 3 4 5 6 7 8 9
A . . . . . . . . . .
B . . . . . . . . . .
C . . . . . . . . . .
D . . . . . . . . . .
E . . . . . . . . . .
F . . . . . . . . . .
G . . . . . . . . . .
H . . . . . . . . . .
I . . . . . . . . . .
J . . . . . . . . . .用户将输入为“D5”。这将由InputHandler来翻译它并相应地设置Position对象。
希望这能有所帮助:)
https://stackoverflow.com/questions/61700430
复制相似问题