我正在學習Javascript並將其作爲製作國際象棋遊戲的項目任務。我編寫了Rook,Pawn,Knight和Bishop的運動邏輯。現在我被困在女王運動中。皇后的舉動基本上涉及主教和白嘴鴉的運動邏輯。國際象棋遊戲中的女王運動(Javascript)
我想要做什麼的時候移動女王檢查源瓷磚的file是否與目標瓷磚相同。如果相同,則調用Rook的代碼移動邏輯調用Bishop的代碼移動邏輯。例如,如果皇后被放置在d4(源圖塊)並且被移動到d8或g4(目標圖塊)。那麼在這種情況下,應該調用Rook的移動功能。
所有的塊對象都有一個move()。所以在這種情況下,我想從Queen's move()中調用Rook的move()。我被困在這裏。請建議。相關代碼粘貼在下面。我也有類似的做Rook和其他物體。現在從Queen()的這個舉動()我想調用Rook/Bishop的move()。
chess.QueenFactory =
{
instance: function(color, type)
{
var Queen =
{
move: function(color, type)
{
alert("In Queen");
}
};
createPiece.call(Queen, color, type);
return Queen;
}
};
主教我的移動功能被放置在這樣
chess.BishopFactory =
{
instance: function(color, type)
{
var Bishop =
{
move: function(source, destn)
{ //Code here
}
}
}
}
我想援引女王此舉此功能()。我怎麼做?
請在下面的html鏈接中查找完整的代碼。
https://github.com/varunpaprunia/ChessInJavascript/blob/master/ChessBoard_Tags_1.html
在您的問題中放置相關的代碼。 – alex
現在可讀嗎? –
'x ='abcdefgh'.indexOf(destination_tile [0]),y = parseInt(destination_tile [1]) - 1;'let'a,b'分別與'source_tile'相同。皇后可以這樣移動:「a + b === x + y」(左下角,右上角),「a-x === b-y」(左上角,右下角),「a === x '(從上到下)或'b === y'(從左到右)。 –