++++++++++++++++++++++++++++++++++++++++++++++++++++
+   Skript, Teil 2  zum QBasic-Kurs I              + 
+   Von Robert Jessenberger                        +
++++++++++++++++++++++++++++++++++++++++++++++++++++


Wie schreibe ich ein kleines Programm alleine?
----------------------------------------------

Es ist schon gut zu wissen, welche Befehle der Computer 
versteht (wie PRINT usw.). 
Wie aber kombiniert man die Befehle, um zu einen eigenen
Programm zu kommen? Ist das Kunst oder kann man es lernen?
Überlegen wir uns ein Beispiel.

Unser erstes Spiel: Zahlenraten
-------------------------------

Zahlenraten ist wohl ein recht altes Spiel
und läuft,aus der Sicht des Raters, folgendermaßen ab:
Ich sage meinen Partner eine Ziffer, wie
groß die zu erratene Zahl maximal sein soll.
Er wählt sich eine Zahl aus, sagt sie mir aber nicht.
Nun fange ich an mit Raten.
Wenn ich falsch geraten habe, sagt mein
Partner mir, ob zu groß oder zu klein,
und ich rate dann weiter.

Nun soll ja der Computer unser Spielpartner sein.
Also betrachten wir das Spiel mal aus dieser
Perspektive.
(Übrigens nehmen wir mal an, das wir uns die
Zahlen nur auf Karteikarten merken können.[ Tja, das Alter!])

Sicht vom anderen Partner:
Mein Spielpartner gibt mir eine Ziffer.
Ich merke sie mir auf der Karteikarte "Zahlenbereich".
Nun kann ich mir eine beliebige Zahl aussuchen,
welche mein Partner erraten muß. Sie darf nur nicht
größer als die Ziffer sein, welche auf der Karte "Zahlenbereich"
steht. Die zu erratende Zahl soll auf der Karteikarte "Ratemal"
stehen.
Als dritte und letzte Karteikarte benötige ich
"Vermutet". In ihr soll die Zahl stehen die mein Partner
vermutet.
Nun fängt mein Partner an mit Raten an.
Er gibt mir seine vermutete Zahl und ich merke sie       
mir mit der Karteikarte "Vermutet".                        
Nun muß verglichen werden.                                 
Ist die Zahl auf "Vermutet" größer als die auf "Ratemal"    
sage ich zu ihm: "Zu groß!"                                 
Ist die Zahl auf "Vermutet" kleiner als die auf "Ratemal"   
sage ich zu ihm: "Zu klein!"                                
Da ich mir nun leider Zahlen schlecht merken kann,          
vergleiche ich nun wieder die Zahlen auf den Karteikarten   
"Vermutet" und "Ratemal". Sind sie nicht gleich, muß        
er neu raten.  

                     -----------------

Wir malen uns die Schritte nun geordnet auf:

1) Zahlenbereich erfragen und auf "Zahlenbereich" vermerken
2) per Zufall Zahl auswählen und auf "Ratemal" vermerken (Zahl kleiner o.
                                                gleich als "Zahlenbereich)
3) vermutete Zahl geben lassen und in "Vermutet" merken  <----------+
4) Wenn "Vermutet" größer als "Ratemal", dann sage :"Zu groß!"      |
5) Wenn "Vermutet" kleiner als "Ratemal", dann sage :"Zu klein!"    |
6) Vergleiche "Vermutet" mit "Ratemal". Wenn nicht gleich  ---------+
7) Sage: "Du hast die Zahl erraten!!!!"

Alles klar? 
Nun fällt dir sicher der Pfeil auf, der von Schritt 6) wegführt,
um auf Schritt drei zu zeigen.
Das ist eine Schleife (Im Computerdeutsch), welche alle
Schritte ab 3) nochmal ausführen läßt, wenn "Vermutet" nicht gleich
"Ratemal" ist.
Die Schleifenbedingung steht hier am Ende der Schleife. 
Wir können sie auch Schleifenanfang schreiben:

1) Zahlenbereich erfragen und auf "Zahlenbereich" vermerken
2) per Zufall Zahl auswählen und auf "Ratemal" vermerken (Zahl kleiner o.
                                                gleich als "Zahlenbereich)
3) Wenn "Vermutet" nicht gleich "Ratemal" ,dann fahre mit
   nächsten Schritt fort, ansonsten gehe zur Zeile nach 
                                          Schleifenende
4) vermutete Zahl geben lassen und in "Vermutet" merken 
5) Wenn "Vermutet" größer als "Ratemal", dann Sage :"Zu groß!"      
6) Wenn "Vermutet" kleiner als "Ratemal", dann Sage :"Zu klein!"    
7) Schleifenende, gehe unbedingt zu Schritt 3)
8) Sage: "Du hast die Zahl erraten!!!!"

Anmerkung: Gehe die obigen Schritte wirklich mal exakt durch!
           Wenn wir annehmen, dass am Anfang in "Vermutet" nichts
           steht, so funktionieren diese Schritte ebenfalls!

Jetzt haben wir eigentlich schon unser Programm, wir müssen
es nur noch in eine Sprache übersetzen, die der Computer versteht.
Und diese Sprache heißt in unserem Fall QBasic. (Es gibt aber auch andere
Sprachen).

1) Input "Gib den Zahlenbereich ein",Zahlenbereich%
2) Ratemal% = Rnd * Zahlenbereich%
3) WHILE Ratemal%<>Vermutet%
4)    Input "Welche Zahl vermutest Du?:",Vermutet%
5)    IF Ratemal%<Vermutet% THEN PRINT "Zu groß!" 
6)    IF Ratemal%>Vermutet% THEN PRINT "Zu klein!" 
7) WEND
8) PRINT "Oh, Du hast die Zahl erraten!"

Fertig ist das Programm!