-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy path09_Letterbak.bc2
127 lines (126 loc) · 3.76 KB
/
09_Letterbak.bc2
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
1000 A=500:GOTO20:REM"LETTERBAK"
1010 DIMA$(27),B$(27),C(4)
1020 GOSUB100:PRINT
1030 GOSUB2080
1040 :
1050 REM === instructies ===
1060 PRINT"==================<==============":PRINT
1070 PRINT" HELP! DEZE COMPUTER SCHUIFT"
1080 PRINT:PRINT" HET HELE ALFABET DOOR ELKAAR!":PRINT
1090 PRINT"=================================":PRINT
1100 PRINT" Maak jij het weer in orde?":PRINT
1110 PRINT" Je hoeft alleen maar de letters":PRINT
1120 PRINT" aan te toetsen die je in de lege":PRINT
1130 PRINT" plek wilt schuiven.":PRINT:PRINT
1140 PRINT"=================================":PRINT
1150 :
1160 REM === inname aantal ===
1170 PRINT" HOEVEEL KEER MAG DE COMPUTER"
1180 PRINT:PRINT" SCHUIVEN ";:INPUTI
1190 GOSUB100
1200 :
1210 REM === letterbak tekenen ===
1220 HO=LI+3:VE=8:GOSUB110
1230 A$="+-+-+-+-+-+-+-+-+-+"
1240 B$="! ! ! ! ! ! ! ! ! !"
1250 PRINTA$
1260 FORVE=9 TO13:GOSUB110:PRINTB$
1270 VE=VE+1:GOSUB110:PRINTA$:NEXTVE
1280 :
1290 REM === A$() en B$() vullen ===
1300 FORN=1 TO26:A$(N)=CHR$(64+N):B$(N)=A$(N):NEXTN
1310 A$(27)=" ":B$(27)=" "
1320 :
1330 REM === letters in bak zetten ==
1340 FORNR=1 TO27:GOSUB1820:NEXTNR
1350 :
1360 REM === teksten ===
1370 HO=LI+4:VE=2:GOSUB110:PRINT"L E T T E R B A K"
1380 HO=LI+10:VE=4:GOSUB110:PRINT"0 x"
1390 HO=LI+4:VE=6:GOSUB110:PRINT"G E S C H O V E N"
1400 HO=LI:VE=18:GOSUB110:PRINT"J I J H E B T 0 x"
1410 HO=LI+4:VE=20:GOSUB110:PRINT"G E S C H O V E N"
1420 :
1430 REM === A$() in de war maken ===
1440 D=27:E=0
1450 FORN=1 TOI
1460 GOSUB1900
1470 GOSUB260:X=1+INT(RV*(B-1))
1480 IFC(X)=E THEN1470
1490 A$(D)=A$(C(X)):A$(C(X))=" "
1500 NR=C(X):GOSUB1820:NR=D:GOSUB1820
1510 E=D:D=C(X)
1520 HO=LI+10:VE=4:GOSUB110
1530 PRINT;N;" x"
1540 NEXTN:T=0
1550 :
1560 REM === DE SPEEL ROUTINE ===
1570 F=0:REM foutvlag als A$()<>B$()
1580 REM === alles al op z'n plaats?==
1590 FORN=1 TO27:IFA$(N)<>B$(N) THENF=1
1600 NEXTN
1610 IFF=0 THENGOSUB2020:GOTO1020
1620 :
1630 REM === zoek leeg hokje ===
1640 D=1
1650 IFA$(D)<>" " THEND=D+1:GOTO1650
1660 REM === wie zijn de buren? ===
1670 GOSUB1900
1680 REM === letter intoetsen ===
1690 GOSUB210
1700 REM === is dit 'n buurletter? ===
1710 S=0
1720 IFIN$=A$(BA) THENA$(D)=A$(BA):A$(BA)=" ":S=BA
1730 IFIN$=A$(BB) THENA$(D)=A$(BB):A$(BB)=" ":S=BB
1740 IFIN$=A$(BC) THENA$(D)=A$(BC):A$(BC)=" ":S=BC
1750 IFIN$=A$(BD) THENA$(D)=A$(BD):A$(BD)=" ":S=BD
1760 IFS=0 THEN1790
1770 NR=S:GOSUB1820:NR=D:GOSUB1820
1780 T=T+1:HO=LI+18:VE=18:GOSUB110:PRINT;T
1790 GOTO1560
1810 :
1820 REM === SUBR.A$(NR)PRINTEN ===
1830 HO=LI+2+2*NR
1840 IFHO>(LI+20) THENHO=HO-18:GOTO1840
1850 VE=9+2*INT((NR-1)/9)
1860 GOSUB110:PRINTA$(NR)
1870 GOSUB2140:REM --- vertraging --
1880 RETURN
1890 :
1900 REM === SUBR.BUURHOKJES ZOEKEN ==
1910 B=1
1920 BA=D+9:IFBA>27 THENBA=0:GOTO1940
1930 C(B)=BA:B=B+1
1940 BB=D-9:IFBB<1 THENBB=0:GOTO1960
1950 C(B)=BB:B=B+1
1960 BC=D+1:IF(BC=10) OR(BC=19) OR(BC=28) THENBC=0:GOTO1980
1970 C(B)=BC:B=B+1
1980 BD=D-1:IF(BD=0) OR(BD=9) OR(BD=18) THENBD=0:GOTO2000
1990 C(B)=BD:B=B+1
2000 RETURN
2010 :
2020 REM === SUBR. 'KLAAR!' ===
2030 HO=LI+3:VE=16:GOSUB110:PRINT"--> K L A A R ! <--"
2040 HO=LI+6:VE=22:GOSUB110:PRINT"NOG 'N KEER?";
2050 GOSUB210:IF(IN$="N") OR(IN$="n") THENEND
2055 IF(IN$<>"J") AND(IN$<>"j") THEN2050
2060 RETURN
2070 :
2080 REM === CENTREREN EN CURSOR ===
2090 LI=6:REM aantal lege pos.links
2100 REM hier commando 'cursor off'
2110 RETURN
2120 REM aanpassen aan uw computer
2130 :
2140 REM === SUBR.VERTRAGINGSLUS ===
2150 FORW=1 TO100:NEXTW
2160 RETURN
2170 REM aanpassen aan uw computer
2180 :
30000 REM GEMAAKT 5 JANUARI 1987
30010 REM OP EEN BBC B COMPUTER
30020 REM
30030 REM door Ch.W.Brederode
30040 REM Von Bonninghausenlaan 33
30050 REM 2161 ES LISSE
30060 REM COPYRIGHT NOS HILVERSUM