A
Anonymous

Monopoly Game - Copy this React, Tailwind Component to your project

Amei o primeiro modelo: agora coloque as rotas do back-end: const express = require('express'); const JogoController = require('../controllers/JogoController'); const JogadorController = require('../controllers/JogadorController'); const MapaController = require('../controllers/MapaController'); const router = express.Router(); const jogoController = new JogoController(); const jogadorController = new JogadorController(); const mapaController = new MapaController(); // Criar novo jogo router.post('/novo', (req, res) => { try { const { jogadores } = req.body; const jogo = jogoController.criarNovoJogo(jogadores); res.status(201).json({ mensagem: 'Jogo criado com sucesso', jogoId: jogo.id, jogadores: jogo.jogadores.map(j => ({ nome: j.nome, dinheiro: j.dinheiro })) }); } catch (error) { res.status(400).json({ erro: error.message }); } }); // Executar turno router.post('/turno', (req, res) => { try { const resultado = jogoController.executarTurno(); res.status(200).json(resultado); } catch (error) { res.status(500).json({ erro: error.message }); } }); // Comprar cidade router.post('/comprar-cidade', (req, res) => { try { const { jogadorId, cidadeId } = req.body; const jogador = jogadorController.obterJogadorPorId(jogadorId); const cidade = mapaController.obterCidadePorId(cidadeId); if (!jogador || !cidade) { return res.status(404).json({ erro: 'Jogador ou cidade não encontrado' }); } const resultado = jogadorController.comprarCidade(jogador, cidade); res.status(200).json({ sucesso: resultado, mensagem: resultado ? 'Cidade comprada com sucesso' : 'Não foi possível comprar a cidade' }); } catch (error) { res.status(400).json({ erro: error.message }); } }); // Informações da casa router.get('/casa/:posicao', (req, res) => { try { const posicao = parseInt(req.params.posicao); const mapaController = new MapaController(jogoController.jogoEmAndamento.mapa); const informacoes = mapaController.obterInformacoesCasa(posicao); res.status(200).json(informacoes); } catch (error) { res.status(404).json({ erro: error.message }); } }); router.get('/cidades', (req, res) => { const mapaController = new MapaController(jogo.mapa); const cidades = mapaController.listarCidades(); res.json(cidades); }); // Proteger cidade router.post('/proteger-cidade', (req, res) => { try { const { jogadorId, cidadeId } = req.body; const jogador = jogadorController.obterJogadorPorId(jogadorId); const cidade = mapaController.obterCidadePorId(cidadeId); if (!jogador || !cidade) { return res.status(404).json({ erro: 'Jogador ou cidade não encontrado' }); } const mensagem = jogoController.protegerCidade(jogador, cidade); res.status(200).json({ mensagem }); } catch (error) { res.status(400).json({ erro: error.message }); } }); // Atacar cidade router.post('/atacar-cidade', (req, res) => { try { const { jogadorId, cidadeAlvoId } = req.body; const jogador = jogadorController.obterJogadorPorId(jogadorId); const cidadeAlvo = mapaController.obterCidadePorId(cidadeAlvoId); if (!jogador || !cidadeAlvo) { return res.status(404).json({ erro: 'Jogador ou cidade alvo não encontrado' }); } const mensagem = jogoController.atacarCidade(jogador, cidadeAlvo); res.status(200).json({ mensagem }); } catch (error) { res.status(400).json({ erro: error.message }); } }); // Sediar Olimpíadas router.post('/sediar-olimpiadas', (req, res) => { try { const { jogadorId, cidadeId } = req.body; const jogador = jogadorController.obterJogadorPorId(jogadorId); const cidade = mapaController.obterCidadePorId(cidadeId); if (!jogador || !cidade) { return res.status(404).json({ erro: 'Jogador ou cidade não encontrado' }); } const mensagem = jogoController.sediarOlimpiadas(jogador, cidade); res.status(200).json({ mensagem }); } catch (error) { res.status(400).json({ erro: error.message }); } }); // Perder dinheiro router.post('/perder-dinheiro', (req, res) => { try { const { jogadorId, valor } = req.body; const jogador = jogadorController.obterJogadorPorId(jogadorId); if (!jogador) { return res.status(404).json({ erro: 'Jogador não encontrado' }); } const mensagem = jogoController.perderDinheiro(jogador, valor); res.status(200).json({ mensagem }); } catch (error) { res.status(400).json({ erro: error.message }); } }); // Rolar dado router.post('/rolar-dado', (req, res) => { try { const { jogadorId } = req.body; const resultado = jogoController.rolarDado(jogadorId); res.status(200).json(resultado); } catch (error) { res.status(400).json({ erro: error.message }); } }); // Pagar aluguel router.post('/pagar-aluguel', (req, res) => { try { const { jogadorId, valorAluguel, proprietarioId } = req.body; const jogador = jogadorController.obterJogadorPorId(jogadorId); const proprietario = jogadorController.obterJogadorPorId(proprietarioId); if (!jogador || !proprietario) { return res.status(404).json({ erro: 'Jogador ou proprietário não encontrado' }); } const resultado = jogadorController.pagarAluguel(jogador, valorAluguel, proprietario); res.status(200).json({ sucesso: resultado, mensagem: resultado ? 'Aluguel pago com sucesso' : 'Não foi possível pagar o aluguel' }); } catch (error) { res.status(400).json({ erro: error.message }); } }); // Verificar estado do jogador router.get('/estado-jogador/:jogadorId', (req, res) => { try { const jogador = jogadorController.obterJogadorPorId(req.params.jogadorId); if (!jogador) { return res.status(404).json({ erro: 'Jogador não encontrado' }); } res.status(200).json(jogador); } catch (error) { res.status(404).json({ erro: error.message }); } }); module.exports = router;

Prompt

About

MonopolyGame - Create, manage, and play a Monopoly game with features like city buying, player turns, and more, built with React and T. Download code free!

Share

Last updated 1 month ago