added movements to the pieces

This commit is contained in:
Didictateur 2025-10-16 08:32:45 +02:00
parent 0a8507b90c
commit e1fe63cf89
3 changed files with 42 additions and 21 deletions

View file

@ -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.

View file

@ -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]));
} }
} }

View file

@ -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 = [];
} }
/** /**