将2D数组绘制到网格上

时间:2013-06-01 20:28:57

标签: java arrays grid drawing

我正在根据实际的棋盘游戏制作一款名为“Go”的棋盘游戏。基本上,有2个玩家(白色和黑色),他们轮流在棋盘游戏网格的交叉点放置白色和黑色的石头。

到目前为止,我已经能够绘制石头,在玩家之间交替并更改我的2D数组中的值,其中0 =开放点,1 =白色,2 =黑色。

我想从2D阵列中绘制相应的石头到我的板上。我能够绘制正确的石头并使其跟随我的鼠标,但是一旦我点击我希望它放置在该位置的位置并留在那里。

这就是我用石头跟着我的鼠标

if (turn == 1) {
    g2d.drawImage(s.getBlackStone(),
                  s.getBlackX() - Frame.frameLocation.x - 15,
                  s.getBlackY() - Frame.frameLocation.y - 35, null);
} else {
    g2d.drawImage(s.getWhiteStone(),
                  s.getWhiteX() - Frame.frameLocation.x - 15,
                  s.getWhiteY() - Frame.frameLocation.y - 35, null);
}

我在想的是每次按下鼠标按钮时都会调用一个方法,该方法将获得点击鼠标的网格位置,然后转动它并绘制图像。你们对此有何想法?

1 个答案:

答案 0 :(得分:2)

我通常会创建一个Stone类,其中包含状态(黑色,白色或空白),自由数量以及数组中的位置等变量。 2D数组只是Stone类的一个实例数组。如果状态变量不为空,那么我在对应于数组中位置的单元格上绘制黑色或白色石头。

如果您只使用包含代表石头的数字的数组,那么当您需要处理捕获时,您将遇到问题。

在回答您的问题时,找到他们点击网格的位置,更新阵列中所有受影响的石头,然后重新绘制阵列。