gpt4 book ai didi

java - 将二维数组绘制到网格上

转载 作者:行者123 更新时间:2023-12-02 06:59:14 24 4
gpt4 key购买 nike

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

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

我想将二维数组中相应的石头绘制到我的棋盘上。我能够绘制正确的石头并使其跟随我的鼠标,但是一旦我单击该位置,我希望它被放置在该位置并停留在那里。

这就是我用来让石头跟随鼠标的东西

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);
}

我在想的是,我有一个方法,每次按下鼠标按钮时都会调用该方法,该方法将获取单击鼠标的网格位置以及轮到谁并绘制图像。小伙伴们对此有何看法呢?

最佳答案

我通常创建一个 Stone 类,它具有诸如状态(黑色、白色或空)、自由数以及数组中的位置等变量。 2D 数组只是 Stone 类实例的数组。如果状态变量不为空,则我在与数组中的位置相对应的单元格上绘制黑色或白色的石头。

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

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

关于java - 将二维数组绘制到网格上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16876955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com