Wenn ich mir deinen eingangs geposteten Code genauer anschaue, sehe ich gar keine Stelle, an der eine falsche Eingabe behandelt wird. Wenn ich mir das so vorstelle, kommt es mir vor, als könnte ich einfach alle Zahlen der Reihe nach durchdrücken, wenn sie falsch ist, passiert nichts, wenn es die richtige ist, zählt es weiter, bis irgendwann alle vier gedrückt wurden. Korrigier mich, wenn ich mich irre.
Könnte mir einen Ablauf etwa folgendermassen vorstellen (vereinfacht geschrieben):
if (key gedrückt) { // abfragen, ob ein key gedrückt wurde, ob falsch oder richtig ist egal
count++; // Anzahl Eingaben festhalten
if (key stimmt) { // auswerten ob richtig
position++; // wenn ja, positionszähler weiterzählen, wenn falsch, wird nur count inkrementiert
}
}
if (count == 4) // wenn vier eingaben erfolgt sind, unabhängig ob richtig oder falsch
if (position == 4) { // schauen, ob alle vier richtig waren
// unlock // wenn ja, das Ding aufschliessen und alles auf null setzen
// alles zurücksetzen
}
else {
// alles zurücksetzen // wenn position nicht auf 4 ist, war wohl eine oder mehrere falsche Eingaben dabei
// Fehleranzeige
}
}