Jogo educacional de lógica de programação desenvolvido pela IN Junior.
Controle um robô através de comandos e funções para alcançar a estrela! Aprenda conceitos de programação como sequências, loops e recursão de forma divertida e interativa.
- 🤖 Robô Programável - Controle um robô através de comandos simples
- 📋 Fila de Comandos - Visualize e execute sequências de comandos
- 🔄 Funções Recursivas - Crie e reutilize funções (F0, F1, F2)
- 🎯 Níveis Progressivos - 3 níveis com dificuldade crescente
- 🛠️ Editor de Níveis - Crie seus próprios níveis personalizados
- 💾 Persistência - Níveis salvos automaticamente no navegador
- Node.js 18.0 ou superior
- npm ou yarn
# Clone o repositório
git clone https://github.com/IN-Junior/gamin.git
# Entre no diretório
cd gamin
# Instale as dependências
npm install
# Inicie o servidor de desenvolvimento
npm run devO jogo estará disponível em http://localhost:5173
| Comando | Descrição |
|---|---|
npm run dev |
Inicia o servidor de desenvolvimento |
npm run build |
Gera a build de produção |
npm run preview |
Visualiza a build de produção |
npm run lint |
Executa o ESLint |
npm run lint:fix |
Executa o ESLint com auto-correção |
npm run format |
Formata o código com Prettier |
npm run format:check |
Verifica formatação sem alterar |
npm run type-check |
Verifica tipos TypeScript |
src/
├── assets/ # Imagens e recursos
├── components/ # Componentes React
│ ├── common/ # Componentes genéricos reutilizáveis
│ ├── editor/ # Editor de níveis e funções
│ ├── game/ # Componentes do jogo
│ └── layout/ # Header e layout
├── data/ # Configuração de níveis
├── hooks/ # Custom hooks
├── pages/ # Páginas/rotas
├── services/ # Lógica de negócio
├── styles/ # Estilos globais e CSS variables
├── types/ # Definições de tipos TypeScript
└── utils/ # Constantes e utilitários
-
Adicione comandos à fila usando os botões:
- ⬆️ Frente - Move o robô para frente
- ⬅️ Girar Esq - Gira 90° para a esquerda
- ➡️ Girar Dir - Gira 90° para a direita
- F0/F1/F2 - Chama uma função definida
-
Defina funções no editor para criar sequências reutilizáveis
-
Clique em PLAY para executar os comandos
-
Alcance a estrela ⭐ para completar o nível!
- React 19 - Biblioteca de UI
- TypeScript - Tipagem estática
- Vite - Build tool
- React Router - Navegação
- React Icons - Ícones
- ESLint + Prettier - Qualidade de código
- Husky + lint-staged - Git hooks
O projeto segue uma arquitetura modular com separação clara de responsabilidades:
- Components - UI pura, sem lógica de negócio
- Hooks - Estado e lógica reutilizável (
useGame,useCommands) - Services - Lógica de negócio pura (
gameEngine) - Types - Tipos centralizados para todo o projeto
- Data - Configurações e dados estáticos
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Add: MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
Usamos Conventional Commits:
feat:- Nova funcionalidadefix:- Correção de bugdocs:- Documentaçãostyle:- Formatação/estilorefactor:- Refatoraçãotest:- Testeschore:- Tarefas de manutenção
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
A IN Junior é a empresa júnior de Computação da Universidade Federal Fluminense (UFF). Desenvolvemos soluções tecnológicas inovadoras enquanto formamos os profissionais do futuro.
Feito com 💙 pela IN Junior
