Um Jogo Educativo de Quiz Sobre Programação
- Visão Geral
- Características Principais
- Pré-requisitos
- Como Executar
- Configuração do Arquivo JSON
- Estrutura do Projeto
- Guia do Jogador
- Desenvolvedores
Dev Game Quest é um jogo educativo interativo desenvolvido em C puro (sem dependências externas) que permite ao jogador testar seus conhecimentos em programação através de um sistema de quiz dinâmico e progressivo.
O jogo foi concebido como ferramenta pedagógica para consolidar aprendizado em conceitos de computação, oferecendo uma experiência gamificada com sistema de recompensas, múltiplas dificuldades e recursos especiais.
- Educação Interativa: Perguntas organizadas por nível de dificuldade
- Sem Dependências Externas: Utiliza apenas bibliotecas padrão do C
- Portabilidade: Compila facilmente em sistemas Windows
- Escalabilidade: Banco de perguntas dinâmico via arquivo JSON
| Recurso | Descrição |
|---|---|
| Sistema de Níveis | 5 níveis progressivos com dificuldades crescentes |
| Vidas e Pontos | Comece com 1 vida e ganhe moedas por acertos |
| Dicas Inteligentes | Use até 3 dicas para orientação nas respostas |
| Pulos Estratégicos | Pule perguntas difíceis sem penalizar sua vida |
| Trocas de Perguntas | Troque a pergunta atual por outra do mesmo nível |
| Sistema de Loja | Compre vidas, dicas, pulos e trocas com moedas ganhas |
| Banco de Perguntas Dinâmico | Carregue perguntas de arquivo JSON personalizado |
| Interface Responsiva | Interface adaptável à largura do terminal |
- Compilador GCC: MinGW ou equivalente
- Terminal: CMD, PowerShell ou Git Bash
- Editor de Texto (opcional): Visual Studio Code, Notepad++, ou similar
Abra o terminal/PowerShell e execute:
gcc --versionSe receber uma mensagem indicando a versão, está pronto. Caso contrário, instale o MinGW.
Todos os arquivos devem estar no mesmo diretório:
projeto/
├── main.c
├── interface.c
├── interface.h
├── jogo.c
├── jogo.h
├── json.c
├── json.h
├── pergunta.c
├── pergunta.h
├── perguntas.json
├── README.md
├── utils.c
└── utils.h
Navegue até a pasta do projeto no terminal e execute:
gcc -o game main.c pergunta.c jogo.c json.c interface.c utils.cExplicação do comando:
gcc: Compilador GNU C-o game: Define o nome do executável comogame.exe- Arquivos
.c: Arquivos-fonte a compilar
gcc -Wall -Wextra -o game main.c pergunta.c jogo.c json.c interface.c utils.cFlags utilizadas:
-Wall: Exibe todos os avisos padrão-Wextra: Exibe avisos adicionais e úteis
gcc -O2 -o game main.c pergunta.c jogo.c json.c interface.c utils.cFlags utilizadas:
-O2: Otimização de nível 2 para melhor desempenho
Após executar o comando, um arquivo game.exe será gerado na pasta. Este é seu executável final.
Navegue até o diretório do projeto e execute:
game.exeOu simplesmente:
Clique duas vezes no arquivo game.exe para iniciar o jogo.
Se o jogo iniciou corretamente, você verá:
- O título "DEV GAME QUEST"
- O menu principal com opções
- Mensagens de carregamento do banco de perguntas
O arquivo perguntas.json deve estar na mesma pasta que o executável e seguir este formato:
{
"Perguntas": [
{
"enunciado": "O que é uma variável em programação?",
"alternativas": [
{
"alternativa": "A",
"texto": "Um espaço na memória para armazenar dados",
"correta": true
},
{
"alternativa": "B",
"texto": "Um tipo de função",
"correta": false
},
{
"alternativa": "C",
"texto": "Um comando do compilador",
"correta": false
},
{
"alternativa": "D",
"texto": "Um arquivo de código",
"correta": false
}
]
"dica": "É um espaço na memória que armazena dados",
"dificuldade": 1,
}
]
}| Campo | Tipo | Descrição | Exemplo |
|---|---|---|---|
| enunciado | string | Texto da pergunta | "O que é uma variável?" |
| alternativas | array | Lista de opções de resposta | Ver exemplo acima |
| alternativa | string | Letra da opção (A, B, C, D) | "A", "B", "C" ou "D" |
| texto | string | Texto da alternativa | "Um espaço na memória..." |
| correta | boolean | Marca a resposta correta | true ou false |
| dica | string | Sugestão para responder | "É um espaço na memória..." |
| dificuldade | inteiro | Nível 1-5 | 1, 2, 3, 4 ou 5 |
Abra um editor de texto (Notepad, VS Code, Sublime Text, etc.)
{
"Perguntas": [
{
"enunciado": "Sua pergunta aqui",
"alternativas": [
{
"alternativa": "A",
"texto": "Primeira opção",
"correta": true
},
{
"alternativa": "B",
"texto": "Segunda opção",
"correta": false
},
{
"alternativa": "C",
"texto": "Terceira opção",
"correta": false
},
{
"alternativa": "D",
"texto": "Quarta opção",
"correta": false
}
]
"dica": "Uma dica útil",
"dificuldade": 1,
}
]
}Adicione mais objetos de pergunta dentro do array "Perguntas". Exemplo com 2 perguntas:
{
"Perguntas": [
{
"enunciado": "Pergunta 1",
"alternativas": [...]
"dica": "Dica 1",
"dificuldade": 1,
},
{
"enunciado": "Pergunta 2",
"alternativas": [...]
"dica": "Dica 2",
"dificuldade": 2,
}
]
}- Salve o arquivo como
perguntas.json - Escolha codificação UTF-8
- Coloque na mesma pasta do executável
Para verificar se seu JSON está correto, use:
- Ferramenta online: JSON Formatter & Validator
- Extensão VS Code: "JSON Validator"
Se houver erro de formatação, o jogo exibirá: "ERRO: Nenhuma pergunta carregada!"
| Arquivo | Descrição |
|---|---|
| main.c | Ponto de entrada do programa - gerencia o menu principal |
| pergunta.c | Lógica de carregamento e gerenciamento de perguntas |
| jogo.c | Mecânicas do jogo (vidas, dicas, loja, validação) |
| json.c | Parser JSON para carregar perguntas do arquivo |
| interface.c | Componentes visuais (menus, títulos, regras) |
| utils.c | Funções auxiliares (limpeza de buffer, formatação) |
Cada .c possui um .h correspondente que define estruturas e protótipos:
| Header | Estruturas Principais |
|---|---|
| pergunta.h | pgt (pergunta), alt (alternativa), bQ (banco de questões) |
| jogo.h | acoesJogador (estado do jogador) |
| json.h | Funções de parsing JSON |
| interface.h | Prototipagem de funções de UI |
| utils.h | Funções utilitárias |
- Inicie o Jogo: Execute
game.exe - Escolha Jogar: Pressione
1no menu principal - Responda as Perguntas: Use
A,B,CouDpara escolher - Use Recursos Estrategicamente:
1: Use uma dica2: Pule a pergunta3: Troque por outra pergunta4: Acesse a loja5: Veja seu status6: Saia da partida
| Nível | Tipo | Quantidade Esperada |
|---|---|---|
| 1 | Iniciante | 10-15 perguntas |
| 2 | Básico | 10-15 perguntas |
| 3 | Intermediário | 10-15 perguntas |
| 4 | Avançado | 10-15 perguntas |
| 5 | Expert | 10-15 perguntas |
- Vidas: Comece com 1. Respostas erradas causam perda de vida
- Moedas: Ganhe 2.5 por resposta correta
- Vitória: Responda todas as perguntas de todos os níveis
- Derrota: Ficar sem vidas
- Compre vidas extras na loja antes de ficarem difíceis
- Use dicas em perguntas que não tem certeza
- Acumule moedas antes de perder uma vida
- Troque perguntas pelo mesmo nível se não souber
Dev Game Quest v1.0
- Franklee Batiello Vieira Rocha
- Fernando de Araujo Dias
- Miguel Guimaraes Galvao
- Miguel Dourado de Jesus
- Gustavo Augusto Leite
- Lucas de Souza Martins Araujo
- Joao Pedro Bezerra de Jesus
Um jogo educativo sobre programação, criado para testar e expandir conhecimentos em diversas áreas da computação.
P: "ERRO: Nenhuma pergunta carregada!"
R: Verifique se o arquivo perguntas.json está na mesma pasta que game.exe e se o JSON está validado.
P: Comando gcc não encontrado
R: Instale o MinGW ou adicione GCC ao PATH do Windows.
P: O jogo fecha de repente
R: Pode haver erro no JSON. Valide o arquivo em JSON Formatter & Validator.
P: Não consigo compilar
R: Verifique se todos os arquivos estão na mesma pasta e use o comando de compilação exato.
Este projeto foi desenvolvido como trabalho educacional.
Última atualização: 2025
Versão: 1.0