Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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
Javascript 如何追踪前一个国王是普通的跳跃还是Java中的捕捉跳跃_Javascript_Java_Swing_Arraylist_2d Games - Fatal编程技术网

Javascript 如何追踪前一个国王是普通的跳跃还是Java中的捕捉跳跃

Javascript 如何追踪前一个国王是普通的跳跃还是Java中的捕捉跳跃,javascript,java,swing,arraylist,2d-games,Javascript,Java,Swing,Arraylist,2d Games,我用Java设计了一款跳棋游戏,国王沿着对角线从左到右、从上到下跳到任何空白处。我可以跟踪决定国王是正常移动还是跳跃并杀死对手棋子,问题是我如何记录之前的移动是正常移动还是跳跃-杀死移动。 我有两个布尔函数来决定是正常移动还是跳跃,这有助于我决定是否进行强制跳跃(如果有) 这是我的跳跃布尔函数: 公共布尔运算(整数播放器、整数r1、整数c1、整数r2、整数c2、整数r3、整数c3){ if(r3=8 | | c3=8) 返回false; if(板[r3][c3]!=空) 返回false; 对于(

我用Java设计了一款跳棋游戏,国王沿着对角线从左到右、从上到下跳到任何空白处。我可以跟踪决定国王是正常移动还是跳跃并杀死对手棋子,问题是我如何记录之前的移动是正常移动还是跳跃-杀死移动。 我有两个布尔函数来决定是正常移动还是跳跃,这有助于我决定是否进行强制跳跃(如果有)

这是我的跳跃布尔函数: 公共布尔运算(整数播放器、整数r1、整数c1、整数r2、整数c2、整数r3、整数c3){

if(r3<0 | | r3>=8 | | c3<0 | | c3>=8)
返回false;
if(板[r3][c3]!=空)
返回false;
对于(int i=1;ir2)和&(c3>c2)))
如果((电路板[r1+i][c1+i]!=空)和((电路板[r1+i+1][c1+i+1]!=空))
返回false;}
对于(inti=1;i
}

以下是我将强制跳跃动作添加到数组列表的代码:

            if (board[row][col] == playerKing) {
            if (row<col)
               for (int i=1; i<(7-col); i++) {
                if (canJumpKing(player, row, col, row+i, col+i, row+1+i, col+1+i)) {
                    moves.add(new CheckersMove(row, col, row+1+i, col+1+i));
                        for (int j=1; j<8-(col+1+i); j++){ 
                            if (col+j+i+1<8)
                             if ((board[row+1+j+i][col+j+1+i] != EMPTY))
                                break;
                                if ((board[row+1+j+i][col+j+1+i] == EMPTY)) {
                                    moves.add(new CheckersMove(row, col, row+1+j+i, col+j+1+i));
                        }}}}}
if(board[row][col]==playerKing){

如果(row问题是我将国王跳跃和普通棋子跳跃放在同一个数组上,我决定将它们分开放在不同的数组列表中,这样国王才能移动它,检查国王跳跃数组上是否返回空值,然后它移动,这样我必须决定检查国王跳跃数组上是否有任何东西如果动作是正常跳跃,则返回空值。无论如何,感谢您尝试的帮助(如果有)

            if (board[row][col] == playerKing) {
            if (row<col)
               for (int i=1; i<(7-col); i++) {
                if (canJumpKing(player, row, col, row+i, col+i, row+1+i, col+1+i)) {
                    moves.add(new CheckersMove(row, col, row+1+i, col+1+i));
                        for (int j=1; j<8-(col+1+i); j++){ 
                            if (col+j+i+1<8)
                             if ((board[row+1+j+i][col+j+1+i] != EMPTY))
                                break;
                                if ((board[row+1+j+i][col+j+1+i] == EMPTY)) {
                                    moves.add(new CheckersMove(row, col, row+1+j+i, col+j+1+i));
                        }}}}}