-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathA07_Klokkijken.bc3
158 lines (157 loc) · 4.71 KB
/
A07_Klokkijken.bc3
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
148
149
150
151
152
153
154
155
156
157
158
1000 A=200:GOTO20:REM KLOK KIJKEN
1010 A=0.10472:REM A=PI/30
1020 F=0:FT=0:GD=0:FT$="":GD$=""
1030 AW$="":B$="":U$=""
1040 HK=0.11:VK=0.85:HF=0.83:VF=0.85
1050 HA=0.09:VA=0.07:HB=0.09:VB=0.12
1060 HU=0.6:VU=0.02
1070 GOSUB2000:REM inleiding
1080 GOSUB2500:REM teken de klok
1500 REM === HOOFDLUS ===
1510 CN=1:GOSUB3500:CN=0:REM wis AW$
1520 IFF=1 THEN1690
1530 CN=1:GOSUB3530:CN=0:REM wis B$
1540 GOSUB260:REM dobbel een tijdstip
1550 T=5+INT(RV*1428)
1560 B$="V.M."
1570 IFT>719 THENB$="N.M."
1580 GOSUB3530:REM print B$
1590 REM Hele uren, Uren, Minuten
1600 H=INT(T/60):U=T/60:M=T-H*60
1610 KW=5*U:IFKW>59 THENKW=KW-60
1620 GW=M:IFABS(KW-GW)<6 THEN1530
1630 REM eindcoordinaten v.d.wijzers
1640 XU=0.5+0.23*SIN(A*U*5)*3/4
1650 YU=0.5-0.23*COS(A*U*5)
1660 XM=0.5+0.29*SIN(A*M)*3/4
1670 YM=0.5-0.29*COS(A*M)
1680 GOSUB4040:REM teken de wijzers
1690 GOSUB3000:REM antwoord innemen
1700 GOSUB4540:REM even wachten
1710 CN=1:GOSUB3560:REM wis "S=stop"
1720 CN=0:GOSUB3590:REM print U$
1730 IFF=1 THEN1760
1740 CN=1:GOSUB4040:REM wis wijzers
1750 CN=0
1760 GOTO1500
2000 REM=== INLEIDING ===
2010 GOSUB100
2020 PRINT:PRINT"HOE LAAT IS HET?"
2030 PRINT:PRINT"Er zijn klokken met wijzers"
2040 PRINT:PRINT"en klokken met alleen cijfers."
2050 PRINT:PRINT"We gaan de wijzer-klok in"
2060 PRINT:PRINT"'alleen cijfers' vertalen."
2070 PRINT:PRINT"Je ziet een klok met wijzers"
2080 PRINT:PRINT"en je tikt de tijd met cijfers."
2090 PRINT:PRINT"Eerst de UREN, dan een PUNT"
2100 PRINT:PRINT"en dan nog de MINUTEN."
2110 PRINT:PRINT"Bijvoorbeeld 8.12 als het V.M."
2120 PRINT:PRINT"is of 15.08 als het N.M. is"
2130 GOSUB2250
2140 PRINT:PRINT"V.M. betekent VOOR DE MIDDAG"
2150 PRINT:PRINT"Dan is kwart over acht 8.15"
2160 PRINT:PRINT"N.M. betekent NA DE MIDDAG"
2170 PRINT:PRINT"Dan moet je overal 12 uren"
2180 PRINT:PRINT"bij optellen, dus kwart"
2190 PRINT:PRINT"over acht wordt dan 20.15"
2200 PRINT:PRINT"MOEILIJK ? OF JUIST NIET ?"
2210 PRINT:PRINT"Probeer het maar, je kunt"
2220 PRINT:PRINT"het best en al gaat het een"
2230 PRINT:PRINT"keer fout dat geeft niet."
2240 PRINT:PRINT"De computer heeft de tijd!"
2250 PRINT:PRINT"--> Tik op de spatiebalk";:GOSUB4500
2260 GOSUB100:RETURN
2500 REM=== WIJZERPLAAT ===
2510 GOSUB600:CN=0
2520 FORN=1 TO60
2530 HO=0.5+0.316*SIN(N*A)*3/4
2540 VE=0.5-0.316*COS(N*A)
2550 GOSUB620
2560 IFN/5<>INT(N/5) THEN2630
2570 HO=0.5+0.305*SIN(N*A)*3/4
2580 VE=0.5-0.305*COS(N*A)
2590 GOSUB630
2600 HO=0.5+0.360*SIN(N*A)*3/4-0.01
2610 VE=0.5-0.360*COS(N*A)-0.01
2620 SR=INT(N/5):GOSUB300:GOSUB650
2630 NEXTN
2640 SR$="HET IS:"
2650 HO=0.09:VE=0.02:GOSUB650
2660 VE=0.8:SR$="GOED":GOSUB650
2670 HO=0.8:SR$="FOUT":GOSUB650
2680 GOSUB3590:REM print (S=stop)
2690 RETURN
3000 REM=== ANTWOORD INNEMEN ===
3010 CN=0
3020 AW$="":IFH<10 THEN3060
3030 GOSUB4500:REM S ingedrukt?
3040 IF(IN$<"0")OR(IN$>"9") THEN3030
3050 AW$=IN$:GOSUB3500
3060 GOSUB4500
3070 IF(IN$<"0")OR(IN$>"9") THEN3060
3080 IF(IN$="0")AND(AW$="") THEN3050
3090 AW$=AW$+IN$:GOSUB3500
3100 GOSUB4500
3110 IF(IN$<>".") THEN3100
3120 AW$=AW$+IN$:GOSUB3500
3130 GOSUB4500
3140 IF(IN$<"0")OR(IN$>"9") THEN3130
3150 AW$=AW$+IN$:GOSUB3500
3160 GOSUB4500
3170 IF(IN$<"0")OR(IN$>"9") THEN3160
3180 AW$=AW$+IN$:GOSUB3500
3190 F=0
3200 REM --- controle van antwoord ---
3210 SR=H:GOSUB300:C$=SR$+"."
3220 SR=M:GOSUB300:C$=C$+RIGHT$("0"+SR$,2)
3230 D$="0"+C$
3240 CN=1:GOSUB4000:CN=0:REM wis GD,FT
3250 IF(C$<>AW$)AND(D$<>AW$) THEN3280
3260 U$="GOED GEDAAN!"
3270 GD=GD+1:GOTO3290
3280 U$="NEE TOCH?":FT=FT+1:F=1
3290 CN=0
3300 SR=GD:GOSUB300:GD$=SR$
3310 SR=FT:GOSUB300:FT$=SR$
3320 CN=1:GOSUB3590:CN=0
3330 GOSUB3560:GOSUB4000:RETURN
3500 REM=== PRINT AW$ ===
3510 HO=HA:VE=VA:SR$=AW$:GOSUB650
3520 RETURN
3530 REM=== PRINT B$ ===
3540 HO=HB:VE=VB:SR$=B$:GOSUB650
3550 RETURN
3560 REM=== PRINT U$ ===
3570 HO=HU:VE=VU:SR$=U$:GOSUB650
3580 RETURN
3590 REM=== PRINT (S=stop) ===
3600 HO=HU:VE=VU:SR$=" (S=stop)"
3610 GOSUB650
3620 RETURN
4000 REM=== PRINT GD$ en FT$ ===
4010 HO=HK:VE=VK:SR$=GD$:GOSUB650
4020 HO=HF:VE=VF:SR$=FT$:GOSUB650
4030 RETURN
4040 REM=== TEKEN DE WIJZERS ===
4050 HO=0.5:VE=0.5:GOSUB620
4060 HO=XU:VE=YU:GOSUB630
4070 HO=0.5:VE=0.5:GOSUB620
4080 HO=XM:VE=YM:GOSUB630
4090 RETURN
4500 REM=== S=stop ingedrukt? ===
4510 GOSUB210
4520 IFIN=83 THEN950
4530 RETURN
4540 REM=== WACHTLUS =================
4550 FORW=1 TO4000:NEXTW:RETURN
4560 REM=== AANPASSEN AAN COMPUTER ===
4570 REM==============================
32000 REM GEMAAKT OP EEN BBC B COMPUTER
32010 REM 6 FEBRUARI 1987
32020 REM DOOR
32030 REM Ch.W.Brederode
32040 REM Von Bonninghausenlaan 33
32050 REM 2161 ES LISSE
32100 REM
32110 REM TROS-RADIO dd 870325
32120 REM incl wijz. dd 871021