Einführung in Q-BASIC

Einleitung | Allgemeine Befehle | Grafik Befehle | Beispiele | Anregungen

Einleitung

Alle in Großbuchstaben geschriebenen Wörter stellen Befehle dar, alle in Kleinbuchstaben geschriebenen sind Parameter die angegeben werden müssen. Parameter die in []-Klammern stehen sind optional, müssen also nicht angegeben werden.
BASIC-Code wird Zeilenweise interpretiert, das heißt pro Zeile darf nur ein Befehl gegeben werden. Wenn es nötig ist mehrere Befehle pro Zeile anzugeben kann man dies tun indem man die Befehle mit einem Doppelpunkt trennt.

Variablen

$ Text (Zeichenfolge)
!Kommazahl-Kurz
# Kommazahl-Lang
% Ganzzahl-Normal
& Ganzahl-Lang

Variablen die ohne Endung notiert werden, werden automatisch zu Zahlen


allgemeine Befehle

INPUT variable

Liest eine Eingabe ein und setzt sie in die entsprechende Variable. Dabei sind sowohl Text als auch Zahlen Variablen erlaubt.

INKEY$

Liest nur ein Zeichen von der Tastatur und nimmt wie eine Text-Variable den Wert an, welcher dann an eine Variable oder direkt in einer IF-Anweisung benutzt werden kann.

SLEEP

Pausiert das Programm bis eine Taste gedrückt wurde.

BEEP

Gibt einen kurzen Ton auf dem Intern-Speaker aus. Ist meist sinnvoll um den Programmverlauf zu überprüfen.

REM / '

Dieser Befehl dient dazu Kommentare. Statt REM kan auch der Oberstrich ' verwendet werden um die Kommentare kompakter zu gestalten.

GOTO zeile

Läßt das Programm zur angegebnen Zeile springen. Zeilen können entweder mit Nummern markiert werden oder mit Wörtern, die Wörter müssen dann aber mit einem Doppelpunkt abgeschlossen werden.

Beispiel 1:
10 PRINT "Hallo"
GOTO 10

Beispiel 2:
Start:
PRINT "Hallo"
GOTO Start

PRINT text / variable

Schreibt den angegebenen Text auf den Bildschirm. Der Text muß in Anführungszeichen stehen. Wenn mehr als nur ein Text geschrieben werden soll, kann dieser durch ein Semikolon - ; angehängt werden. Es können auch Variablen angegeben werden, deren Wert dann ausgegeben werden.

Beispiel:
x = 50
PRINT "Wert von X: "; x; "."

Ausgabe:
Wert von X: 50.

IF bedingung THEN ereignis

Dient dazu Bedingungen zu bewerten und in abhängigkeit von ihnen ein Ereignis zu starten. Bedingungen bestehen meist aus Vergleichen von Variablen durch <, >, <=, >=. Es können auch mehrere Vergleiche verknüpft werden dazu dienen die Operanten AND (und), OR (oder), XOR (ausschließendes oder). Falls das Ereignis aus mehreren Befehlen besteht kann es über mehere Zeilen verteilt werden und muß mit einem END IF abgeschlossen werden.

Beispiel:
INPUT A
INPUT B
IF A > B THEN
PRINT "A ist größer als B"
END IF

RANDOMIZE TIMER

Leitet den Zufallgenerator ein.

RND

Funtioniert wie eine Kommazahl mit einem zufälligen Wert 0 < RND < 1. RND multiplizert mit einer Ganzzahl bringt eine zufallige Ganzzahl mit dem maximal Wert der Ganzzahl.

Beispiel:
PRINT "Zufallszahl zwischen 1 und 50: "; INT(RND*50)
PRINT "Zufallszahl zwischen 0 und 1: "; RND

INT(zahl)

Rundet eine Kommazahl auf eine Ganzzahl.

Grafik Befehle

Man muß zuerst um auf einen Grafik-Screens malen zu können ihn einleiten:

SCREEN modus

9 - 640*350 / 16 Farben / 2 Seiten
12 - 640*480 / 16 Farben / 1 Seite
13 - 320*200 / 256 Farben / 1 Seite

Nach der initialisierung des Grafik-Screens kann man mit folgenden Befehken auf ihn zugreifen und zeichnen:

