simonsays_2425/SimonSaysProgramm/SimonSaysProgramm.ino
2025-07-08 15:30:22 +02:00

114 lines
3 KiB
C++

#include <FVS.h>
//Memory_Shield
//LEDs und Taster müssen Invertiert werden, da gegen Masse geschaltet wird
#define BUTTON0 1
#define BUTTON1 5
#define BUTTON2 3
#define BUTTON3 4
#define MAXLEVEL 10
int buttons[] = { BUTTON0, BUTTON1, BUTTON2, BUTTON3 };
int state = 0;
int level = 0;
int musterVorgabe[MAXLEVEL] = {};
int musterEingabe[MAXLEVEL] = {};
void setup() {
//alle LEDs löschen
portMode(1, OUTPUT);
portWrite(1, 0);
//LEDs vom Shield ausschalten
for (int i = 0; i < 4; i++) {
digitalWrite(buttons[i], HIGH);
}
//Tft initialisieren
Tft.begin();
//Zufallszahl starten
randomSeed(analogRead(39));
}
void loop() {
switch (state) {
case 0: // neue Runde
//Gruppe 1 start ===============================================================================
//Gruppe 1 ende ================================================================================
break;
case 1: // Ausgabe aktuelle Runde
//Gruppe 2 start ===============================================================================
//Fabian Bräuer und Alexandros Karasawidis
Tft.setCursorCharacter(1, 1); //Position des cursers
Tft.println("Ausgabe ");
Tft.print(" ");
portMode(1, OUTPUT); //LEDs
for (int i = 0; i <= level; i++) { //random schleife
digitalWrite(buttons[musterVorgabe[i]], LOW); //aus
delay(500);
digitalWrite(buttons[musterVorgabe[i]], HIGH); //an
delay(500); //warten weil muss
}
state = 2; //Zustand 2
//Gruppe 2 ende ================================================================================
break;
case 2: // Eingabe aktuelle Runde
//Gruppe 3 start ===============================================================================
//Lea Lummert
//Gruppe 3 ende ================================================================================
break;
case 3: // Vergleich Eingabe/Ausgabe
//Gruppe 4 start ===============================================================================
//Samuel Zimmerer
//Jan Fink
//Gruppe 4 ende ================================================================================
break;
case 4: // geschafft, Runde hochzählen und auf Display ausgeben
//Gruppe 5 start ===============================================================================
//Sergej,Louay
//Muster zurücksetzen der Eingabe
for (int i = 0; i < MAXLEVEL; i++) {
musterEingabe[i] = -1;
}
level++;
Tft.setCursorCharacter(4, 1);
Tft.print("aktuelle Runde:" + String(level) +" ");
state = 1;
break;
// Louay Aouadi
//Gruppe 5 ende ================================================================================
break;
case 5: // verloren
//Gruppe 6 start ===============================================================================
//Tress
//Gruppe 6 ende ================================================================================
break;
}
}