Corrida Pelo Tesouro é um jogo multiplayer onde os jogadores competem para coletar tesouros espalhados em um mapa. O jogo inclui um mapa principal e várias salas do tesouro, onde os jogadores podem entrar para coletar mais tesouros. O objetivo é coletar o máximo de tesouros possível e alcançar a maior pontuação.
- Competição: Jogadores competem entre si para coletar tesouros e alcançar a maior pontuação.
- Exploração: Jogadores exploram o mapa principal e as salas do tesouro em busca de tesouros.
- Multiplayer: Suporte para múltiplos jogadores conectados ao mesmo tempo.
- Movimentação: Jogadores podem se mover pelo mapa usando comandos de teclado.
- Coleta de Tesouros: Jogadores podem coletar tesouros espalhados pelo mapa.
- Salas do Tesouro: Jogadores podem entrar em salas do tesouro para coletar mais tesouros.
- Ranking: Exibição de um ranking dos jogadores com base na pontuação acumulada.
- Python 3
- Bibliotecas padrão do Python:
socket
: Utilizada para comunicação entre cliente e servidor.threading
: Utilizada para gerenciar múltiplas conexões de clientes simultaneamente.socket
: Utilizado para gerenciar as salas do tesouro com Semáforos e criação da interação Cliente-Servidortime
: Utilizada para gerenciar temporizações no jogo.random
: Utilizada para gerar posições aleatórias no mapa.os
: Utilizada para interações com o sistema operacional, como manipulação de arquivos e diretórios.sys
: Utilizada para manipular parâmetros e funções do sistema.python-dotenv
: Utilizada para manipulação de variáveis de ambiente
- Sistema Operacional: O código deve funcionar em qualquer sistema operacional que suporte Python 3, incluindo Windows, macOS e Linux.
-
Crie um arquivo
.env
na raiz do projeto com as seguintes variáveis de ambiente preenchidas como exemplo:IP_PRIVADO=localhost IP_PUBLICO=localhost PORTA=8080
-
Execute o servidor:
python corrida-pelo-tesouro/server/servidor.py
-
Execute um cliente:
python corrida-pelo-tesouro/client/cliente.py
-
Repita o passo 2 para cada cliente/jogador adicional que deseja conectar ao servidor.
-
'w'
: Move o jogador para cima. -
'a'
: Move o jogador para a esquerda. -
's'
: Move o jogador para baixo. -
'd'
: Move o jogador para a direita. -
'entrar'
: Entra na sala do tesouro (se o jogador estiver em uma posição de entrada). -
'sair'
: Desconecta do jogo ou sai da sala do tesouro. -
client/cliente.py: Código do cliente que conecta ao servidor e permite que o jogador envie comandos e receba atualizações.
-
models/colors.py: Definições de cores para exibição no console.
-
models/mapa.py: Implementação da classe Mapa que representa o mapa do jogo.
-
server/servidor.py: Código do servidor que gerencia o jogo, incluindo a lógica de movimentação, coleta de tesouros e salas do tesouro.
Veja o arquivo Documentação para mais detalhes.