在Java控制台中的MineSweeper游戏中是否可以对行和列进行编号?

问题描述 投票:0回答:1

我正在用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 + " ";
    }

谢谢

java eclipse user-interface numbers minesweeper
1个回答
0
投票

我看到您已将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对象。

希望这会有所帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.