• APS

APS - 1 - Genius

APS 1
Prazo: 17/03 (Segunda)
Entrega código: classroom
Entrega forms: google forms

Info

A APS pode ser feita individual ou em dupla

O desafio é desenvolver o protótipo do jogo da memória "Genius", com as seguintes características:

  • 4 (ou mais) LEDs de cores diferentes.
  • 4 (ou mais) Botões (cada botão corresponde a um LED).
  • 1 Buzzer (para reproduzir um som)

Rubrica

O requisito mínimo do projeto para o conceito C é dele ter funcionamento similar ao do jogo, isso é:

  • Para cada botão, um LED e um som diferentes.
  • O jogo deve progressivamente ir aumentando a dificuldade.
  • Uma resposta visual e sonora para quando acertar ou errar.
  • Gera aleatoriamente a sequência cada vez que o sistema é ligado ou o começa um novo jogo.
    • Usar a seed no srand()
  • Sistema integrado em protótipo físico, consultar página no site sobre prototipação!

Qualidade de Código

O código não deve possuir erros de detectados pelas ferramentas de qualidade de código: cppcheck e embedded-check.

Além disso, após o envio do projeto, o código passará por um processo de revisão manual, onde a equipe pode pedir revisões do código.

Ganhando nota

Tip

Conceitos acumulativos, pode fazer qual quiser para ir acumulando pontos. Se deseja incluir algum que não está aqui, mandar mensagem ao professor.

  • (meio conceito) Organizar o código em arquivos .c e .h criando funções para organizar o código.
  • (meio conceito) Sistema que exibe pontuação final.
  • (meio conceito) Armazena pontuação mesmo quando perder a bateria.
    • Ler sobre memória em: RP2040/Flash
  • (meio conceito) Dado uma certa dificuldade, jogo acende duas luz ou mais luzes por vez!
  • (meio conceito) Diferentes modos de jogo:
    • Solo, Dupla, ...
  • (meio conceito) Implementar o código em formato de máquina de estados
  • (meio conceito) Usar alarme de timer para se usuário não apertar o botão em x segundos, perde.
  • (meio conceito) Para quem reproduz uma música (tipo mário).
  • (meio conceito) Manual On and Automatic Off