Java 棋盘格二维数组-棋盘格不移动
我正在编程跳棋,遇到了一个问题,我的跳棋没有移动。我正在使用一个Java小程序。它记录了我单击的事实,但它不会移动棋盘格本身 这是我的鼠标,我想这就是我的问题所在:Java 棋盘格二维数组-棋盘格不移动,java,awt,Java,Awt,我正在编程跳棋,遇到了一个问题,我的跳棋没有移动。我正在使用一个Java小程序。它记录了我单击的事实,但它不会移动棋盘格本身 这是我的鼠标,我想这就是我的问题所在: public void mouseClicked(MouseEvent e) { mouseX=e.getX(); mouseY=e.getY(); col = (mouseX-115)/100; row = (mouseY-115)/100; if(board[row][col].getP
public void mouseClicked(MouseEvent e) {
mouseX=e.getX();
mouseY=e.getY();
col = (mouseX-115)/100;
row = (mouseY-115)/100;
if(board[row][col].getPlayer()==player)
{ oldCol = col;
oldRow = row;
if(board[row][col].getPlayer()==0)
{
if(board[oldRow][oldCol].getPlayer()==1 && board[oldRow][oldCol].getKing()==false)
{
if(row==oldRow-1)
{
if(col==oldCol-1 || col==oldCol+1)
{
board[oldRow][oldCol].setPlayer(0);
board[row][col].setPlayer(1);
board[row][col].setKing(false);
}
}
}
else if(board[oldRow][oldCol].getPlayer()==1 && board[oldRow][oldCol].getKing()==true)
{
if(row==oldRow-1 || row==oldRow+1)
{
if(col==oldCol-1 || col==oldCol+1)
{
board[oldRow][oldCol].setPlayer(0);
board[row][col].setPlayer(1);
board[row][col].setKing(true);
}
}
}
else if(board[oldRow][oldCol].getPlayer()==2 && board[oldRow][oldCol].getKing()==true)
{
if(row==oldRow-1 || row==oldRow+1)
{
if(col==oldCol-1 || col==oldCol+1)
{
board[oldRow][oldCol].setPlayer(0);
board[row][col].setPlayer(2);
board[row][col].setKing(true);
}
}
}
else if(board[oldRow][oldCol].getPlayer()==2 && board[oldRow][oldCol].getKing()==false)
{
if(row==oldRow+1)
{
if(col==oldCol-1 || col==oldCol+1)
{
board[oldRow][oldCol].setPlayer(0);
board[row][col].setPlayer(2);
board[row][col].setKing(false);
}
}
}
}
}
repaint();
}
我还将我所有的逻辑都放在事件处理程序中,这是未来的潮流。不要让反对者劝阻你。重构代码以消除重复。并添加一些调试消息,您将发现问题所在。我还将所有逻辑都放在事件处理程序中,这是未来的潮流。不要让反对者劝阻你。重构代码以消除重复。并添加一些调试消息,您将发现问题所在。