// Importando headers / arquivos separados de código
#include "questions.h" // Pras questões, struct, array da struct, e variáveis úteis
#include "oled_desenho.h" // Pro setup do OLED, #defines e tudo, e aqui tem a inicialização do monitor Serial
#include "encoder.h" // Aqui tem bastante coisa, encoder, processa variação no encoder e no botão, e tem a definição inicial da questão atual também
#include "display.h" // Aqui tem as principais funções de desenho, DesenharLogoIF, RenderizarPerguntas, Resultado, e RenderizarMenu
// #include "server.h" // Para o servidor, e Wifi -- ## AINDA SENDO FEITO
void setup() {
SetupEncoder();
SetupOled();
DesenharMenu(2000); // Tempo em milissegundos, divide por 4 dentro da função
// Server_Configuração();
// LerDados();
}
void loop() {
LerDecoder(); // int direcao vem daqui, BotaoVariado e EncoderGirado também
if (BotaoVariado || EncoderGirado) {
AtualizarGame();
RenderizarGame();
}
delay(2); // Pra não travar, debounce
}
void AtualizarGame () {
if (EncoderGirado) AtualizarEncoder(direcao);
if (BotaoApertado) AtualizarBotao();
}
void RenderizarGame() {
if (BotaoApertado) RenderizarResultado();
else RenderizarPerguntas();
tela.drawRect(0, 0, 128, 64, WHITE);
tela.display();
if (BotaoApertado) delay(2000);
}
/* 14/09/2025 - Aproximadamente umas 3 horas
Adicionei um algoritmo de embaralhamento da lista, um shuffle de Fisher-Yates,
e criei uma função que embaralha, também deixei pra passar pelas questões
de forma ordenada, aí cada vez que passa por todas embaralha de novo. Falta
talvez embaralhar as próprias respostas dentro de cada questão, o que deve
ser mais fácil do que parece, colocar mais questões talvez, deixar mais
otimizado, depois passar pra um banco de dados as questões e pegar deste
banco de dados, usar o FireBase e aprender como usa, e avançar no resumo
pra MEPERG, pra submeter lá pra eles, ainda tô esperando a análise do
coordenador, com certeza ainda tem muito o que melhorar, ah e depois
passar esse código pro projeto físico e testar, pro RaspBerry_1 lá, e por
último trabalhar no segundo projeto do jogo.
21/09/2025 - 17:16 até 00:01
Adicionei o mesmo algoritmo de Fisher-Yates para embaralhar as respostas,
por enquanto tá funcionando certinho, e ele mantém qual o indíce da resposta
correta. Adicionei mais 2 questões,e pesquisei bastante de servidor, mas ainda
não entendi na prática como conecta o firebase com o wokwi ;---;
* Coloca mais questões, otimiza mais, passa pro FireBase as questões, passa o
código pro projeto físico, e trabalha no segundo projeto, e se prepara pra
apresentação da MEPERG.
*/