Input und der Umgang mit Funktionen
OK, du kannst immerhin schon Text ausgeben und mit Variablen arbeiten. Aber was nützt es einem der nicht programmieren kann? Gar nichts. Und jetzt kommt Input ins Spiel. Mit Input kann man die Eingabe eines Benutzers in eine Variable speichern.
Print "Gib deinen Spielernamen ein: "
Spielername$ = input()
Print "Name: " + Spielername$
WaitKey
End
Input ist eine sogenannte Funktion (oft auch als Befehl oder Anweisung bezeichnet). Diese besteht aus dem Funktionsnamen und einem Parameterteil. Aber nicht vom Namen abschrecken lassen, Parameter bedeutet einfach "Wert". Und wenn eine Funktion mehrere Parameter benötigt, werden sie durch ein (deutsches) Komma getrennt. Die Parameterteile gehören immer zwischen zwei Klammern. Doch im 1. Beispiel ist er leer, da Input keine Werte benötigt (Es können aber welche eingesetzt werden). Es liest einfach die Eingabe ein und das war's, es gibt keine Variationen.
Print ist ebenfalls eine Funktion. Der Parameter, den Print benötigt, ist der String (Text), den es ausgeben soll. Aber, bei Print steht der Parameterteil nicht in Klammern. Wie geht denn das? Naja, es ist ja bekannt, dass Ausnahmen die Regeln bestätigen. Natürlich könnte man auch schreiben:
Print("Blah")
Aber es nützt uns nichts, da Print keinen Wert zurückliefert. Das bedeutet, dass man das Ergebnis dieser Funktion nicht in eine Variable schreiben kann, wozu auch? In diesem Fall ist das nicht nötig. (Man kann die Klammern aber nur in Basic-Dialekten weglassen, nicht in C++ oder anderen Sprachen)
Übrigens kann man bei Input, wenn man will, auch einen Parameter verwenden, nämlich den text der den user dazu auffordert, etwas einzugeben. Das würde dann so aussehen:
name$ = Input("Gib mal deinen Namen ein: ")
print name
BlitzBasic hat hunderte von diesen Funktionen auf Lager. Das Sortiment reicht von einfachen Text-Funktionen über mathematische Funktionen bis hin zu 3D-Effekten.
Wenn man mit der Eingabe des Benutzers auch rechnen möchte (z.B. bei einem Taschenrechner-programm) dann muss man den Rückgabewert von Input einfach in eine Zahl-Variable anstatt in eine String-Variable setzen:
Zahl1% = Input("Gib bitte eine Zahl ein: ")
Zahl2% = Input("Gib bitte noch eine Zahl ein: ")
Print Zahl1+Zahl2
[Bearbeiten] If-Konstruktionen
Mittlerweile kannst du also einen Text per "Print" ausgeben und weißt auch schon, wie du den Benutzer eine Eingabe tätigen lässt. Aber was ist nun, wenn du, abhängig von der Benutzereingabe, eine bestimmte Ausgabe erfolgen lassen möchtest? Nehmen wir das Beispiel einer X-beliebigen Quizshow: Der Spieler bekommt drei Antwortmöglichkeiten aus denen er wählen kann, aber nur eine ist richtig:
Print "Frage: Was ist 2+2?"
Print "(a) 6"
Print "(b) 4"
Print "(c) 5"
Antwort$ = Input ("a, b oder c? ")
If Antwort = "b" Then ;Wenn die Antwort "b" ist
Print "Richtig, du Mathegenie!" ;Gebe den Text aus
EndIf ;Ende der If-Konstruktion
Huch, was haben wir denn da? Die Zeile (If Antwort = "b" Then) schaut, ob in der Variable "Antwort" der Text "b" gespeichert wurde. Wenn das so ist, wird die folgende Zeile ausgeführt. Man fragt also eine Bedingung ab, und wenn diese erfüllt ist, wird das gemacht, was zwischen If und Endif steht.
P.S.: Man kann das ganze auch - ohne 'EndIf' - in eine Zeile schreiben:
If Antwort = "b" Print "Richtig, du Mathegenie"
Oder wer's lieber etwas geschwätziger hat:
If Antwort = "b" Then Print "Richtig, du Mathegenie"