SyntaxSquad/DADProject#46 SyntaxSquad/DADProject#47 added sockets for game joining and card play
This commit is contained in:
+14
-34
@@ -1,49 +1,29 @@
|
||||
// websockets/state/game.js
|
||||
const BiscaGame = require("../classes/BiscaGame");
|
||||
|
||||
// Importamos a classe que criaste no Passo 1
|
||||
const BiscaGame = require('../classes/BiscaGame');
|
||||
|
||||
// Aqui guardamos todos os jogos a decorrer na memória RAM do servidor
|
||||
// Chave: ID do jogo (matchId) -> Valor: Instância do Jogo (O objeto com o baralho, mãos, etc)
|
||||
const activeGames = new Map();
|
||||
|
||||
/**
|
||||
* Cria um novo jogo, guarda-o na memória e retorna-o.
|
||||
*/
|
||||
const createGame = (id, type, player1, player2) => {
|
||||
// 1. Instanciar a classe (Criar o jogo com as regras)
|
||||
const game = new BiscaGame(id, type, player1, player2);
|
||||
|
||||
// 2. Preparar o jogo (Baralhar, dar cartas iniciais)
|
||||
game.init();
|
||||
const game = new BiscaGame(id, type, player1, player2);
|
||||
|
||||
// 3. Guardar no "Armazém" para não se perder
|
||||
activeGames.set(id, game);
|
||||
game.init();
|
||||
|
||||
console.log(`[Game State] Jogo criado: ${id} (Tipo: ${type})`);
|
||||
return game;
|
||||
activeGames.set(id, game);
|
||||
|
||||
console.log(`[Game State] Game created: ${id} (Type: ${type})`);
|
||||
return game;
|
||||
};
|
||||
|
||||
/**
|
||||
* Busca um jogo existente pelo ID.
|
||||
* Usado sempre que um jogador envia uma carta, para sabermos a qual jogo pertence.
|
||||
*/
|
||||
const getGame = (id) => {
|
||||
return activeGames.get(id);
|
||||
return activeGames.get(id);
|
||||
};
|
||||
|
||||
/**
|
||||
* Remove o jogo da memória.
|
||||
* Usado quando o jogo acaba para libertar RAM.
|
||||
*/
|
||||
const removeGame = (id) => {
|
||||
activeGames.delete(id);
|
||||
console.log(`[Game State] Jogo removido: ${id}`);
|
||||
activeGames.delete(id);
|
||||
console.log(`[Game State] Game removed: ${id}`);
|
||||
};
|
||||
|
||||
// Exportamos estas funções para serem usadas no ficheiro de eventos
|
||||
module.exports = {
|
||||
createGame,
|
||||
getGame,
|
||||
removeGame
|
||||
};
|
||||
createGame,
|
||||
getGame,
|
||||
removeGame,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user