Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在网格上绘制二维阵列_Java_Arrays_Grid_Drawing - Fatal编程技术网

Java 在网格上绘制二维阵列

Java 在网格上绘制二维阵列,java,arrays,grid,drawing,Java,Arrays,Grid,Drawing,我正在根据实际的棋盘游戏制作一款名为“围棋”的棋盘游戏。基本上,有两个玩家(白色和黑色),他们轮流在棋盘游戏网格的交叉点放置白色和黑色的石头 到目前为止,我已经能够绘制石头,在玩家之间交替,并更改我的2D数组中的值,其中0=开放点,1=白色,2=黑色 我想把2D阵列中对应的石头画到我的棋盘上。我能够画出正确的石头,并让它跟随我的鼠标,但一旦我点击的位置,我希望它被放置在该位置,并留在那里 这就是我用来让石头跟着我的老鼠的东西 if (turn == 1) { g2d.drawImage(

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

到目前为止,我已经能够绘制石头,在玩家之间交替,并更改我的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);
}

我想的是,我有一个方法,每次我按下鼠标按钮时都会调用该方法,该方法将获得单击鼠标的网格位置以及谁转动鼠标并绘制图像。你们对此有什么想法

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

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


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

帧是变量还是类?如果它是一个变量,则应称为
frame
。如果它是一个类,那么(a)不应该使用静态变量作为位置,(b)不应该隐藏
java.awt.Frame
。另外,图形上下文是根据组件而不是屏幕绘制的。这听起来很合适。获取网格位置,并在那里放置/绘制石头。不确定您还可以做什么,所以请看一看枚举:将
public enum Player{WHITE,BLACK}
if(turn==Player.WHITE)
结合使用。