Skip to content
/ Termo Public

Projeto desenvolvido com o intuito de recriar o jogo Termo na linguagem Python

Notifications You must be signed in to change notification settings

AdielSM/Termo

Repository files navigation

🧩Termo

TERMO

Projeto desenvolvido para simular o jogo de palavras Termo, onde o jogador deve advinhar a palavra proposta pelo jogo.

🔑 Índices

🔧 Funcionalidades

  • O jogo sorteia uma palavra aleatória de um arquivo e recebe palavras do usuário até que haja tentativas disponíveis.
  • O jogo possui um sistema de pontuação que é calculado com base no número de tentativas restantes e no tempo gasto na rodada.
  • O jogo possui um servidor que pode ser acessado por múltiplos clientes que estejam na mesma rede.
  • O cliente pode se conectar ao servidor que desejar, desde que esteja na mesma rede.
  • O jogo possui um sistema de desconexão por inatividade, onde o jogador é desconectado do servidor caso fique inativo por 150 segundos.

💻 Instalação

Passo a Passo

Para iniciar o jogo, é necessário ter o Python instalado em sua máquina. A versão utilizada deve ser a 3.11.6 ou superior.

Após a instalação do Python, instale o Git para clonar o repositório do jogo. Concluido isto, execute o seguinte comando no terminal do seu sistema operacional:

git clone https://github.com/AdielSM/Termo
cd Termo
code .

Feito isso, é necessário iniciar um ambiente virtual para instalar as dependências do jogo. Para isso, execute o seguinte comando no terminal:

python -m venv venv

# No Windows
venv\Scripts\activate

# No Linux ou MacOS
source venv/bin/activate

No windows, pode haver um erro ao executar o comando acima. Caso isso ocorra, execute o seguinte comando no powershell:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

caso o erro persista, execute o seguinte comando:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

Note que o comando que não possui o parâmetro RemoteSigned permite a execução de scripts não assinados. Para mais informações, acesse este link.

Depois da ativação do ambiente virtual, execute o seguinte comando para instalar as dependências do jogo:

pip install -r requirements.txt

Após a instalação das dependências, é necessário iniciar o servidor do jogo. Para isso, execute o seguinte comando:

python run_server.py

Após a inicialização do servidor, é necessário iniciar o cliente do jogo. Para isso, execute o seguinte comando:

python run_client.py

🚀 Tecnologias

As seguintes tecnologias foram utilizadas no desenvolvimento do projeto:

👨‍💻 Autores

LinkedIn GitHub LinkedIn GitHub LinkedIn GitHub

📂 Arquivos do Projeto

Pasta/Arquivo Descrição
📂Client/ Pasta que contém os arquivos do Cliente.
ㄴ 📄__init__.py Arquivo de inicialização que importa a Classe Client.
ㄴ 📄client.py Arquivo que possui a responsabilidade de gerenciar o funcionamento do Cliente.
📂Server/ Pasta que contém os arquivos do Servidor.
ㄴ 📄__init__.py Arquivo de inicialização para o Servidor.
ㄴ 📄AVLtree.py Arquivo que contém a Árvore AVL.
ㄴ 📄classes_exceptions.py Arquivo de exceções personalizadas utilizadas no Projeto.
ㄴ 📄player.py Arquivo que possui a Classe que representa um jogador do jogo.
ㄴ 📄server.py Arquivo que possui a responsabilidade de gerenciar o funcionamento do Servidor.
ㄴ 📄termo.py Arquivo que possui a responsabilidade de gerenciar o funcionamento do Jogo Termo.
ㄴ 📄termo_words_loader.py Arquivo para carregar a palavra secreta que será sorteada e utilizada em cada jogo.
ㄴ 📄words_loader.py Arquivo que carrega palavras para verificar se a tentativa de jogador é válida.
📂docs/ Pasta que contém os arquivos de imagens e página de regras
ㄴ 📄index.html Arquivo de regras gerais do jogo Termo.
ㄴ 📂img/ Pasta que contém os arquivos de imagens utilizadas na página de Regras.
📂img/ Pasta que contém os arquivos de imagens utilizadas no README.
📂utils/ Pasta que contém os arquivos utilitários, como configurações de Servidor e sumário de Protocolo.
ㄴ 📄__init__.py Arquivo que importa a Lista e o sumário de Protocolo.
ㄴ 📄LinkedStack.py Pilha encadeada em python.
ㄴ 📄server_config.py Arquivo que retorna as configurações do Servidor.
ㄴ 📄server_config.txt Arquivo que contém as configurações do Servidor (TAM_MSG e PORT).
ㄴ 📄summary_protocol.py Retorna um dicionário com as informações do protocolo.
ㄴ 📄summary_protocol.txt Sumário de Protocolo que contém as mensagens enviadas e seu respectivo código de status.
📂words_bank/ Pasta que contém os arquivos txt das palavras para o funcionamento do Termo.
ㄴ 📄bd.txt Arquivo que contém um banco de palavras para testar se a tentativa do jogador é válida.
ㄴ 📄bd_termo.txt Arquivo que contém um banco de palavras que serão utilizadas no jogo Termo.
📄.gitIgnore Arquivo de configuração usado pelo Git para especificar quais arquivos e diretórios devem ser ignorados.
📄README Arquivo README.
📄protocol.md Arquivo que contém os comandos do protocolo e o status code retornado.
📄requirements.txt Arquivo que contém as dependências necessárias para poder iniciar o Termo.
📄run_client.py Arquivo para rodar o cliente.
📄run_server.py Arquivo para rodar o servidor.

👟 Próximos passos

  • Estabelecer um banco de dados para armazenar os dados dos jogadores para conseguir fazer um ranking com todos os participantes.

  • Implementar um sistema de party para que os jogadores possam jogar em salas com seus amigos.

  • Implementar um sistema de dicas que possa ser utilizado pelo jogador durante a partida.

  • Produzir uma interface gráfica para o jogo.

About

Projeto desenvolvido com o intuito de recriar o jogo Termo na linguagem Python

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages