000
25.08.2006, 00:35 Uhr
Lensflare
|
Hallo.
kennt ihr die Cheateingabe so wie zum Beispiel bei Doom 2?
Wenn nicht, hier eine kurze Beschreibung: Man hat kein Eingabefeld, sondern drückt einfach die Buchstaben auf der Tastatur, ohne diese auf dem Bildschirm zu sehen. Und wenn man dann die richtige Kombination eingegeben hat, dann wird der cheat aktiviert. Ganz ohne Bestätigung per Eingabetaste oder ähnlichem.
So eine Funktion wollte ich in C realisieren und ich dachte mir dass es auch gut als Golfrätsel zu gebrauchen sein könnte
Also hier ist der code:
C++: |
#include <stdio.h> #include <conio.h> #include <stdlib.h>
const int a = 4; //Anzahl der Cheats const char *pw[a] = {"thisisacheat","purepower","unvisible","ifeelsogood"}; //ein Beispiel für die Cheatliste
int getpw(char c);
int main() {
int pw_index; char key; while(1) { key = 0; if(kbhit()) { key = getch(); pw_index = getpw(key); } else pw_index = -1; if(pw_index != -1) { printf("\npassword correct (%s)\n", pw[pw_index]); } } }
int getpw(char c) { //hier zählen die Zeichen }
|
Die Funktion getpw bekommt nach jeder Beutzereingabe den jeweiligen Buchstaben übergeben. Sobald ein cheat erfolgreich eingegeben wurde, gibt die Funktion den Index des cheats zurück. Ansonsten wird -1 zurückgegeben.
Zu schreiben ist also der Inhalt der Funktion int getpw(char c)
Es zählt die Anzahl der Zeichen zwischen den geschweiften Klammern der Funktion.
Regeln/Hinweise:
-> Die Passwörter/Cheats bestehen nur aus gewöhnlichen Kleinbuchstaben. Keine Zahlen, keine Sonderzeichen.
-> Es passt jeweils nur ein Passwort/Cheat auf eine Benutzereingabe. Also folgende cheats zusammen sind ausgeschlossen: "godmode" und "god", weil der cheat "god" aktiviert werden würde, wenn man "godmode" eigeben will. Solche Fälle sind also zu vernachlässigen, weil sie nicht vorkommen dürfen ^^
-> Es soll mit beliebig vielen und beliebig langen Wörtern und beliebig oft möglich sein.
-> Es darf nicht auf undefinierten Speicher zugegriffen werden. (also nicht sowas: int i; if(i==0) ... )
-> Es darf nur C (kein C++) und die Funktionen der "includeten" libs verwendet werden.
Wie viele Zeichen meine erste Lösung gerade hat, will ich noch nicht verraten
Ich wünsche viel Spass. -- Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten. (Emerson Pugh Trost) Dieser Post wurde am 25.08.2006 um 00:36 Uhr von Lensflare editiert. |