Man war ein Gott, mit bestimmten Mausgesten konnt man Zauber auswählen.
Man muss lediglich einfache geometrische Formen zeichnen - und das Spiel hat erkannt was man wollte.
Wenn man mit seiner Maus ein W gezeichnet hat, bekam man einen Zauber zum Regen machen - wollt man den nicht, konnt man den wieder "abschütteln" - einfach die Maus schnell hin und her bewegt
Ich würde mich gern mal an soetwas versuchen - wollt aber ein paar Anregungen von anderen hören.
----- Ab hier stehen meine Denkansätze----- (wer es selbst mal probieren möchte, soll nicht weiterlesen

Man müsst die Maus selbstverständlich verfolgen,
am sinnvollsten für die Berechnungen wäre Vektorrechnung (ich hatte nur Mathe Grundkurs - kenn mich daher nur mit der Basis von Vektorrechnung aus).
Nehmen wir mal als Beispiel ein W - wenn der Benutzer ein W zeichnet, soll einfach nur mal etwas ausgegeben werden. (das W muss von Links nach Rechts gezeichnet werden)
Wir bauen uns eine Klasse "W"
Das W hat insgesamt 5 wichtige Punkte (die 3 oben, 2 unten), daraus machen wir ein Tuple für unsere Klasse "W"
((-2,1),(-1,-1),(0,1),(1,-1),(2,1))
Wir benötigen eine Information an welchem Punkt der Mauszeiger zu letzt war, deshalb nehmen wir iPunkt als Attribut.
Es muss in einem gewissen Zeitrahmen der Mauszeiger überprüft werden und dies muss Klasse W erfahren deshalb als Methode "TestPunkt(rx,ry)" rx und ry sind relative Pfade, die anhand der letzten und der momentanen Mausposition errechnet werden.
(Schlagt mich, wenn ich was falsches erzähl - ich hab die Schule schon hinter mir gelassen)
Die Methode TestPunkt(rx,ry) funktioniert in etwa so:
Das übergebene rx ist 50 und ry -100 (also ein Vektor (50,-100))
self.iPunkt ist 0 also hol dir den Vektor von Punkt 0 zu Punkt1
Der Vektor von Punkt0 zu Punkt1 ist (1,-2)
Nun zu meinen Mathematischen Gedanken - ich kenn die Begriffe nicht mehr, und entschuldige mich dafür.
Es wird der übergebene Vektor durch den von P0 zu P1 geteilt
50 / 1 = 50
-100 / -2 = 50
Dann wird der übergeben Wert, durch den der eben bei der anderen Koordinate rauskommt geteilt
50 / 50 = 1
-100 / 50 = -2
und zu guter letzt mit dem Vektor von P0 zu P1 überprüft
1 == 1
-2 == -2
Ja - das waren absichtlich werte von denen genau das rauskam.
-----
das ganze mal mit einem Vektor, bei dem nicht genau die Zahlen rauskommen
rx = 60 und ry = -110
60 / 1 = 60
-110 / -2 = 55
dann:
60 / 55 = 1,09090909090909090909
-110 / 60 = -1,83333333333333333333
Dann käme raus
1,09 != 1
-1,83 != 2
Aber wir sehen, die Ergebnise sind sich ähnlich! Ein wenig Toleranz muss man lassen (kein Benutzer kann schließlich eine genau gerade Linie zeichnen)
Ich wollt eigentlich nicht soviel schreiben, aber wenn einem gerade soviel einfällt...
Habt ihr eigene Ideen? Verbesserungsvorschläge? Vorschläge wie man alles realisieren könnt?