Ziemlich lange wurde die Programmierung des Hopscotsch Spieles nun hinausgezögert. Doch an diesem Wochenende war es so weit, die Aufgabe wurde angepackt. In erstaunlich kurzer Zeit kam so ein Programm zustande, dass prüft, ob der Spieler die Platten des Spiels in der richtigen Reihenfolge betätigt. Einzig Feedback per LEDs etc. ist noch nicht programmiert, da der parallel zur Programmierung erfolgte Bau des Spielfeldes doch etwas langsamer voran ging als erwartet und erst die Fertigstellung der Platten erfolgen soll.
In einem mehrdimensionalen Array ist die richtige Reihenfolge der Tasten gespeichert . Hier ein Ausschnitt aus dem Code:
int ablauf [6][8] = {
{1,1, 0, 0, 0, 0, 0, 0}, // aktueller Status… aktuelle Runde, aktuelle Position!
{1,3, 4, 5, 6, 5, 4, 3}, // runde 1, usw…. erste zahl rundennr, dann zu betaetigende tasten in richtiger reihenfolge
{2,2, 4, 5, 6, 5, 4, 2},
{3,2, 3, 5, 6, 5, 3, 2},
{4,2, 3, 4, 6, 4, 3, 2},
{5,2, 3, 4, 5, 4, 3, 2}
};
Ob die jeweils betätigte Taste korrekt ist, wird, wie hier für Taste zwei, wie folgt geprüft:
if (val2 == LOW && val2 != oldVal2){
Serial.println(“zwei_1″);
int gedrueckteTaste = 2;
int runde = ablauf [0][0];
int aktuelleTaste = ablauf [0][1];
int benoetigteTaste = ablauf [runde][aktuelleTaste];
Serial.println(“es muss gedrueckt werden:”);
Serial.println(benoetigteTaste);
if(benoetigteTaste == gedrueckteTaste){
if(aktuelleTaste == 7 && runde == 5){
Serial.println(“Gewonnen! Gewonnen! Gewonnen!”);
ablauf[0][0] == 1;
ablauf[0][1] == 1;
}
else if(aktuelleTaste == 7){
ablauf[0][0]++;
ablauf [0][1] = 1;
Serial.println(“naechste Runde!”);
Serial.println(ablauf[0][0]);
}
else{
ablauf[0][1]++;
Serial.println(“naechste Taste”);
}
}
else{
ablauf[0][0] == 1;
ablauf[0][1] == 1;
Serial.println(“falsche Taste! – Neustart”);
}
}