-3
我試過寫一個PvP國際象棋程序。但是,當一個無效的移動被執行時,它會結束回合。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爲真。
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