PvP Chessプログラムを作成しようとしました。ただし、無効な移動が行われた場合は、ターンを終了します。Do-Whileループが途中で終了しています
do
{
boolean q = askMove(board, white , in);
if (q == true){
white.move = false;
break;
}
else
continue;
} while (white.move == true);
do
{
//boardDisplay (board);
boolean w = askMove(board, black, in);
if (w == true){
black.move = false;
break;
}
else
continue;
}while (black.move == true);
}
コードでは、ピースの最初と最後の座標が同じでない場合、qが成立します。
私は、をこのコードを実行すると、私は2番目の無効を再生する場合、第二の動きが再生すべき
if (x1 != x2 || y1 != y2)
return true;
return false;
、(Q == false)のため しかし、
コードは、間違ったプレイヤーのターンであるときにのみ 'あなたは敵のピースを動かすことができません'というトリガを発するべきです。しかし、私も有効な移動をしようとするとトリガします。
It says that I'm using an enemy piece!
私が書いたにもかかわらず:
player p
if (board[x1][y1].initPiece.name.charAt(0) != p.colour)
System.out.println ("you cannot move an enemy piece");
ヘルプは高く評価されています。
コードをフォーマットしてください。 –
「休憩」は何をしていると思いますか? – Henry