跳棋强迫跳跃

时间:2015-05-21 05:46:38

标签: java

在我的Checkers代码中,我试图让它成为每当一块物品落在它能够跳跃的地方时,就会被迫跳跃。在我的代码中,它突出显示了您可以跳转的位置。我已经做到这一点,你可以跳过其他的等等,但我还没有找到一种方法来强迫玩家跳。使用布尔值和方法最好扫描电路板以进行跳转并禁用所有磁贴,但跳转的磁贴和跳转的磁贴。

主要类

SOH

结束主要类

瓷砖类

Exception thrown without a stack frame in unknown on lne 0

结束瓷砖类

您有任何想法或建议吗?

1 个答案:

答案 0 :(得分:0)

我在这里看到的最简单的方法是创建一个名为jump的新Methoc,它会获得点击的Tile。在这种方法中,您有跳跃的代码,如果您想强制玩家跳转到某一点,您可以使用要跳转到的Tile来调用此方法。 这里有一个这个方法的示例,其中包含一些代码,我认为它是用于跳转的:

private void jumpTo(Tile tileToJumpTo)
       {
          if(tileToJumpTo==board[x][y] && board[x][y].getBackground()==Color.white)
                            {
                                if(tileToJumpTo==board[x][y] && board[x][y].getIcon()==null && board[x][y].getBackground()==Color.black)
                                {
                                    JOptionPane.showMessageDialog(null, "Please choose a valid place to jump to.");
                                }



                                else if(tileToJumpTo==board[x][y] && board[x+1][y+1].getIcon()==b)
                                {
                                    board[x][y].setIcon(r);
                                    turn1=false;
                                    turn2=true;
                                    board[x][y].setBackground(Color.red);
                                    board[x+1][y+1].setIcon(null);
                                }

                                else if(tileToJumpTo==board[x][y] && board[x-1][y+1].getIcon()==b)
                                {
                                    board[x][y].setIcon(r);
                                    turn1=false;
                                    turn2=true;
                                    board[x][y].setBackground(Color.red);
                                    board[x-1][y+1].setIcon(null);
                                }

                                else if(tileToJumpTo==board[x][y] && board[x][y].getBackground()==Color.red||board[x][y].getBackground()==Color.white)
                                {
                                    if(count == 1)
                                    {
                                        JOptionPane.showMessageDialog(null, "You really should click on a piece if you want to move.");
                                        count = 0;
                                    }
                                    else
                                    {
                                        board[x][y].setIcon(r);
                                        turn1=false;
                                        turn2=true;
                                        board[x][y].setBackground(Color.red);
                                        board[x+2][y].setBackground(Color.red);
                                        board[x-2][y].setBackground(Color.red);
                                        count = 0;
                                    }
                                }
          }

我希望这能回答你的问题并帮助你。 :)

顺便说一下。我建议你为用户可以进行的每个操作制作一个自己的方法。