在我的Checkers代码中,我试图让它成为每当一块物品落在它能够跳跃的地方时,就会被迫跳跃。在我的代码中,它突出显示了您可以跳转的位置。我已经做到这一点,你可以跳过其他的等等,但我还没有找到一种方法来强迫玩家跳。使用布尔值和方法最好扫描电路板以进行跳转并禁用所有磁贴,但跳转的磁贴和跳转的磁贴。
主要类
SOH
结束主要类
瓷砖类
Exception thrown without a stack frame in unknown on lne 0
结束瓷砖类
您有任何想法或建议吗?
答案 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;
}
}
}
我希望这能回答你的问题并帮助你。 :)
顺便说一下。我建议你为用户可以进行的每个操作制作一个自己的方法。