Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
1 REM PROGRAMM"HALMA"
2 REM RENZ,RED EC745,801 DRESDEN
4 CLEAR 256:GOTO 5000
5 BORDER 1:E=33:Z=1:D=0
10 WINDOW 0,23,0,39:PAPER 1:CLS
17 WINDOW 1,3,4,14
20 PAPER 5:INK 8:CLS
21 PRINT AT(1,4);" "
22 PRINT AT(2,5);"H A L M A"
24 PAPER 1:INK 8:PRINT AT(9,0);"ZEILE:"
26 PRINT AT(11,0);"SPALTE:"
28 PRINT AT(13,0);"RICHTUNG:"
32 A$="1 2 3 4 5 6 7"
34 PRINT AT(2,23);A$:PRINT AT(19,23);A$
38 FOR I=1 TO 7:A=3+2*I:J=64+I
42 PRINT AT(A,20);CHR$(J)
44 PRINT AT(A,37);CHR$(J):NEXT I
45 PAPER 1:INK 6
46 FOR I=3 TO 18
47 FOR J=21 TO 36
48 PRINT AT(I,J);CHR$(255)
49 NEXT J:NEXT I
52 PAPER 5:INK 8
54 A$=""
56 FOR I=4 TO 16 STEP 2:PRINT AT(I,26);A$:NEXT I
62 FOR I=8 TO 12 STEP 2:PRINT AT(I,22);A$
68 PRINT AT(I,30);A$:NEXT I
70 A$=""
72 FOR I=5 TO 17 STEP 2:PRINT AT(I,26);A$:NEXT I
76 FOR I=9 TO 13 STEP 2:PRINT AT(I,22);A$
82 PRINT AT(I,30);A$:NEXT I
100 WINDOW 21,23,0,39:BEEP
101 PAPER 1:PRINT AT(21,0);" "
102 IF Z>1 THEN GOTO 210
105 PAPER 5:INK 8:CLS
110 PRINT AT(22,2);"KANN'S LOSGEHEN? (J)/N"
112 PRINT AT(21,0);" "
115 PAPER 3:INK 1:PRINT AT(22,25);">"
130 A$=INKEY$
135 IF A$="N"THEN GOTO 900
140 IF A$="J"THEN GOTO 200
145 IF A$=CHR$(13)THEN GOTO 200
150 GOTO 130
200 PAPER 5:INK 8:CLS
205 PRINT AT(22,3);"ENTFERNEN SIE ZUERST EINEN STEIN!"
208 PRINT AT(21,0);" "
210 GOSUB 1000
220 GOSUB 3000
222 IF Z>1 THEN GOTO 235
225 PAPER 5:INK 8:CLS
227 PRINT AT(21,0);" "
230 PRINT AT(22,3);"SPRINGEN SIE AUF'S FREIE FELD!"
235 GOSUB 1000
240 FOR A=8 TO 11
245 GOSUB 4000
250 IF W=1 THEN A=11:NEXT A:GOTO 300
255 NEXT A
260 PAPER 5:INK 8:CLS
265 PRINT AT(22,3);"DER STEIN KANN NICHT SPRINGEN!"
267 PRINT AT(21,0);" "
270 PAPER 3:INK 1:PRINT AT(9,10);"?"
275 BEEP
280 GOTO 235
300 PAPER 3:INK 1:PRINT AT(13,10);">"
310 A$=INKEY$
315 IF LEN(A$)=0 THEN GOTO 310
320 PAPER 1:CLS
322 PRINT AT(21,0);" "
325 PRINT AT(13,12);" ":PRINT AT(13,10);" "
330 A=ASC(A$)
335 FOR J=8 TO 12
340 IF A=J THEN J=12:NEXT J:GOTO 400
345 NEXT J
350 PAPER 5:INK 8:CLS
352 PRINT AT(21,0);" "
355 PRINT AT(22,5);"PFEILE BENUTZEN!"
360 PAPER 3:INK 1:PRINT AT(13,12);"?"
365 BEEP
370 GOTO 300
400 IF A<>12 THEN GOTO 440
405 PAPER 5:INK 8:CLS
410 PRINT AT(22,5);"KONZENTRATION!"
411 PRINT AT(21,0);" "
412 BEEP
415 GOTO 235
440 GOSUB 4000
445 IF W=1 THEN GOTO 500
450 PAPER 5:INK 8:CLS
452 PRINT AT(21,0);" "
455 PRINT AT(22,3);"SPRUNG IST NICHT MOEGLICH!"
460 PAPER 3:INK 1:PRINT AT(13,12);"?"
465 BEEP
470 GOTO 300
500 GOSUB 3000
505 I=I+K:GOSUB 3000
510 I=I+K
515 POKE I,132
520 POKE I-1,133:POKE I-40,135:POKE I-41,134
600 J=0:S=0
605 FOR I=-4899 TO-4405 STEP 2
610 IF J=8 THEN I=I+64:J=0
615 IF PEEK(I)<>132 THEN J=J+1:NEXT I
617 IF I=-4403 GOTO 700
620 S=S+1
625 FOR A=8 TO 11
630 GOSUB 4000
635 IF W=1 THEN A=11:NEXT A:GOTO 235
640 NEXT A
645 J=J+1:NEXT I
700 PAPER 5:INK 8:A=4:I=12:J=1
703 CLS
704 PRINT AT(21,0);" "
705 IF S<3 THEN GOTO 715
710 IF S<D THEN PRINT AT(21,4);"SCHON BESSER!"
711 GOTO 725
715 IF S=1 THEN PRINT AT(22,A);"TOLL!! NUR":A=15
720 IF S=2 THEN PRINT AT(22,A);"PRIMA, NUR":A=15
725 PRINT AT(22,A);"NOCH",S,"STEIN"
727 IF S>9 THEN I=13
730 IF S>1 THEN PRINT AT(22,A+I);"E":J=2
735 PRINT AT(22,A+I+J); "UEBRIG!"
738 IF D=50 THEN GOTO 790
740 PRINT AT(23,4);"NEUES SPIEL? (J)/N "
745 PAPER 3:INK 1
750 PRINT AT(23,24);">"
755 D=S
760 IF D<E THEN E=D
761 A$=INKEY$
763 IF A$="J"THEN Z=Z+1:GOTO 10
764 IF A$=CHR$(13)THEN Z=Z+1:GOTO 10
765 IF A$="N"GOTO 767
766 GOTO 761
767 PAPER 5:INK 8:CLS:PRINT AT(21,0);" "
770 PRINT AT(21,4);"BESTES ERGEBNIS BEI"
775 IF Z<2 THEN PRINT AT(21,23);Z,"VERSUCH:" :GOTO 782
780 PRINT AT(21,23);Z,"VERSUCHEN:"
782 S=E
785 A=10:I=12:J=1:D=50:GOTO 725
790 PRINT AT(23,4);"BIS ZUM NAECHSTEN MAL!"
795 WINDOW 0,23,0,39
800 END
900 PAPER 5:INK 8:CLS
905 PRINT AT(21,0);" "
910 PRINT AT(21,4);"SCHADE!"
920 PRINT AT(23,4);"AUF WIEDERSEHEN!"
925 WINDOW 0,23,0,39
930 END
1000 REM UP KOORDINATEN
1010 PAPER 1:PRINT AT(9,8);" ":PRINT AT(11,9);" "
1020 PAPER 3:INK 1:PRINT AT(9,7);">"
1025 A$=INKEY$
1028 IF LEN(A$)=0 THEN GOTO 1025
1035 PAPER 1:INK 3:CLS:PRINT AT(9,10);" "
1037 PRINT AT(21,0);" "
1040 PRINT AT(9,8);A$
1045 PRINT AT(9,7);" "
1050 FOR I=0 TO 6
1055 IF ASC(A$)=65+I THEN II=I:I=6:NEXT I:GOTO 1200
1060 NEXT I
1062 WINDOW 21,23,0,39
1065 PAPER 5:INK 8:CLS:PRINT AT(22,3);"BUCHSTABEN A-G VERWENDEN!"
1070 PRINT AT(21,0);" "
1075 PAPER 3:INK 1:PRINT AT(9,10);"?"
1077 BEEP
1080 GOTO 1000
1200 PAPER 3:INK 1:PRINT AT(11,8);">"
1210 PAPER 1:PRINT AT(11,9);" "
1215 A$=INKEY$
1217 IF LEN(A$)=0 THEN GOTO 1215
1220 PAPER 1:INK 3:PRINT AT(11,9);A$
1222 PRINT AT(11,11);" ":CLS
1223 PRINT AT(21,0);" "
1225 PRINT AT(11,8);" "
1230 FOR J=1 TO 7
1235 IF VAL(A$)=J THEN GOTO 1300
1240 NEXT J
1245 PAPER 5:INK 8:CLS:PRINT AT(22,5);"ZAHLEN 1-7 VERWENDEN!"
1247 PRINT AT(21,0);" "
1250 PAPER 3:INK 1:PRINT AT(11,11);"?"
1252 BEEP
1255 GOTO 1200
1300 I=-4899+II*80+2*J
2105 IF PEEK(I)=132 THEN RETURN
2110 PAPER 5:INK 8:CLS:PRINT AT(22,6);"DA IST KEIN STEIN!"
2115 PRINT AT(21,0);" "
2120 PAPER 3:INK 1:PRINT AT(9,10);"?"
2127 BEEP
2130 GOTO 1000
3000 REM UP STEIN TILGEN
3005 POKE I,32:POKE I-1,32
3015 POKE I-40,32:POKE I-41,32:RETURN
4000 REMUP SPRUNG MOEGL.?
4005 W=0
4010 IF A=8 THEN K=-2
4015 IF A=9 THEN K=2
4020 IF A=10 THEN K=80
4025 IF A=11 THEN K=-80
4035 IF PEEK(I+K)<>132 THEN RETURN
4040 IF PEEK(I+2*K)<>32 THEN RETURN
4045 W=1:RETURN
5000 WINDOW 0,23,0,39:PAPER 1:INK 8:CLS
5002 PRINT AT(0,0);" "
5005 BORDER 2
5010 PRINT AT(2,2);"HEIMCOMPUTER robotron Z9001"
5011 PRINT AT(6,2);CHR$(136)
5012 PRINT AT(4,2);CHR$(193)
5013 PRINT AT(4,37);CHR$(137)
5014 PRINT AT(6,37);CHR$(200)
5015 PRINT AT(5,2);CHR$(159)
5016 PRINT AT(5,37);CHR$(192)
5020 PRINT AT(5,3);"SPIEL"
5022 FOR I=3 TO 36
5023 PRINT AT(4,I);CHR$(158):PRINT AT(6,I);CHR$(248)
5024 NEXT I
5025 INK 2:PRINT AT(8,2);STRING$(36,"")
5026 FOR I=9 TO 13:PRINT AT(I,2);"":PRINT AT(I,37);"":NEXT I
5027 PRINT AT(14,2);STRING$(36,"")
5030 INK 8:PRINT AT(11,24);"'STECK'HALMA"
5040 INK 3:PRINT AT(5,29);"R+HALMA"
5050 PRINT INK 4;AT(22,31);">ENTER<"
5060 INK 3
5070 PRINT AT(18,2);"VEB ROBOTRON-MESSELEKTRONIK "
5080 PRINT AT(20,2);">OTTO SCHOEN< DRESDEN
5200 A$=INKEY$
5215 IF A$=CHR$(13)THEN GOTO 5
5220 GOTO 5200