Classe du Jeu (Coté Serveur)

Cette section détaille les principales classes qui constituent le modèle de données du jeu. Ces classes représentent les entités fondamentales comme les parties en cours, les joueurs, la grille de jeu, et les objets, formant ainsi la structure de données sur laquelle repose l'ensemble du système.

OnGoingGame (on-going-game.ts)

Classe qui représente une partie en cours, avec sa logique de jeu et son état.

Propriétés importantes

Méthodes

constructor(newGame: Game = new Game(MEDIUM_GRID_SIZE, 'CTF'), newCode: string = '', adminPlayer: Player = new Player())
assignUniqueIds(): void
nextCurrentPlayer(): void
findPlayerbyName(name: string)
findPlayerByUniqueId(uniqueId: string)
addPlayer(player: Player): void
removePlayer(player: Player): void
isLimitOfPlayersReached(): boolean
getAvailableAvatars(): string[]
getAvailableBotNames(): string[]
getNumberOfPlayersDisconnected(): number
isAdmin(player: Player): boolean
isIceCell(row: number, col: number): boolean
changeStateLocked()
initGame()

Méthodes de pathfinding et d'action

Ces méthodes sont déléguées à OnGoingGamePathFinding et gèrent les déplacements. Importance: Très élevée - Mécaniques de mouvement.

Méthodes de gestion des objets

Ces méthodes sont déléguées à OnGoingGameItemHandling et gèrent les objets.
Importance: Très élevée - Mécaniques d'objets.

setDebug(isDebug: boolean): void

Player (player.ts)

Classe qui représente un joueur dans le jeu.

Propriétés importantes

Déjà détaillées dans la section "Gestion des Joueurs"

Méthodes

Déjà détaillées dans la section "Gestion des Joueurs"

Bot, AggressiveBot, DefensiveBot

Classes qui représentent les joueurs virtuels (IA).

Propriétés et méthodes importantes

Déjà détaillées dans la section "Gestion des Joueurs"

Game (game.ts)

Classe qui représente la configuration d'un jeu (plateau, règles).

Propriétés importantes

Méthodes

constructor(grid: Grid, name: string)

Grid (grid.ts)

Classe qui représente la grille de jeu.

Propriétés importantes

Méthodes

constructor(size: number)
initializeMatrix(): Cell[][]

Cell (cell.ts)

Classe qui représente une cellule de la grille.

Propriétés importantes

Méthodes

constructor(isOccupied: boolean, item: Item, positionX: number, positionY: number)

Item (item.ts)

Classe qui représente un objet dans le jeu.

Propriétés et méthodes importantes

Déjà détaillées dans la section "Gestion des Objets et Items"

Timer (timer.ts)

Classe qui gère les minuteurs du jeu.

Propriétés importantes

Méthodes

constructor(duration: number, onUpdate: (time: number) => void, onEnd: () => void)
startTimer()
stopTimer(): void
pauseTimer(): void
resumeTimer(): void
private resetTimer(): void
private updateTimer()

Relations d’héritage et d’interface

Compositions et agrégations