Verwendete IO-Ports bzw. Hardware:
Es braucht eine Weile bevor es richtig losgeht, ca. eine Minute warten.
Statt der Eingabe von Zahlen für die Zeile und Spalte
werden hier Sonderzeichen angezeigt. I..Q Verwenden!
Genialer Hack für die 8x4 Tastatur:
P."ZEILE:"
Z=INC.
Z=Z-24
OUTC.Z
Z=Z-48;
Die Eingabewerte werden um 62 verringert.
Also geht es hier von I..Q, statt 1..9.
SPIELERKLAERUNG
_______________
1 FLUGZEUGTRAEGER
3 SCHNELLBOOTE UND
6 U-BOOTE
DER GEGNERISCHEN FLOTTE SIND
AUSGELAUFEN.DIESE MUESSEN SIE
VERNICHTEN !
VOR IHNEN ERSCHEINT DANN EIN
KOORDINATENSYSTEM,DAS 9 KAESTCHEN
BREIT UND 9 KAESTCHEN LANG IST.
HIER BEFINDEN SICH DIE FEINDLICHEN
OBJEKTE.(DIESE SIND NATUERLICH
NICHT EINGEZEICHNET)
AUF DIE STELLE,AUF DER SIE EIN OBJEKT
VERMUTEN,KOENNEN SIE (DURCH EINGABE
DER ZIELKOORDINATEN) EINEN SCHUSS
ABGEBEN.
HINWEIS: STELLEN,AUF DIE SIE GESCHOSSEN
HABEN,WERDEN BEI EINEM TREFFER MIT >●<,
ANDERENFALLS MIT >◯< MARKIERT.
WENN SIE ALLE ZIELE VERNICHTET HABEN,
WIRD DAS SPIEL ABGEBROCHEN UND
AUSGEWERTET.
HINWEIS: ZWISCHEN DEN SCHIFFEN IST
IMMER EIN KAESTCHEN FREI.
DIE SCHIFFE SIND ABER UNTERSCHIEDLICH
GROSS.
EIN FLUGZEUGTRAEGER IST 4 KAESTCHEN,
EIN SCHNELLBOOT 2 KAESTCHEN UND EIN
U-BOOT IST 1 KAESTCHEN LANG BZW. BREIT.
MERKEN SIE SICH: SIE HABEN
1 FLUGZEUGTRAEGER
3 SCHNELLBOOTE UND
6 U-BOOTE ZU VERNICHTEN !
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
2 OUTC.12;D=32;E=255
3 P.;P.;P.;P.;P.;P.;TAB(15)
4 A=1;C=H.(EC00)+15+6*32
5 F.I=1 TO 78
6 @(A)=0;@(A+1)=0;POKE C,D;@(A+2)=0;@(A+3)=0;A=A+4
7 POKE C,E;N.I
8 OUTC.12;T=0;U=0;K=0
9 X=5;GOSUB9100
10 REM SCHIFFEVERSENKEN
11 F.I=1TO14
12 P.
13 N.I
14 P." SCHIFFE-VERSENKEN ",
15 B=''
16 F.I=1 TO 13
17 P.
18 N.I
20 POKE H.(EC00)+27*32,32
21 A=H.(EC00)+7*32
22 F.I=1 TO 32
23 POKE A,B
25 A=A+1
26 N.I
27 F.I=1 TO 15
28 POKE A-1,B
29 A=A+32
30 N.I
31 F.I=1 TO 32
32 POKE A-33,B
33 A=A-1
34 N.I
36 F.I=1 TO 15
37 POKE A-32,B
38 A=A-32
39 N.I
40 F.I=1 TO 2000
41 N.I
42 IF B#32 B=32;GOTO21
45 REM
46 REM AB 2 NULLSETZEN ALLER @
47 REM
50 GOSUB1500
60 REM DIESES PROGRAMM WURDE VON JENS MOECKEL,8400 RIESA,MAGDE-
61 REM BURGER STR.1b GESCHRIEBEN.DIE WEITERGABE AN DRITTE IST
62 REM ERLAUBT,WENN DIE URHEBERSCHAFT NICHT VERAENDERT ODER
63 REM VERSCHLEIERT WIRD. RIESA,DEN 25.3.1986
80 OUTC.12
82 P.;P.;P.;P."WUENSCHEN SIE SPIEL-"
84 P.;P."ERKLAERUNGEN ? (J/ENT):",
86 Z=INC.;OUTC.Z;OUTC.12;IFZ=13G.405
90 P.;P.;P." SPIELERKLAERUNG"
95 P." "
100 P.;P.;P."1 FLUGZEUGTRAEGER"
110 P.;P."3 SCHNELLBOOTE UND"
120 P.;P."6 U-BOOTE"
130 P.;P."DER GEGNERISCHEN FLOTTE SIND"
140 P.;P."AUSGELAUFEN.DIESE MUESSEN SIE"
150 P.;P."VERNICHTEN !"
160 P.;P." >ENTER<"
161 POKE H.(EC00)+19*32,32
162 A=INC.;OUTC.A
165 GOSUB9100
170 OUTC.12;P.;P.;P."VOR IHNEN ERSCHEINT DANN EIN"
180 P.;P."KOORDINATENSYSTEM,DAS 9 KAEST-"
190 P.;P."CHEN BREIT UND 9 KAESTCHEN LANG"
200 P.;P."IST.HIER BEFINDEN SICH DIE "
210 P.;P."FEINDLICHEN OBJEKTE.(DIESE SIND"
220 P.;P."NATUERLICH NICHT EINGEZEICHNET)"
230 P.;P."AUF DIE STELLE,AUF DER SIE EIN"
240 P.;P."OBJEKT VERMUTEN,KOENNEN SIE"
250 P.;P."(DURCH EINGABE DER ZIELKOORDI-"
260 P.;P."NATEN) EINEN SCHUSS ABGEBEN."
270 P.;P."HINWEIS: STELLEN,AUF DIE SIE GE-"
280 P."SCHOSSEN HABEN,WERDEN BEI EINEM"
290 P.;P."TREFFER MIT >< ,ANDERENFALLS"
300 P.;P."MIT >< MARKIERT."
310 P.;P." >ENTER<"
315 POKE H.(EFE0),32
320 A=INC.;OUTC.A;OUTC.12
322 GOSUB9100
325 P."WENN SIE ALLE ZIELE VERNICHTET"
330 P.;P."HABEN,WIRD DAS SPIEL ABGEBROCHEN"
335 P."UND AUSGEWERTET."
336 P.
337 P."HINWEIS: ZWISCHEN DEN SCHIFFEN"
339 P.;P."IST IMMER EIN KAESTCHEN FREI."
341 P.;P."DIE SCHIFFE SIND ABER UNTER-"
342 GOSUB360
343 P.;P."MERKEN SIE SICH: SIE HABEN"
345 P.;P."1 FLUGZEUGTRAEGER"
347 P.;P."3 SCHNELLBOOTE UND"
349 P.;P."6 U-BOOTE ZU VERNICHTEN !!"
350 P.;P." >ENTER<",
352 POKE H.(EFDB),32
355 GOTO400
360 P.;P."SCHIEDLICH GROSS."
362 P.;P."EIN FLUGZEUGTRAEGER IST 4 KAEST-"
364 P."CHEN,EIN SCHNELLBOOT 2 KAESTCHEN"
366 P."UND EIN U-BOOT IST 1 KAESTCHEN"
368 P.;P."LANG BZW. BREIT."
370 RETURN
400 A=INC.;OUTC.A
405 GOSUB9100
410 REM
412 REM SPIELFELD
413 REM
490 OUTC.12
495 P.
500 P." SCHIFFE-VERSENKEN"
900 A=H.(EC00)+134
905 C=49
910 F.I=1 TO 9
920 POKE A,C
940 A=A+2;C=C+1
960 N.I
965 A=H.(EC00)+196;C=49
970 F.I=1 TO 9
980 POKE A,C
990 A=A+64;C=C+1
1000 N.I
1010 A=H.(EC00)+152
1020 F.I=1 TO 9
1030 A=A+46
1040 F.D=1 TO 9
1050 POKE A,218
1060 A=A+2
1080 N.D
1100 N.I
1110 GOTO5200
1499 REM
1500 REM SCHIFFE BILDEN
1501 REM
1530 Z=-5
1540 Y=0
1550 E=1
1555 G=2
1560 @(E)=RND(9)
1565 OUTC.12;P.;P.;P."EINEN MOMENT BITTE !!"
1566 X=100;GOSUB9100
1570 @(G)=RND(9)
1590 F=RND(5)
1592 IF F=5 @(E+2)=@(E)+1;@(E+4)=@(E);@(E+6)=@(E)+1
1594 IF F=5 @(G+2)=@(G);@(G+4)=@(G)+1;@(G+6)=@(G)
1595 IF F=5 @(G+6)=@(G)+1
1596 IF F=5 GOTO1800
1600 IF F=1 @(E+2)=@(E)+1;@(E+4)=@(E)+2;@(E+6)=@(E)+3
1605 IF F=1 @(G+2)=@(2);@(G+4)=@(2);@(G+6)=@(2)
1620 IF F=2 @(E+2)=@(E);@(E+4)=@(E);@(E+6)=@(E)
1630 IF F=2 @(G+2)=@(2)+1;@(G+4)=@(2)+2;@(G+6)=@(2)+3
1640 IF F=3 @(E+2)=@(E)+1;@(E+4)=@(E)+2;@(E+6)=@(E)+1
1650 IF F=3 @(G+2)=@(G);@(G+4)=@(G);@(G+6)=@(G)+1
1660 IF F<4 GOTO1800
1670 @(E+2)=@(E)+1;@(E+4)=@(E)+2;@(E+6)=@(E);F=3;GOTO1650
1710 GOTO2410
1800 REM
1810 H=1
1815 P.;P."ICH DENKE"
1816 X=40;GOSUB9100
1820 F.I=1 TO 8
1840 IF @(H)>9 GOTO1560
1850 H=H+1
1900 N.I
1950 G=10;E=9
1960 P.;P."GEDULD"
1970 X=10;GOSUB9100
1980 F.I=1 TO 3
2020 @(G)=RND(9);@(E)=RND(9)
2040 L=RND(2)
2050 IF L=1 @(G+2)=@(G);@(E+2)=@(E)+1
2060 IF L=2 @(G+2)=@(G)+1;@(E+2)=@(E)
2110 G=G+4;E=E+4
2150 N.I
2155 GOTO2220
2160 H=9
2180 F.I=1 TO 12
2190 IF @(H)>9 GOTO1950
2200 H=H+1
2210 N.I
2215 RETURN
2220 G=10;E=9
2225 M=1
2230 F.N=1 TO 4
2240 F.I=1 TO 6
2245 IF E=M GOTO2260
2250 IF ABS(@(E)-@(M))<=1 IF ABS(@(G)-@(M+1))<=1 GOTO1950
2260 E=E+2;G=G+2
2270 N.I
2280 M=M+2;G=10;E=9
2300 N.N
2320 GOTO3000
2350 E=21;G=22
2370 F.I=1 TO 6
2380 @(E)=RND(9);@(G)=RND(9)
2390 E=E+2;G=G+2
2400 N.I
2410 M=1;E=21
2420 F.I=1 TO 6
2440 F.N=1 TO 16
2445 IF E=M GOTO2580
2450 IF ABS(@(E)-@(M))<=1 IF ABS(@(E+1)-@(M+1))<=1 GOTO2700
2580 M=M+2
2590 N.N
2600 M=1;E=E+2
2620 N.I
2630 RETURN
2700 @(E)=RND(9);@(E+1)=RND(9)
2701 Z=Z+1
2705 IF Z=5 P.;P."GLEICH GEHT'S LOS !"
2706 X=2;GOSUB9100
2710 GOTO2410
3000 G=10;E=9
3005 H=13
3007 F.N=1 TO 2
3010 F.I=1 TO 4
3015 IF G>20 I=3;GOTO3100
3016 IF E=H GOTO3080
3020 IF ABS(@(H)-@(E))<=1 IF ABS(@(H+1)-@(G))<=1 GOTO1950
3080 H=H+2
3100 N.I
3110 G=G+2;E=E+2
3120 H=13
3150 N.N
3180 E=13;G=14
3190 H=17
3195 P.;P."SOFORT"
3196 X=100;GOSUB9100
3200 F.I=1 TO 2
3220 F.M=1 TO 2
3300 IF ABS(@(H)-@(E))<=1 IF ABS(@(H+1)-@(G))<=1 GOTO1950
3310 H=H+2
3320 N.M
3330 G=G+2;E=E+2
3335 H=17
3340 N.I
3400 GOSUB2160
3410 P.;P."NOCH EINE SEKUNDE !"
3415 X=200;GOSUB9100
3420 GOSUB2350
3500 RETURN
5005 GOTO80
5006 G=2;E=1
5007 REM
5008 REM AB 5006 ZUR ANZEIGE DER SCHIFFE AUF SPIELFELD
5009 REM (WIRD NICHT VERWENDET)
5010 F.I=1 TO 16
5015 J=H.(EC00)+132
5020 J=J+@(G)*64;J=J+@(E)*2
5040 POKEJ,42
5050 G=G+2;E=E+2
5070 N.I
5199 REM
5200 REM FENSTER
5201 REM
5210 POKE H.(1B),H.(E0);POKE H.(1C),H.(EE)
5220 POKE H.(1D),0;POKE H.(1E),H.(F0)
5230 CALL H.(F6D1)
5300 GOTO6500
6000 A=1
6005 F.I=1 TO 16
6010 P.@(A),@(A+1)
6020 A=A+2
6030 N.I
6040 RETURN
6500 REM
6590 P.
6600 P.;P."ZEILE:",;Z=INC.;Z=Z-24;OUTC.Z
6602 P.
6605 P.;P."SPALTE:",;S=INC.;S=S-24;OUTC.S
6607 Z=Z-48;S=S-48
6608 P.
6610 IF Z>9 GOTO6630
6612 IF Z<1 GOTO6630
6614 IF S>9 GOTO6630
6616 IF S<1 GOTO6630
6620 GOTO6640
6630 OUTC.12;P.;P.;P."FRECHHEIT !!!"
6632 P.;P."DIESE KOORDINATE GIBT ES NICHT"
6633 X=300;GOSUB9100
6634 F.I=1 TO 2200
6636 N.I
6637 OUTC.12
6638 GOTO6600
6640 E=1;G=2
6645 B=''
6647 K=K+1
6648 U=U+1
6650 F.I=1 TO 16
6655 A=H.(EC00)+132+S*2+Z*64
6665 IF Z=@(G) IF S=@(E) GOTO6900
6670 G=G+2;E=E+2
6671 N.I
6675 @(140+(K-1)*2)=S;@(141+(K-1)*2)=Z
6676 H=140
6678 IF K=1 GOTO6701
6680 F.I=1 TO K-1
6682 IF @(H)=S IF @(H+1)=Z GOTO7400
6684 H=H+2
6686 N.I
6700 Y=Y+1
6701 IF U>1 M=RND(3)
6702 IF U>1 IF M=2 OUTC.12;P.;P."UND WIEDER DANEBEN !";GOTO6750
6703 IF U>1 IF M=3 OUTC.12;P.;P."DAS WAR DER NAECHSTE";P.
6704 IF U>1 IF M=3 P."BLINDGAENGER !!!";GOTO6750
6708 OUTC.12;P.
6710 P.;P."DER SCHUSS GING INS WASSER !"
6750 REM
6760 IF Y=5 P.;P."DAS WAREN 5 BLINDGAENGER";P.
6765 IF Y=5 P."HINTEREINANDER !!"
6770 IF Y=10 P.;P."DAS WAR DER 10. BLINDGAENGER";P.;P."IN FOLGE"
6780 F.I=1 TO 2400
6782 N.I
6785 B=''
6790 POKE A,B
6800 OUTC.12;GOTO6600
6900 C=RND(5)
6905 GOTO6990
6910 OUTC.12
6920 IF C=1 P.;P.;P."TREFFER BACKBORD !!!"
6930 IF C=2 P.;P.;P."TREFFER STEUERBORD !!"
6940 IF C=3 P.;P.;P."VOLLTREFFER !!!"
6950 IF C=4 P.;P.;P."LECK AM HECK !!!!"
6960 IF C=5 P.;P.;P."BUG ZERSCHOSSEN !!"
6963 X=50;GOSUB9100
6965 Y=0
6970 F.I=1 TO 2000
6974 N.I
6980 POKE A,B
6982 T=T+1
6983 IF T=16 GOTO7500
6984 U=0
6985 @(100+(T-1)*2)=S;@(101+(T-1)*2)=Z
6986 GOTO7000
6990 H=100
6991 F.I=1 TO T
6992 IF @(H)=S IF @(H+1)=Z GOTO7100
6994 H=H+2
6996 N.I
6998 GOTO6910
7000 OUTC.12;GOTO6600
7100 REM
7120 OUTC.12;P.;P."DIE STELLE WAR ZWAR SCHON "
7130 P.;P."GETROFFEN,ABER DOPPELT HAELT";P.;P."BESSER !!"
7135 Y=Y+1
7140 F.V=1 TO 3000
7150 N.V
7160 GOTO7000
7400 OUTC.12
7410 P.;P.;P."SIE KOENNEN RUHIG MERFACH AUF"
7420 P.;P."EIN FELD SCHIESSEN,WENN IHNEN"
7425 Y=Y+1
7430 P.;P."DAS GEFAELLT !!!";U=0;GOTO6750
7500 REM
7520 REM VOLLES FENSTER
7530 POKE H.(1B),0;POKE H.(1C),H.(EC)
7540 POKE H.(1D),0;POKE H.(1E),H.(F0)
7550 CALL H.(F6D1)
7600 F.I=1 TO 3000
7610 N.I
7615 X=300;GOSUB9100
7620 OUTC.12
7630 P.;P.;P.;P."FUER DIESE 10 ZIELE WAEREN"
7635 P.;P."GENAU 16 SCHUESSE NOETIG"
7637 P.;P."GEWESEN.";P.
7640 P."SIE BENOETIGTEN ",#1,K," !!!"
7650 P.;P."AUSSERDEM HATTEN SIE ",#1,K-T
7660 P.;P."BLINDGAENGER BZW. ROHRKREPIERER."
7670 P.;P.
7680 P."DA KANN ICH NUR SAGEN:";P.;P.
7690 IF K>35 GOTO7700
7691 G.7690+2*RND(2)+1
7693 P."SIE SIND SUPER !!";G.8500
7695 P."DAS IST KAUM ZU GLAUBEN !!"
7699 GOTO8500
7700 IF K>40 GOTO7740
7701 G.7700+RND(2)*5
7705 P."DAFUER HABEN SIE EINEN";P.;P."ORDEN VERDIENT !";G.8500
7710 P."EIN BLINDES HUHN FINDET"
7720 P.;P."AUCH MAL EIN KORN !!"
7739 GOTO8500
7740 IF K>45 GOTO7760
7750 P."DAS IST WIRKLICH BEMERKENSWERT !"
7759 GOTO8500
7760 IF K>50 GOTO7780
7770 P."SIE SIND JA EINE RICHTIGE ";P.;P."INTELLIGENZBESTIE !!"
7779 GOTO8500
7780 IF K>53 GOTO7800
7790 P."DAS IST GAR NICHT SO SCHLECHT !"
7799 GOTO8500
7800 IF K>56 GOTO7820
7810 P."SIE HABEN WARSCHEINLICH";P.;P."NACHGEDACHT !!"
7819 GOTO8500
7820 IF K>59 GOTO7840
7830 P."SIE HABEN GUT GESPIELT !"
7839 GOTO8500
7840 IF K>63 GOTO7860
7850 P."MEIN KOMPLIMENT !"
7859 GOTO8500
7860 IF K>66 GOTO7880
7870 P."ICH HAB' SCHON GEGEN";P.;P."BESSERE GESPIELT !"
7879 GOTO8500
7880 IF K>69 GOTO7900
7890 P."SIE SOLLTEN MEHR UEBEN !!"
7899 GOTO8500
7900 IF K>72 GOTO7920
7910 P."DAS WAERE MIR NIE PASSIERT !!"
7919 GOTO8500
7920 IF K>75 GOTO7940
7930 P."SIE SOLLTEN LIEBER DIE FINGER";P.;P."DAVON LASSEN !!"
7939 GOTO8500
7940 IF K>78 GOTO7960
7950 P."DAS WAR UNTER ALLER WUERDE !!"
7959 GOTO8500
7960 IF K>81 GOTO7980
7970 P."ES IST ZUM VERZWEIFELN ";P.;P."MIT IHNEN !!"
7979 GOTO8500
7980 IF K>85 GOTO8000
7990 P."ES IST HOFFNUNGSLOS MIT IHNEN !!"
7999 GOTO8500
8000 P."SIE SOLLTEN LIEBER MURMELN";P.;P."SPIELEN !!"
8500 P.;P.;P.;P."NOCH EINMAL ? (J/ENT):",;A=INC.;OUTC.A
8510 X=5;GOSUB9100
8600 IF A=13 GOTO8700
8609 A=1
8610 F.I=1 TO 160
8620 @(A)=0;@(A+1)=0
8630 A=A+2
8640 N.I
8645 U=0;T=0;K=0
8650 GOSUB1500
8660 GOTO80
8700 REM
8701 REM SCHLUSSBILD
8702 REM
8710 N=185
8720 OUTC.12
8730 F.I=1 TO 14
8735 P.
8740 N.I
8750 P." AUF WIEDERSEH'N ",
8760 M=H.(EC00)+9*32
8780 F.I=1 TO 32
8790 POKE M,N
8800 M=M+1
8820 N.I
8830 F.I=1 TO 11
8840 POKE M-1,N
8845 M=M+32
8850 N.I
8860 F.I=1 TO 32
8870 POKE M-33,N
8875 M=M-1
8880 N.I
8890 F.I=1 TO 11
8900 POKE M-32,N
8905 M=M-32
8910 N.I
8930 F.I=1 TO 3000
8940 N.I
8950 IF N#32 N=32;GOTO8760
8960 OUTC.12
8970 F.I=1TO50;OUT(0)=1
8975 OUT(0)=0
8980 N.I
9000 STOP
9100 OUT(1)=207;OUT(1)=0;OUT(0)=255
9105 IF X=1 GOTO9130
9110 F.I=1 TO X
9120 N.I
9130 OUT(1)=207;OUT(1)=0;OUT(0)=0
9200 RETURN