Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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_Awt - Fatal编程技术网

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

我正在编程跳棋,遇到了一个问题,我的跳棋没有移动。我正在使用一个Java小程序。它记录了我单击的事实,但它不会移动棋盘格本身

这是我的鼠标,我想这就是我的问题所在:

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

我还将我所有的逻辑都放在事件处理程序中,这是未来的潮流。不要让反对者劝阻你。重构代码以消除重复。并添加一些调试消息,您将发现问题所在。我还将所有逻辑都放在事件处理程序中,这是未来的潮流。不要让反对者劝阻你。重构代码以消除重复。并添加一些调试消息,您将发现问题所在。