Skip to content

Tema proposto para o grupo 2 na disciplina de Programação Modular 2021.1 PUC-Rio. Jogo de computador baseado no jogo de tabuleiro "Senha".

Notifications You must be signed in to change notification settings

MarcosChaarBR/mastermind2021-puc

 
 

Repository files navigation

Mastermind 2021 - Documentação Escrita por David Wolff

$mastermindv2_6 é um jogo de computador desenvolvido em python, baseado no jogo de tabuleiro "Megasenha", respeitando as regras da versão de tabuleiro e extendendo-se por mais níveis de dificuldade.


Objetivo do Jogo e como jogar:

    O adversário (cpu) escolhe uma senha entre 4 e 6 dígitos (dependendo do nível de dificuldade selecionado) no intervalo de 1 a 7, aleatórios, podendo ou não se repetir ao longo da senha. O usuário deve tentar acertar a combinação proposta, respeitando o limite de 8 a 12 tentativas (dependendo do nível de dificuldade selecionado).

    Quando o usuário recebe o feedback de sua jogada, a seguinte interpretação deve ser considerada para realizar a próxima jogada: 

        - "X" nas casas em que o dígito escolhido pelo usuário na última jogada não está presente na senha atual.

        - "?" nas casas em que o dígito escolhido pelo usuário na última jogada está presente na senha atual mas em outra casa.

        - "dígito" para as casas que o usuário tiver acertado o próprio dígito em questão e sua posição em jogadas anteriores. 

Módulos e Bibliotecas

  • main.py -> Módulo de acesso que controla a execução da aplicação e contém as chamadas das funções que iniciam e/ou finalizam a partida.

  • connection.py -> Módulo que contém a conexão e comunicação entre o módulo principal e o banco de dados mySql criado pelo programa no servidor local. Este funciona de maneira que a cada partida, o programa armazena informações (nome do jogador, quantidade de tentativas e resultado final) em tabelas referentes aos diferentes níveis de dificuldade em seu banco de dados reservado "partidasMastermind2_6". O programa busca pela pela existência deste mesmo banco de dados no servidor local, caso exista, as informações são armazenadas no mesmo, caso não exista, um banco de dados "partidasMastermind2_6" é criado após a partida armazenando os dados do primeiro usuário em diante.

  • partida.py -> Módulo que contém a definição das funções que controlam o funcionamento das partidas. Recebe informações do usuário para obter o nível de dificuldade.

    • test_partida.py -> Contém os casos de teste para a função que gera a senha do computador e para a função que recebe o nível em que o usuário deseja jogar.
  • jogada.py -> Módulo que contém a definição da função responsável por receber a senha ecolhida pelo usuário a cada tentativa.

  • feedback.py -> Módulo contendo a definição das funções que recebem e/ou operam dados dos módulos partida.py e jogada.py, comparando o valor de retorno das funções destes 2 módulos para avaliar a jogada mais recente do usuário e então, interromper ou prosseguir a execução da aplicação (dependendo do número de tentativas ou do acerto de todas as casas na jogada, a execução é interrompida).

    • test_feedback.py -> Contém casos de teste para a função que checa a quantidade de dígitos na jogada do usuário e para a função que retorna o feedback da jogada do usuário.
  • unittest : Biblioteca utilizada para realizar os testes automatizados, a documentação encontra-se em: Unittest Documentation


Funcionalidades

  • O jogo pode ser iniciado em 3 dificuldades, representando a senha em 4, 5 ou 6 dígitos (cores) respectivamente.

  • A estrutura do código é responsiva quanto à entradas incompatíveis do usuário.

  • Dados das partidas são enviados ao banco de dados local, especificamente: o nível escolhido, nome do jogador, numero de tentativas e seu resultado.

  • Um arquivo .xml é gerado após a execução do programa, contendo os dados referentes às partidas, armazenados neste arquivo de acordo com o nível selecionado na última partida.


Instalação

Para instalar e executar o projeto $mastermind2021 basta seguir os seguintes passos:

- fazer o download da pasta mastermind2021V2_6 ($git clone path/pc/example https://github.com/david-wolff/mastermind2021.git) 

- extrair os arquivos da pasta mastermind2021V2_6 para uma 
  pasta na máquina em que o jogo será executado.

- abrir a pasta na qual o projeto foi extraído e executar o arquivo 
  main.py através de uma IDE ou através de uma prompt de comando:

            $cd mastermind2021V2_6


            $python main.py 
  
                     ou
            
            $python3 main.py 

- Instalar o SGBD mySql e logar com user (root) e senha (root) servidor local da máquina host. Documentação mySql https://dev.mysql.com/doc/mysql-getting-started/en/

Versionamento


Apoio e objetivo

Esta é uma atividade proposta pela PUC-Rio (Rio de Janeiro, Brasil)
durante o curso da disciplina de Programação Modular (2021.2 - 3WB -
Prof. Flavio Bevilacqua),
com tema escolhido pela própria turma, destinada exclusivamente à
fins acadêmicos.


O projeto está sendo desenvolvido pela equipe de graduandos:

    - David Wolff Salles de Oliveira
    - João Gabriel Cavalcanti D Nielsen 
    - Laís Corbellini Fagundes 
    - Matheus Amaral Mendes Freitas

About

Tema proposto para o grupo 2 na disciplina de Programação Modular 2021.1 PUC-Rio. Jogo de computador baseado no jogo de tabuleiro "Senha".

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%