Git Product home page Git Product logo

hangman-game's Introduction

Trabalho - Unidade 1 - LP1 - T01 (2022.1)

Componentes:

  • Danrley Lima
  • Lucas Morais

Jogo da Forca!

Banco de palavras

O banco de palavras original recebe todas as palavras do Corpus da Língua Portuguesa Brasileira, resultando em 3756236 palavras diferentes. Para atender os requísitos do trabalho, foi utilizado um script em python para tratar e filtrar o arquivo.


O Script .py faz as seguintes alterações:

  • Separa a palavra da frequência ao encontrar um espaço em branco na linha;
  • Usa um dicionário para ignorar acentos e filtrar caracteres especiais:

    image
    Obs: troca os caracteres especiais por espaço vazio '', e os hífens por um espaço em branco ' '.

  • Transforma qualquer letra minúscula em maiúscula;
  • Remove as palavras que contenham menos de 5 letras;
  • Remove as palavras com frequência menor que 10;
  • Junta a frase e a frequência e separa-os por ';' e no final quebra a linha e escreve no arquivo novo:

    image


O arquivo gerado pode ser encontrar na pasta data com o nome 'palavrasFormatadas.txt'. Optamos por filtrar as palavras com frequências menores que 10 para facilitar no uso do programa (leitura rápida do arquivo), mas não interfere em seu funcionamento.

Documento de Especificação

Para melhor entendimento do objetivo do trabalho, acesse: Especificação do Trabalho 1.

  • Linguagem de programação

    • C++
  • Requisítos de compilação

    • CMAKE
      CMAKE
    • GCC
      GCC

  • Como criar e executar o arquivo .exe

    • Abra o terminal na pasta dos arquivos e digite:

      1. mkdir build
      2. cd build
      3. cmake ..
      4. cmake --build .
      5. ./program ../data/palavrasFormatadas.txt ../data/scores.txt

    • Repetir apenas o último comando caso já tenha executado os anteriores e queira iniciar o programa novamente


  • Validação dos arquivos (TESTES)

    • Após ter criado a pasta build e usado o 'cmake --build .', digite os seguintes comandos de testes no terminal:
  • Arquivo das PALAVRAS

    • Para testar o caso "Arquivo (palavras) Inexistente":

      ./program ../data/palavras_teste.txt ../data/scores.txt
      

      Saída esperada: < Erro! Arquivo das palavras inexistente. >

    • Para testar o caso "Palavras com caracteres que não estejam entre [a - z|A - Z], ‘ ‘(espaço em branco) ou hífen ‘-’":

      ./program ../data/arquivos_testes_palavras/palavras_caracteres_invalidos.txt ../data/scores.txt
      

      Saída esperada: < Palavra "$OBR&" inválida na linha 3. >

    • Para testar o caso "Palavras que não tenham sua frequência correspondente, ou a frequência não seja um número inteiro positivo":

      • Frequência vazia/inexistente:

        ./program ../data/arquivos_testes_palavras/palavras_frequencia_inexistente.txt ../data/scores.txt
        

        Saída esperada: < A palavra "SISTEMA" na linha 25, não possui frequência. >

      • Frequência negativa:

        ./program ../data/arquivos_testes_palavras/palavras_frequencia_negativa.txt ../data/scores.txt
        

        Saída esperada: < A palavra "FORAM" na linha 4, não possui frequência positiva. >

    • Para testar o caso "Palavras com tamanho menor ou igual a 4":

      ./program ../data/arquivos_testes_palavras/palavras_menores.txt ../data/scores.txt
      

      Saída esperada: < Erro! A palavra TEM na linha 17 contém menos de 5 letras. >

  • Arquivo dos SCORES

    • Para testar o caso "Arquivo (scores) Inexistente":

      ./program ../data/palavrasFormatadas.txt ../data/scores_teste.txt
      

      Saída esperada: < Erro! Arquivo das scores inexistente. >

    • Para testar o caso "Presença de mais ou menos que 3 “;” em alguma linha":

      • Mais de 3 ';':

        ./program ../data/palavrasFormatadas.txt ../data/arquivos_testes_scores/scores_mais_de.txt
        

        Saída esperada: < Erro! Mais de 3 ';' na linha: 2 >

      • Menos de 3 ';':

        ./program ../data/palavrasFormatadas.txt ../data/arquivos_testes_scores/scores_menos_de.txt
        

        Saída esperada: < Erro! Menos de 3 ';' na linha: 1 >

    • Para testar o caso "Qualquer um dos campos: "nível de dificuldade”, “nome” ou “pontuação” vazios":

      ./program ../data/palavrasFormatadas.txt ../data/arquivos_testes_scores/scores_campo_vazio.txt
      

      Saída esperada: < Algum campo vazio na linha: 4 >

hangman-game's People

Contributors

lucas-morais27 avatar danrley-lima avatar github-classroom[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.