practic 1/87, S. 30-31

Lutz Wolfien


Computer-Spielprogramm

Computer werden zum alltäglichen Handwerkszeug einer ständig wachsenden Anzahl von Beschäftigten aller Berufe. Vom Fahrkartendrucker über die elektronische Platzkartenreservierung, Auskunftsautomaten, Schreibcomputer und CAD/CAM-Arbeitsstationen reicht eine immer größer werdende Palette.

Im Fünfjahrplanzeitraum 1986/90 sind fast eine Million Lehrlinge zu befähigen, die moderne Rechentechnik und Informationsverarbeitung zu beherrschen. Schon jetzt gibt es viele Pionierhäuser, Stationen Junger Techniker und Berufsschulen, die mit Computern ausgerüstet sind. Die Anzahl von Computerklubs bei den verschiedensten Einrichtungen wächst ständig. Die Produktion von einfachen, erweiterungsfähigen Computern für die Bevölkerung erreicht jetzt eine Größenordnung, die der Beschäftigung mit dieser Technik Massencharakter verleiht.

Mit dieser Ausgabe beginnend, wollen wir der Informatik und Computertechnik einen festen Platz einräumen, ohne traditionelle Gebiete im Inhalt unserer Zeitschrift zu vernachlässigen.

Schwerpunkte unserer Beiträge sehen wir in allgemein nützlicher Software. Es werden nicht immer komplette Programme sein. In vielen Fällen reicht der Lösungsweg zur Abarbeitung einer speziellen Aufgabenstellung. Auf dem Gebiet der Hardware werden wir u.a. Peripheriegeräte (Schnittstellen) und Anwendungsmöglichkeiten bringen.

Spielend lernen

Computerspiele sind gut geeignet, einem großen Personenkreis die Scheu vor der umfangreichen Tastatur und den vielen Spezialworten im Umgang mit einem Computer zu nehmen. Früher oder spater taucht der Wunsch auf, die Geheimnisse der „Black-box" zu ergründen und ein vorliegendes Programm zu verandern oder eigene Vorstellungen zu verwirklichen. In einem Spielprogramm kann die Wirkung der einzelnen Befehle schnell ohne ökonomische Auswirkungen ausprobiert werden.

„Sternschnuppe"

Das vorliegende Programm wurde für den Z 1013 erarbeitet. Auf anderen Computern lassen sich einige Befehle kürzer und damit einfacher darstellen.

Der Computer zeichnet in zufälligen Abständen die gleiche Anzahl Pünktchen (Sterne: 240 POKE P, 213) und Kreise (Planeten: 220 POKE P, 140) auf den Bildschirm.

Bei der Version 1 sind es 60...75 und bei Version 2 90...110. Etwa in Bildmitte erscheint auf Tastendruck die Sternschnuppe. Sie läßt sich mit den Cursortasten nach links und rechts bewegen. Da der Z 1013 keine Cursortasten nach oben und unten hat, wurde die „LT-Taste" als Aufwärtstaste (330) und die „Space"-Taste als Abwärtstaste (340) programmiert.

Im Bild 1 sind die einzelnen Bildelemente zur Verdeutlichung gekennzeichnet: a: Stern, b: Planet, c: zurückgelegter Weg der Sternschnuppe (Schweif). Die Aufgabe des Spielers besteht darin, mit möglichst wenig

Schritten in der Version 1 alle Sternchen oder in der Version 2 eine durch den Rechner bestimmte Teilmenge (Anzahl) aufzusammeln.

Jeder eingesammelte Stern wird gezählt (Zeile d in Bild 1). Wurde ein Stern oder der eigene Schweif überfahren, erfolgt eine Fehlerzählung (Zeile e in Bild 2). Nach Beendigung eines Durchlaufes erfolgt eine Punktbewertung (720).

Jeder Spielfeldaufbau erfolgt neu in veränderter Form mit veränderter Anzahl von Sternen und Planeten.

Programmerweiterung

Im oben beschriebenen Programm hat man zwischen den einzelnen Schritten unbegrenzt Zeit zu überlegen. Wesentlich spannender wird es, wenn die im Monitor vorhandene Inkey-Routine genutzt wird, um einen automatischen Vorlauf der Sternschnuppe zu erreichen. Wird in Zeile 128 eine Zahl größer als 500 gewählt, wird die Schrittgeschwindigkeit geringer. Überschreitet man einen seitlichen Spielfeldrand, erscheint die Sternschnuppe auf der gegenüberliegenden Seite in der nächsten Zeile.

