• APS

APS - 1 - Genius

APS 1
Prazo: Segunda 11/03 - 13h30
Entrega código: classroom
Entrega forms: [google forms](https://forms.gle/bM6MVGDT8vLV4Ch87

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()

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.

C+

Sistema integrado em protótipo físico, consultar página no site sobre prototipação!.

B / A

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