私は JavaScript で構築されたチェス ゲームに取り組んでいます。私はそれにオブジェクト指向のアプローチを取っていますが、JavaScript の継承を扱うのに苦労しています。いくつかのフィールドと基本的なゲッター/セッターを保持する「ピース」抽象クラスが必要です。このピースは黒または白です。次に、次のようにインスタンス化できる各タイプのピースのクラスが必要です。
var pieceOne = new Pawn();
Pawn() には Piece のすべてのフィールドとメソッドが必要ですが、移動のための独自のメソッドと追加のフィールド (ほとんどのピースでは問題にならないため、まだ移動しているかどうかなど) が必要です。これが私の現在の Piece クラスです:
//This object specifies basic information about pieces.
"use strict";
function Piece(color, type, captured, hasMoved) {
this.color = color;
this.type = type;
this.captured = captured;
this.hasMoved = hasMoved;
this.image = color + "_" + type + ".svg";
}
Piece.prototype.getImage = function getImage(){
return this.image;
}
Piece.prototype.isCaptured = function isCaptured(){
return this.captured;
};
おそらく「タイプ」フィールドを削除するすべての種類のピースのサブクラスを作成するかどうかはわかっていますが、どうすればポーンのサブクラスを作成できますか? このようなもの?
function Pawn() = new Piece(color, captured, hasMoved);
Pawn.prototype.getLegalMoves = function getLegalMoves(){
//return legal moves
}
var pieceOne = new Pawn("black", false, false);