Spielprogramm-Listing

010 REM STERNSCHNUPPE
020 OUTCHAR 12
030 PRINT;PRINT;PRINT
040 PRINT"* * S t e r n s c h n u p p e *"
050 FOR I=1 TO 32
060 OUTCHAR 42
070 NEXT I
080 FOR I=1 TO 8
090 PRINT
100 NEXT I
110 PRINT "Version 1 oder Version 2 ?"
120 PRINT;INPUT "V="V
130 OUTCHAR 12
140 IF V<1 GOTO 120
150 IF V>2 GOTO 120
160 REM BILDAUFBAU
165 FOR I=1 TO V
170 P=HEX(EC20);Q=HEX(EDEF)
180 O=HEX(EF40); S=0;T=0
190 U=0;N=0
200 A=RND(12)
210 B=RND(12)
220 POKE P,140
230 P=P+B
240 POKE P,213
250 P=P+A;T=T+1
260 IF P<O GOTO 200
270 NEXT I
280 GOSUB 500
285 REM SPIEL
290 S=S+1
300 W=INCHAR
310 IF W=8 Q=Q-1;GOTO 360
320 IF W=9 Q=Q+1;GOTO 360
330 IF W=32Q=Q+32;GOTO360
340 IF W=85Q=Q-32;GOTO360
350 GOTO 300
360 A=PEEK(Q)
370 IF A#32 GOSUB 395
380 POKE Q,42
390 GOTO 290
395 REM PUNKTE UND FEHLERZAEHLUNG
400 PRINT
410 IF A=213 U=U+1
420 IF A#213 GOTO 470
430 PRINT U,"-Punkte von ",T
440 PRINT;PRINT
450 IF U=T GOTO 600
460 RETURN
470 N=N+1
480 PRINT "Das ist der",#2,N,".Fehler"
490 RETURN
500 REM FENSTER
510 POKE HEX(1B),HEX(80)
520 POKE HEX(1C),HEX(EF)
530 POKE HEX(1D),0
540 POKE HEX(1E),HEX(F0)
550 CALL HEX(F6D1)
560 RETURN
600 POKE HEX(1B),0
610 POKE HEX(1C),HEX(EC)
620 POKE HEX(1D),0
630 POKE HEX(1E),HEX(F0)
640 CALL HEX(F6D1)
645 REM AUSWERTUNG
650 OUTCHAR 12
660 PRINT U," Punkte"
670 PRINT;PRINT
680 PRINT N," Fehler"
690 PRINT;PRINT
700 PRINT S," Schritte"
710 PRINT;PRINT;PRINT;PRlNT
720 J=((350-S)*U)/(N+1)
730 PRINT;PRINT;PRINT
740 PRINT"Damit hast Du:"
750 PRINT;PRINT J;PRINT
760 PRINT "Punkte erreicht."
770 PRINT;PRINT
780 FOR I=1 TO 32
790 OUTCHAR 203
800 NEXT I
810 PRINT;PRINT;PRINT
820 PRINT " Noch einmal? Dann bitte"
830 PRINT;PRINT "Taste>J< druecken!"
840 W=INCHAR
850 IF W=74 GOTO 10
860 OUTCHAR 12
870 PRINT;PRINT;PRINT;PRINT;TAB(6)
880 PRINT "Bis bald"
890 STOP 

Spielprogramm-Erweiterung

122 INPUT "Geschwindigkeit ( 1 - 9 )" G
124 IF G > 9 GOTO 122
126 IF G < 1 GOTO 122
128 G = 500 / G
275 X = HEX (3600); GOSUB 900
300 CALL HEX (3600); W - PEEK ( HEX (3A00) )
301 IFW = 0W = Y
302 Y = W
303 IF Q < O POKE (HEX (3A00) ), 20
306 IF Q > HEX (EC00) POKE (HEX (3A00) ), 20
305 FOR I = 1 TO G; NEXT I 
900 POKE X, HEX (CD)
910 POKE (X+1), HEX (30)
920 POKE (X+2), HEX (F1)
930 POKE (X+3), HEX (32)
940 POKE (X+4), 0
950 POKE (X+5), HEX (3A)
960 POKE (X+6) HEX (C9)
970 RETURN