forked from robhagemans/basicode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path03_Manneken_Pis.bc2
136 lines (135 loc) · 4.49 KB
/
03_Manneken_Pis.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
128
129
130
131
132
133
134
135
136
1000 A=100:GOTO20:REM MANNEKE PIS
1010 LL=10:REM STRAALLENGTE
1020 KI=4.5:REM STRAALKRACHT
1030 TS=.07:REM STRAALSNELHEID
1040 C$="+":C=ASC(C$):REM STRAALCHR
1050 DIMTH(105+LL),TV(105+LL)
1060 SN=0:SO=0:S=0:GOSUB100
1070 SH=10:HO=1
1080 VE=SH
1090 GOSUB110:GOSUB120:IFVE=SH THENSH=SH+1:GOTO1080
1100 SH=SH-1:SB=15:VE=1
1110 HO=SB
1120 GOSUB110:GOSUB120:IFHO=SB THENSB=SB+1:GOTO1110
1130 SB=SB-1
1140 HO=INT((SB-19)/2):VE=0:GOSUB110
1150 PRINT" ================="
1160 VE=1:GOSUB110:PRINT"! !"
1170 VE=2:GOSUB110:PRINT"! MANNEKE PIS !"
1180 VE=3:GOSUB110:PRINT"! !"
1190 VE=4:GOSUB110:PRINT" ================="
1200 VE=9:GOSUB110
1210 PRINT"Wilt u instructies ?";
1220 GOSUB210
1230 IF(IN$<>"j") AND(IN$<>"J") THEN1390
1240 PRINT:PRINT"Probeer in de pot te plassen."
1250 PRINT"De eerste keer is een voorbeeld."
1260 PRINT"Vul dan voor de kracht b.v. in: 60"
1270 PRINT"en voor de hoek b.v. ook: 60,"
1280 PRINT"dan ziet u wat de bedoeling is."
1290 PRINT:PRINT"Daarna moet u zelf in de strijd."
1300 PRINT"Kies dan als kracht tussen 0 en 100"
1310 PRINT"en voor de hoek tussen 90 en -90"
1320 PRINT"Druk (een toets) als u wilt beginnen."
1330 GOSUB210
1340 REM VOORBEELD VOOR POT EN POP
1350 XP=0:YP=SH/2:REM X,Y VAN POP
1360 XQ=SB/2-2:YQ=5+YP:REM X,Y VAN POT
1370 GOSUB1440:SN=0:SO=0
1380 REM RANDOM VOOR POT EN POP
1390 GOSUB260:XP=0:YP=2+INT((SH-9)*RV)
1400 GOSUB260:YQ=2+INT((SH-8)*RV)
1410 GOSUB260:XQ=3+INT((SB-4)*RV)
1420 GOSUB1440:GOTO1390
1430 REM *** SPELSUBROUTINE ***
1440 GOSUB100
1450 GOSUB2000:REM TEKEN POP EN POT
1460 VE=SH-4:HO=0:GOSUB110
1470 PRINT"score is ";
1480 VE=SH-4:HO=10:GOSUB110
1490 SR=SN:GOSUB300:PRINTSR$;" %"
1500 PRINT"score was ";
1510 VE=SH-3:HO=10:GOSUB110
1520 SR=SO:GOSUB300:PRINTSR$;" %"
1530 GOSUB200:IFIN$<>"" THEN1530
1540 VE=SH-4:HO=SB-13:GOSUB110:PRINT"kracht ";:INPUTU
1550 VE=SH-3:HO=SB-13:GOSUB110:PRINT"hoek ";:INPUTW
1560 V=U/KI:K=K+1:H=W*3.141592/180:T2=LL+1
1570 VE=SH-2:FORHO=0 TO25:GOSUB110:PRINT" ";:NEXT
1580 REM BEWEGING VAN DE STRAAL
1590 FORIT=0 TO100:T=IT*TS
1600 REM WIS OUDSTE STRAALTEKEN
1610 VE=TV(T2-LL+1):HO=TH(T2-LL+1)
1620 GOSUB110:PRINT" "
1630 REM BEREKEN NIEUWSTE PLAATS
1640 YS=INT((SIN(H)*V-5*T)*T)
1650 XS=INT(COS(H)*V*T)
1660 HO=XP+XS+1:VE=YP-YS
1670 IFHO>=SB THENHO=SB-1:XS=SB-XP-2
1680 IFVE<0 THENVE=0
1690 GOSUB110:PRINTC$
1700 REM ONTHOUD DEZE POSITIE
1710 TV(T2)=VE:TH(T2)=HO:VE=YP-YS
1720 T2=T2+1:IFT2>=149 THEN1900
1730 REM CONTROLE OF STRAAL IN POT
1740 REM OF ERNAAST OF TE LAAG
1750 IF(HO=XQ) AND(VE=YQ) THEN1790
1760 IF(VE=YQ) AND(HO=XQ-1) THEN1900
1770 IF(VE>YP) AND(VE>YQ) THEN1900
1780 NEXTIT:GOTO1900
1790 VE=SH-2:HO=0:GOSUB110:PRINT" raak !!!"
1800 REM MAAK POT WEER HEEL EN
1810 REM EN TEKEN SPETTERS **
1820 GOSUB250:REM BEL!
1830 HO=XQ:VE=YQ:GOSUB110:PRINT"U"
1840 HO=XQ-3:VE=YQ-3:GOSUB110:PRINT"\ \!/ /"
1850 HO=XQ-2:VE=YQ-2:GOSUB110:PRINT"\ ! /"
1860 HO=XQ-1:VE=YQ-1:GOSUB110:PRINT"\!/"
1870 TE=0
1880 FORZ=0 TO1000:NEXTZ
1890 SO=SN:S=S+1:SN=INT(100*S/K+.5):RETURN
1900 VE=SH-2:HO=0:GOSUB110:PRINT"langs het potje gepiest"
1910 REM TELLEN VAN PLASBEURTEN EN
1920 REM SCHRIJVEN VAN CYFER
1930 TE=TE+1:IF(TE>9) AND(TE<17) THENTE=TE+7
1940 FORT3=T2-LL TOT2
1950 VE=TV(T3):HO=TH(T3):GOSUB110:PRINT" "
1960 NEXTT3
1970 HO=XP+XS+1:VE=YP-YS:GOSUB110:PRINTCHR$(TE+48)
1980 SO=INT(SN):SN=INT(100*S/K+0.5):GOSUB2000:GOTO1460
1990 REM TEKENEN VAN DE POP
2000 HO=XP:VE=YP-1:GOSUB110:PRINT"O"
2010 VE=YP:GOSUB110:PRINT">/"
2020 VE=YP+1:GOSUB110:PRINT"I"
2030 REM TEKENEN VAN DE POT
2040 HO=XQ:VE=YQ:GOSUB110:PRINT"U"
2050 HO=0:VE=SH-5:GOSUB110
2060 FORI=1 TOSB:PRINT"=";:NEXT:RETURN
30000 REM
30010 REM DE LENGTE VAN DE STRAAL KUNT
30020 REM U VERANDEREN IN REGEL 1010
30030 REM ( LL=10 )
30040 REM
30050 REM DE INVLOED VAN DE KRACHT KUNT
30060 REM U VERANDEREN IN REGEL 1020
30070 REM (DE KRACHT WORD NU GEDEELD
30080 REM DOOR KI=4.5 )
30090 REM
30100 REM DE STRAALSNELHEID KUNT
30110 REM U VERANDEREN IN REGEL 1030
30120 REM ( TS=.07 )
30130 REM
30140 REM HET KARAKTER VAN DE STRAAL
30150 REM KUNT U VERANDEREN IN REGEL
30160 REM 1040 : C$="+"
30170 REM
30180 REM BEWERKT VOOR BASICODE-2 DOOR
30190 REM LEDEN VAN DE BASICODEGROEP
30200 REM HET ORIGINELE PROGRAMMA WAS
30210 REM VOOR DE PET GEMAAKT
30220 REM EN INGEZONDEN IN 1980
30230 REM VOOR DE HOBBYSCOOPWEDSTRIJD
30240 REM DOOR :
30250 REM
30260 REM JAN COLLY
30270 REM VEENDAM