added movements to the pieces
This commit is contained in:
parent
0a8507b90c
commit
e1fe63cf89
3 changed files with 42 additions and 21 deletions
|
|
@ -89,6 +89,8 @@ La position de toutes les pièces sont échangées aléatoirement.
|
||||||
### La parrure
|
### La parrure
|
||||||
Une reine est dégradée en pion
|
Une reine est dégradée en pion
|
||||||
### Tricherie
|
### Tricherie
|
||||||
Regarde les trois prochaines cartes de la pioche
|
Regarde les trois prochaines cartes de la pioche.
|
||||||
### Tout ou rien
|
### Tout ou rien
|
||||||
Une pièce choisie ne peut maintenant se déplacer que si elle capture
|
Une pièce choisie ne peut maintenant se déplacer que si elle capture.
|
||||||
|
### Tous les mêmes
|
||||||
|
Au yeux de l'ennemie, toutes les pièces se ressemblent pendant 2 tours.
|
||||||
|
|
@ -1,5 +1,19 @@
|
||||||
import Cell from './cell.js';
|
import Cell from './cell.js';
|
||||||
|
import * as Movement from './movement/index.js';
|
||||||
|
import Piece, { PieceColor, PieceType } from './piece.js';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
Cell,
|
||||||
|
Movement,
|
||||||
|
Piece,
|
||||||
|
PieceColor,
|
||||||
|
PieceType,
|
||||||
|
Board
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents the game board.
|
||||||
|
*/
|
||||||
class Board {
|
class Board {
|
||||||
/**
|
/**
|
||||||
* @param {number} width
|
* @param {number} width
|
||||||
|
|
@ -51,32 +65,32 @@ class Board {
|
||||||
setupInitialPieces() {
|
setupInitialPieces() {
|
||||||
// Pawns
|
// Pawns
|
||||||
for (let x = 0; x < this.width; x++) {
|
for (let x = 0; x < this.width; x++) {
|
||||||
this.setPiece(x, 1, new Piece(PieceColor.WHITE, PieceType.PAWN));
|
this.setPiece(x, 1, new Piece(PieceColor.WHITE, PieceType.PAWN, [Movement.PawnMove]));
|
||||||
this.setPiece(x, 6, new Piece(PieceColor.BLACK, PieceType.PAWN));
|
this.setPiece(x, 6, new Piece(PieceColor.BLACK, PieceType.PAWN, [Movement.PawnMove]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rooks
|
// Rooks
|
||||||
this.setPiece(0, 0, new Piece(PieceColor.WHITE, PieceType.ROOK));
|
this.setPiece(0, 0, new Piece(PieceColor.WHITE, PieceType.ROOK, [Movement.RookMove]));
|
||||||
this.setPiece(7, 0, new Piece(PieceColor.WHITE, PieceType.ROOK));
|
this.setPiece(7, 0, new Piece(PieceColor.WHITE, PieceType.ROOK, [Movement.RookMove]));
|
||||||
this.setPiece(0, 7, new Piece(PieceColor.BLACK, PieceType.ROOK));
|
this.setPiece(0, 7, new Piece(PieceColor.BLACK, PieceType.ROOK, [Movement.RookMove]));
|
||||||
this.setPiece(7, 7, new Piece(PieceColor.BLACK, PieceType.ROOK));
|
this.setPiece(7, 7, new Piece(PieceColor.BLACK, PieceType.ROOK, [Movement.RookMove]));
|
||||||
|
|
||||||
// Knights
|
// Knights
|
||||||
this.setPiece(1, 0, new Piece(PieceColor.WHITE, PieceType.KNIGHT));
|
this.setPiece(1, 0, new Piece(PieceColor.WHITE, PieceType.KNIGHT, [Movement.KnightMove]));
|
||||||
this.setPiece(6, 0, new Piece(PieceColor.WHITE, PieceType.KNIGHT));
|
this.setPiece(6, 0, new Piece(PieceColor.WHITE, PieceType.KNIGHT, [Movement.KnightMove]));
|
||||||
this.setPiece(1, 7, new Piece(PieceColor.BLACK, PieceType.KNIGHT));
|
this.setPiece(1, 7, new Piece(PieceColor.BLACK, PieceType.KNIGHT, [Movement.KnightMove]));
|
||||||
this.setPiece(6, 7, new Piece(PieceColor.BLACK, PieceType.KNIGHT));
|
this.setPiece(6, 7, new Piece(PieceColor.BLACK, PieceType.KNIGHT, [Movement.KnightMove]));
|
||||||
|
|
||||||
// Bishops
|
// Bishops
|
||||||
this.setPiece(2, 0, new Piece(PieceColor.WHITE, PieceType.BISHOP));
|
this.setPiece(2, 0, new Piece(PieceColor.WHITE, PieceType.BISHOP, [Movement.BishopMove]));
|
||||||
this.setPiece(5, 0, new Piece(PieceColor.WHITE, PieceType.BISHOP));
|
this.setPiece(5, 0, new Piece(PieceColor.WHITE, PieceType.BISHOP, [Movement.BishopMove]));
|
||||||
this.setPiece(2, 7, new Piece(PieceColor.BLACK, PieceType.BISHOP));
|
this.setPiece(2, 7, new Piece(PieceColor.BLACK, PieceType.BISHOP, [Movement.BishopMove]));
|
||||||
this.setPiece(5, 7, new Piece(PieceColor.BLACK, PieceType.BISHOP));
|
this.setPiece(5, 7, new Piece(PieceColor.BLACK, PieceType.BISHOP, [Movement.BishopMove]));
|
||||||
|
|
||||||
// Queens and Kings
|
// Queens and Kings
|
||||||
this.setPiece(3, 0, new Piece(PieceColor.WHITE, PieceType.QUEEN));
|
this.setPiece(3, 0, new Piece(PieceColor.WHITE, PieceType.QUEEN, [Movement.QueenMove]));
|
||||||
this.setPiece(4, 0, new Piece(PieceColor.WHITE, PieceType.KING));
|
this.setPiece(4, 0, new Piece(PieceColor.WHITE, PieceType.KING, [Movement.KingMove]));
|
||||||
this.setPiece(3, 7, new Piece(PieceColor.BLACK, PieceType.QUEEN));
|
this.setPiece(3, 7, new Piece(PieceColor.BLACK, PieceType.QUEEN, [Movement.QueenMove]));
|
||||||
this.setPiece(4, 7, new Piece(PieceColor.BLACK, PieceType.KING));
|
this.setPiece(4, 7, new Piece(PieceColor.BLACK, PieceType.KING, [Movement.KingMove]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -16,14 +16,19 @@ class Piece {
|
||||||
/**
|
/**
|
||||||
* @param {PieceColor} color
|
* @param {PieceColor} color
|
||||||
* @param {PieceType} type
|
* @param {PieceType} type
|
||||||
|
* @param {Array<import('./movement/index.js').default>} movements
|
||||||
*/
|
*/
|
||||||
constructor(color, type) {
|
constructor(color, type, movements) {
|
||||||
/** @type {PieceColor} */
|
/** @type {PieceColor} */
|
||||||
this.color = color;
|
this.color = color;
|
||||||
/** @type {PieceType} */
|
/** @type {PieceType} */
|
||||||
this.type = type;
|
this.type = type;
|
||||||
/** @type {boolean} */
|
/** @type {boolean} */
|
||||||
this.hasMoved = false;
|
this.hasMoved = false;
|
||||||
|
/** @type {Array<import('./movement/index.js').default>} */
|
||||||
|
this.movements = movements;
|
||||||
|
/** @type {Array<import('./movement/index.js').default>} */
|
||||||
|
this.priorityMovements = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue