Move Me | ||||
Lupe / config | ||||
Navigation |
7 | 8 | 9 |
4 | 5 | 6 |
1 | 2 | 3 |
0 | Enter |
Um einen solchen Geheimmodus umzusetzen, benötigen Sie folgendes:
Bei dem obigen Eingabefeld handelt es lediglich um eine Tabelle mit Zahlen. Wird eine Zahl ausgewählt, wird der aufgerufenen Funktion der gewählte Wert übergeben.
<TABLE BORDER="1"> <COLGROUP><COL WIDTH="33%" SPAN="3"></COLGROUP> <TR> <TD STYLE="TEXT-ALIGN:center"><A HREF="javascript:Geheim(7)"> 7 </A></TD> <TD STYLE="TEXT-ALIGN:center"><A HREF="javascript:Geheim(8)"> 8 </A></TD> <TD STYLE="TEXT-ALIGN:center"><A HREF="javascript:Geheim(9)"> 9 </A></TD> </TR> <TR> <TD STYLE="TEXT-ALIGN:center"><A HREF="javascript:Geheim(4)">4</A></TD> <TD STYLE="TEXT-ALIGN:center"><A HREF="javascript:Geheim(5)">5</A></TD> <TD STYLE="TEXT-ALIGN:center"><A HREF="javascript:Geheim(6)">6</A></TD> </TR> <TR> <TD STYLE="TEXT-ALIGN:center"><A HREF="javascript:Geheim(1)">1</A></TD> <TD STYLE="TEXT-ALIGN:center"><A HREF="javascript:Geheim(2)">2</A></TD> <TD STYLE="TEXT-ALIGN:center"><A HREF="javascript:Geheim(3)">3</A></TD> </TR> <TR> <TD STYLE="TEXT-ALIGN:center"><A HREF="javascript:Geheim(0)">0</A></TD> <TD COLSPAN="2" STYLE="TEXT-ALIGN:center"><A HREF="javascript:Geheim(10)">Enter</A></TD> </TR> </TABLE>
Die Variable für den Geheimmodus wird zu Beginn auf false gesetzt. Erst wenn die richtige Kombination eingegeben wurde, wird Sie
umgestellt.
Der Zähler wird zu Beginn auf 0 gesetzt und läuft immer weiter.
Die Puffervariable wird auf den Startwert gesetzt.
var geheimmodus = false; var zaehler = 0; var puffer = 3;
Nun wird es etwas schwieriger. Sie benötigen einen Array, in dem die Kombination versteckt wird. Doch dabei sind einige Dinge zu beachten.
Zuerst suchen Sie sich eine berechenbare Zahlenfolge aus die in dem Array versteckt werden soll, z.B. y=3x. Also 3,6,9,12,15,18,21. Das bedeutet
Am Anfang ist der Wert 3. Wählt der Benutzer die richtige Eingabe, wird der Wert um 3 auf 6 erhöht, danach um 3 auf 9 und so weiter.
Dann müssen Sie sich die Tastenkombination ausdenken, die man eingeben muss, um in den Geheimmodus zu kommen, z.B.
9,6,3,1,2,3,Enter.
Wenn der Nutzer als erstes die 9 auswählt, soll die Routine an der 9. Stelle im Array nachschauen und die dortige Zahl
mit der ersten Zahl unserer Zahlenfolge, also der 1, vergleichen. Steht an dieser Stelle die 1, wird die Zahlenfolge
erhöht, damit ist die nächste Zahl die 4. Diese müsste sich dann an der 6. Stelle im Array befinden, da dies die zweite
Taste unserer Tastenkombination ist.
Mit einem solchen Algorithmus wäre es nicht möglich, doppelte Zahlen in die Tastenkombination einzubauen, Wie das bei
unserer Kombination der Fall ist. Darum habe ich
den Algorithmus um eine Komponente erweitert: Zusätzlich zu der gewählten Taste wird die Anzahl der gedrückten Tasten
addiert.
Bei der ersten Taste (9) schaut die Routine immer noch an der 9. Stelle des Arrays nach. Bei der nächsten Taste (6)
schaut die Routine nicht mehr an der 6. Stelle, sondern an der 7. Stelle nach. Bei der dritten Taste (3) wird 2 hinzugefügt,
also schaut die Routine an der 5. Stelle nach, und so weiter.
Nun bauen wir den Array auf. Wenn der Besucher die erste Zahl auswählt, steht der Zähler bei 0. Die Entschlüsselungsroutine wird den übergebenen Wert (9)
und den Zähler (0) addieren (9+0=9) und an dieser Stelle im Array nach dem Schlüsselwert suchen. Darum müssen wir die erste Zahl unserer versteckten
Zahlenfolge (3) an die zehnte Position setzten, da für den Computer der Array an der nullten Stelle beginnt. Der Array sieht jetzt wie folgt aus:
- - - - - - - - - 3 - - - - - - - - - - -.
Bei der zweiten Zahl werden wieder Zähler (1) und übergebener Wert (6) addiert (1+6=7). Also muss unsere Geheimzahl an die achte Stelle:
- - - - - - - 6 - 3 - - - - - - - - - - -.
So bauen wir Schritt für Schritt den Array auf, bis unsere Folge eingesetzt ist. Die 9 auf die 2+3=5 ->6. Position.
- - - - 12 9 15 6 18 3 - - - - - - 21 - - - -.
Zum Schluß füllen Sie die Folge noch mit irgendwelchen Füllzahlen. Sie sollten keine Zahl der Folge doppelt verwenden, sonst könnte es eine weitere
Kombination zum Geheimmodus geben.
16 11 1 10 12 9 15 6 18 3 20 2 19 8 4 13 21 14 5 7 17.
Die Entschlüsselungsroutine muss die eingebenen Zahlen abarbeiten und beim Erreichen der Zielzahl 24 in den Geheimmodus umschalten.
function Geheim(x) { if (zahlen[x+zaehler] != puffer) { puffer = 1; } else { puffer=puffer+3; zaehler++; if (puffer == 24) geheimmodus = true; } if (geheimmodus) { Anweisungen } }
Die Funktion Bildertausch() tauscht die Bilder aus, wenn geheimmodus = true ist. Was Sie im Geheimmodus machen, müssen Sie sich selber überlegen.
Gibt der Benutzer eine falsche Taste ein, so wird die Puffervariable auf 1 gesetzt. Da in unseren Fall immer 3 auf die Puffervariable hinzukommen, kann die Puffervariable nicht mehr 24 erreichen, da 1+3+3+3+3+3+3+3+3=25 ist.