CLS

Löscht den gesamten Bildschirm.

PSET (x, y), [farbe]

Zeichnet einen Punkt auf den Koordinaten X und Y mit der angegebenen Farben.

POINT (x,y)

Liefert die Farbnummer an den angegebnen Koordinate. Der Befehl wird wie eine normale Ganzzahl behandelt. Der Befehl kann teilweise ganz gut für Kollisionsabfrage genutzt werden.

LINE (x1, y1) - (x2, y2), [farbe], [bf]

Zeichnet eine Linie von X1, Y1 zu X2, Y2 mit der angegebenen Farbe. Wenn BF angegeben wird, wird statt der Linie ein Rechteck gezeichnet.

CIRCLE (x, y), radius, [farbe]

Zeichnet einen Kreis auf den Koordinaten X und Y mit angegebenem Radius und Farbe.

Beispiele

Punkte-Misch

'Punkte-Misch
' Autor: Ingo Ruhnke
SCREEN 13 'initialisation des Grafik-Screens
DO
PSET (RND*320, RND*200), RND*255 'Zeichnet Zufälligen Punkt auf den Bildschirm
LOOP UNTIL INKEY$="q"

Dieses Programm ist im vergleich zum unteren recht sauber gestaltet. Es enthält ausreichent Kommentare und Befehle die anderen Befehlen unterstellt sind werden eingerückt.

Crazy-Polys

5 a = 1: b = 1: aa = 1: bb = 1: aaa = 1: bbb = 1
10 SCREEN 12
20 CLS
30 x = INT(RND * 640)
40 y = INT(RND * 480)
50 xx = INT(RND * 640)
60 yy = INT(RND * 480)
70 xxx = INT(RND * 640)
80 yyy = INT(RND * 480)
90 LINE (x, y)-(xx, yy), 1
100 LINE (xx, yy)-(xxx, yyy), 4
110 LINE (xxx, yyy)-(x, y), 10
120 x = x + a: y = y + b
130 xx = xx + aa: yy = yy + bb
140 xxx = xxx + aaa: yyy = yyy + bbb
150 IF x >= 640 THEN a = INT(RND * 5) - 5
160 IF y >= 480 THEN b = INT(RND * 5) - 5
170 IF xx >= 640 THEN aa = INT(RND * 5) - 5
180 IF yy >= 480 THEN bb = INT(RND * 5) - 5
190 IF xxx >= 480 THEN aaa = INT(RND * 5) - 5
200 IF yyy >= 480 THEN bbb = INT(RND * 5) - 5
210 IF x <= 0 THEN a = INT(RND * 5)
220 IF y <= 0 THEN b = INT(RND * 5)
230 IF xx <= 0 THEN aa = INT(RND * 5)
240 IF yy <= 0 THEN bb = INT(RND * 5)
250 IF xxx <= 0 THEN aaa = INT(RND * 5)
260 IF yyy <= 0 THEN bbb = INT(RND * 5)
270 z = z + 1: IF z = 15 THEN CLS : z = 0: REM (z ist der "Verwisch Effekt")
280 GOTO 90
Dieser Quell-Code ist nicht sehr sauber und sollte zur Übung etwas übersichtlicher gestaltent werden.

Hi-Res

Die folgende Erläuterung ist relativ komplex und ist deshalb auf einer eigenen Seite untergebracht.
Hi-Res

Anregungen

Zahlenraten:

Schreib ein Programm bei dem sich der Computer eine Zufallszahl denkt und der Spieler sich durch raten der Zahl nähern muß. Der Computer sagt dabei ob die eingegebene Zahl größer oder kleiner ist als die gedachte. Am Anfang sollte der Spieler dem Computer eine Zahlenobergrenze für die Zufallszahl.

Bildschirmschoner:

Schreibe einige Bildschirmschoner bei denen zufallig Kreise, Rechtecke oder Linien auf dem Bildschirm verteilt werden. Experimentiere auch mit expandierenden Kreisen und Rechtecken.

© Ingo Ruhnke, 9.10.1997



Schlund und Partner zurück zu Programming Stuff
zurück zur Startseite

Last updated on Februar 13, 1998
created by Ingo Ruhnke