-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathBAAB.BAS
147 lines (147 loc) · 5.19 KB
/
BAAB.BAS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
10 GOTO 1000:REM Basicode-2 subroutines
20 CLEAR:IN$=" ":SR=0:SR$="":CT=0:CN=0:OHT%=80:OVT%=24
22 KEY OFF:SCREEN 0:WIDTH OHT%:COLOR 7,0,0:CLS:RANDOMIZE TIMER*100
29 GOTO 1010
100 CLS:RETURN
110 GOSUB 111:LOCATE OVE%+1,OHO%+1:RETURN
111 OVE%=INT(VE):OHO%=INT(HO)
112 IF OVE%<0 THEN OVE%=0 ELSE IF OVE%>=OVT% THEN OVE%=OVT%-1
113 IF OHO%<0 THEN OHO%=0 ELSE IF OHO%>=OHT% THEN OHO%=OHT%-1
114 RETURN
120 HO=POS(0)-1:VE=CSRLIN-1:RETURN
200 IN$=INKEY$:RETURN
210 IN$=INPUT$(1):RETURN
250 BEEP:RETURN
260 RV=RND:RETURN
270 FR=FRE(""):RETURN
300 SR$=MID$(STR$(ABS(SR)),2):IF LEFT$(SR$,1)="." THEN SR$="0"+SR$
301 IF SR<0 THEN SR$="-"+SR$
302 RETURN
310 O#=ABS(SR)+.5*10^-CN:O!=INT(O#):O#=1+O#-O!:O$=""
311 IF CN THEN O$="."+STRING$(CN,48):IF O#>1 THEN MID$(O$,1)=MID$(STR$(O#),3)
312 O$=MID$(STR$(O!),2)+O$:IF VAL(O$)>0 AND SR<0 THEN O$="-"+O$
313 IF LEN(O$)<=CT THEN SR$=SPACE$(CT-LEN(O$))+O$:RETURN
314 SR$=STRING$(CT,42):RETURN
350 LPRINT SR$;:RETURN
360 LPRINT:RETURN
1000 A=100:GOTO 20
1010 REM*** BAAB ***
1020 N=0:DIM B(4,4)
1030 REM*** INITIALISATIE ***
1040 FOR R=1TO 4
1050 FOR C=1TO 4
1060 GOSUB 260:B(R,C)=INT(RV*2)
1070 NEXT C:NEXT R
1080 REM*** UITLEG ***
1090 GOSUB 100
1100 PRINT"Wilt u uitleg (J/N)";:GOSUB 210
1110 IF(IN$="j")OR(IN$="J")THEN PRINT:GOTO 1140
1120 IF(IN$="n")OR(IN$="N")THEN 1300
1130 GOSUB 250:GOTO 1080
1140 PRINT:PRINT"Op (S)cherm of (P)apier";:GOSUB 210
1150 IF(IN$="s")OR(IN$="S")THEN 1180
1160 IF(IN$="p")OR(IN$="P")THEN 1230
1170 GOSUB 250:GOTO 1080
1180 GOSUB 100
1190 READ SR$:IF SR$="#"THEN GOSUB 210:GOSUB 100:GOTO 1190
1200 IF SR$="*"THEN GOSUB 210:GOTO 1300
1210 IF LEN(SR$)>37THEN PRINT
1220 PRINT SR$:GOTO 1190
1230 PRINT:PRINT:PRINT
1240 PRINT"Zet uw printer klaar en druk op '*'";:GOSUB 210
1250 IF IN$<>"*"THEN 1300
1260 GOSUB 360
1270 READ SR$:IF SR$="#"THEN 1270
1280 IF SR$="*"THEN GOSUB 360:GOSUB 360:GOSUB 360:GOTO 1300
1290 GOSUB 350:GOSUB 360:GOTO 1270
1300 REM*** SCHERMLAYOUT***
1310 GOSUB 100
1320 VE=22:HO=0:GOSUB 110
1330 PRINT"S=stoppen (C)1989, W.v.d.Elshout"
1340 VE=3:HO=25:GOSUB 110
1350 PRINT"************"
1360 VE=4:GOSUB 110:PRINT"*** ABBA ***"
1370 VE=5:GOSUB 110:PRINT"************"
1380 VE=3:HO=0:GOSUB 110:PRINT"+-->rij"
1390 VE=4:GOSUB 110:PRINT"!"
1400 VE=5:GOSUB 110:PRINT"!"
1410 VE=6:GOSUB 110:PRINT"!"
1420 VE=7:GOSUB 110:PRINT"kolom"
1430 N=N+1:VE=0:HO=12:GOSUB 110:PRINT"1 2 3 4"
1440 HO=25:GOSUB 110:PRINT"BEURT:";
1450 SR=N:GOSUB 300:PRINT SR$
1460 FOR R=1TO 4:HO=10:VE=VE+1:GOSUB 110
1470 PRINT"-+-+-+-+-+"
1480 SR=R:GOSUB 300:VE=VE+1
1490 GOSUB 110:PRINT SR$+"!";
1500 FOR C=1TO 4
1510 IF B(R,C)=0 THEN PRINT"A!";:GOTO 1530
1520 PRINT"B!";
1530 NEXT C:NEXT R:VE=VE+1:GOSUB 110:PRINT"-+-+-+-+-+"
1540 VE=15:HO=0:GOSUB 110
1550 PRINT"======================================="
1560 VE=19:GOSUB 110
1570 PRINT"======================================="
1580 REM*** ZET INVOEREN ***
1590 VE=17:HO=0:GOSUB 110
1600 PRINT" "
1610 GOSUB 110:PRINT"RIJ = ";:GOSUB 210
1620 IF(IN$="S")OR(IN$="s")THEN 1790
1630 R=VAL(IN$)
1640 IF(R<1)OR(R>4)THEN GOSUB 250:GOTO 1610
1650 PRINT IN$
1660 FOR C=1TO 4
1670 B(R,C)=1-B(R,C)
1680 NEXT C
1690 HO=20:GOSUB 110:PRINT"KOLOM = ";:GOSUB 210
1700 IF(IN$="S")OR(IN$="s")THEN 1790
1710 C=VAL(IN$)
1720 IF(C<1)OR(C>4)THEN GOSUB 250:GOTO 1690
1730 PRINT IN$
1740 B(R,C)=1-B(R,C)
1750 FOR R=1TO 4
1760 B(R,C)=1-B(R,C)
1770 NEXT R
1780 GOTO 1430
1790 REM*** STOPPEN ***
1800 FOR VE=15TO 22:HO=0:GOSUB 110
1810 PRINT" "
1820 NEXT VE
1830 VE=17:GOSUB 110
1840 PRINT"**1*********************************1**"
1850 PRINT"**9**** WALTHER VAN DEN ELSHOUT ****9**"
1860 PRINT"**8**** copyright nos hilversum ****8**"
1870 PRINT"**9*********************************9**"
1880 VE=12:GOSUB 110:END
25000 DATA" B A A B UITLEG / SPELREGELS"
25010 DATA" ============================="
25020 DATA"U ziet steeds 16 velden waarop ogen-"
25030 DATA"schijnlijk willekeurig A's en B's zijn"
25040 DATA"geplaatst. Welnu, als u een van de vel-"
25050 DATA"den aangeeft dan zullen alle letters"
25060 DATA"in zowel de horizontale als vertikale"
25070 DATA"rijen die door dit aangegeven veld lo-"
25080 DATA"pen veranderen. Dus elke A wordt nu een"
25090 DATA"B en omgekeerd. We moeten het volgende"
25100 DATA"resultaat krijgen: ","#"
25110 DATA" +-+-+-+-+"
25120 DATA" !A!B!B!A!"
25130 DATA" HET AANTAL +-+-+-+-+"
25140 DATA" BEURTEN WORDT !A!B!B!A!"
25150 DATA" BIJGEHOUDEN. +-+-+-+-+"
25160 DATA" U STOPT, !A!B!B!A!"
25170 DATA" ALS U DAT WILT. +-+-+-+-+"
25180 DATA" !A!B!B!A!"
25190 DATA" +-+-+-+-+"
25200 DATA"","",""
25210 DATA"Veel plezier ! Walther v.d. Elshout"
25220 DATA"*"
30000 REM
30010 REM%%%%%%%%%%%%%%%%%%%%%%%%%%%
30020 REM% WALTHER VAN DEN ELSHOUT %
30030 REM% GENERAAL WICHERSLAAN 14 %
30040 REM% 5623 GS EINDHOVEN %
30050 REM% TEL: 040 - 451098 %
30060 REM% COMMODORE 64 <> DEC.'89 %
30070 REM% COPYRIGHT NOS HILVERSUM %
30080 REM%%%%%%%%%%%%%%%%%%%%%%%%%%%