GithubHelp home page GithubHelp logo

labirintoratocego's Introduction

LabirintoRatoCego

O Labirinto do Rato Cego é um jogo que tem como objetivo motivar e tornar a aprendizagem mais significativa para os estudantes de disciplinas iniciais de programação, através da teoria de Aprendizagem Significativa e da Aprendizagem Baseada em Problemas.

Nele, o jogador deve criar um código que guie um rato cego por um labirinto até a saída. O jogo é composto por três componentes: o Criador de Labirintos, a Interface do Labirinto do Rato Cego e o Rato Cego.


Através do componente Criador de Labirintos, definido na classe MapRenderer, os usuários podem elaborar seus próprios mapas. É possível selecionar a altura e largura do mapa e desenhar o labirinto, definindo pontos de decisão, caminhos, pontos de início e fim, e caminhos proibidos.


A Interface do Labirinto do Rato Cego proporciona aos jogadores uma visualização gráfica para selecionar configurações pré-jogo, como o labirinto, a quantidade de jogadores e o arquivo de movimento de cada rato. Por meio dessa interface, os jogadores também acompanham a movimentação de todos os ratos no labirinto, tentando encontrar a saída, e conferem o ranking final com a colocação de cada participante.


O componente Rato Cego é representa a comunicação entre o arquivo ratoCego.cpp e o código criado pelo jogador. Com essa comunicação é criado o arquivo de movimento do rato, que é utilizado pela Interface do Labirinto do Rato Cego para simular a movimentação do rato no labirinto.

Como rodar

  • Instalação das Bibliotecas: certifique-se de ter as bibliotecas necessárias instaladas: SDL2, SDL2_ttf e SDL2_image

Link ensinando a instalar e configurar bibliotecas adicionais (as bibliotecas usadas no Labirinto do Rato Cego seguem o mesmo guia).

  • Clone do Repositório no GitHub

Sistemas baseados em Linux

Interface do Labirinto do Rato Cego

Passos para a execução do componente Interface do Labirinto do Rato Cego:

  • Passo 1: estando no diretório raiz do repositório execute o makefile
make
  • Passo 2: estando no diretório raiz do repositório execute o programa com o comando:
./RatoCego

Criador de Labirintos

Passos para a execução do componente Criador de Labirintos:

  • Passo 1: estando no diretório raiz do repositório execute o makefile:
make
  • Passo 2: estando no diretório raiz do repositório execute o programa com o comando:
cd CriadorLabirinto && ../MapGenerator

Rato Cego

Passos para a execução do componente Rato Cego:

  • Passo 1: acesse o diretório /RatoCego do repositório
  • Passo 2: compile o arquivo ratoCego.cpp com o comando:
g++ ratoCego.cpp -o rc
  • Passo 3: compile, se necessário, o código criado pelo jogador
  • Passo 4: crie o arquivo FIFO com o comando:
mkfifo tmpfifo
  • Passo 5: estabeleça a comunicação entre o ratoCego.cpp e o código do jogador via pipe com o comando:
timeout 3s codigo_jogador < tmpfifo | ./rc ../assets/maps/mapa.txt > tmpfifo

Windows

Interface do Labirinto do Rato Cego

Passos para a execução do componente Interface do Labirinto do Rato Cego:

  • Passo 1: abra o projeto LabirintoRatoCego.sln, localizado na pasta raiz do repositório, utilizando o Visual Studio 2022.
  • Passo 2: certifique-se de que a configuração de compilação está definida para x64. image
  • Passo 3: use o Depurador Local do Windows (Local Windows Debugger) para construir e executar o jogo. image

Criador de Labirintos

Passos para a execução do componente Criador de Labirintos:

  • Passo 1: abra o projeto CriadorLabirinto.sln, encontrado no caminho LabirintoRatoCego/CriadorLabirinto/ do repositório, no Visual Studio 2022.
  • Passo 2: certifique-se de que a configuração de compilação está definida para x64. image
  • Passo 3: use o Depurador Local do Windows (Local Windows Debugger) para construir e executar o programa. image

Rato Cego

Link da própria Microsoft ensinando a configurar o WSL2 Passos para a execução do componente Rato Cego no Windows (necessário WSL2):

  • Passo 1: abra o terminal do WSL2.
  • Passo 2: acesse o diretório /RatoCego do repositório:
  • Passo 3: compile o arquivo ratoCego.cpp com o comando:
g++ ratoCego.cpp -o rc
  • Passo 4: compile, se necessário, o código criado pelo jogador
  • Passo 5: crie o arquivo FIFO com o comando:
mkfifo tmpfifo

OBS.: Caso esse comando não funcione no terminal que está aberto o repositório, faça o comando no diretório raiz do WSL, acesse esse diretório com o comando:

cd ~

Para voltar para o diretório do jogo, o comando é:

cd /mnt/letra_disco/caminho_para_o_repositorio/

Criando a FIFO no diretório raiz, o caminho para acessá-la no passo 6 será:

~/tmpfifo
  • Passo 6: estabeleça a comunicação entre o ratoCego.cpp e o código do jogador via pipe com o comando:
timeout 3s codigo_jogador < tmpfifo | ./rc ../assets/maps/mapa.txt > tmpfifo

labirintoratocego's People

Contributors

ianfpferreira avatar edsomjr avatar

Watchers

 avatar  avatar

Forkers

hb-fga

labirintoratocego's Issues

US01 - Módulo de geração de labirintos

Tarefas

  • Gerar labirinto através de arquivo de texto através de pontos chaves
  • Labirinto representado por blocos diferentes que simbolizam bloco proibido ou permitido
  • Criação de mapas exemplos

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.