1 REM BASICODE 2 ROUTINES DOOR HENK WEVERS 2 REM NADERE INLICHTINGEN BASICODE 3 REM NOS, HOBBYSCOOP HILVERSUM 5 PRINT CHR$(26);:WIDTH(255) 10 GOTO 1000 20 GOTO 1010 100 PRINT CHR$(26);:RETURN 110 REM 111 IF HO>51 THEN HO=51 112 IF VE>23 THEN VE=23 113 PRINT CHR$(27);"=";CHR$(VE+32);CHR$(HO+32); 115 RETURN 120 HO=PEEK(&HEF5A):VE=PEEK(&HEF5B)-&HF0 121 VE=VE*2 122 IF HO>127 THEN HO=HO-128:VE=VE+1 123 VE=VE-PEEK(&HEF62):IF VE<0 THEN VE=32+VE 124 RETURN 200 IN$=INKEY$:RETURN 210 GOSUB 200:IF IN$="" THEN 210 211 RETURN 250 PRINT CHR$(7);:RETURN 260 RV=RND(1):RETURN 270 FR=FRE(2):RETURN 300 SR$=STR$(SR) 301 Q7=LEN(SR$):IF Q7=0 THEN RETURN 302 IF RIGHT$(SR$,1)<>" " THEN 304 303 SR$=LEFT$(SR$,Q7-1):GOTO 301 304 IF LEFT$(SR$,1)<>" " THEN RETURN 305 SR$=RIGHT$(SR$,Q7-1):GOTO 301 310 Q4=SR:IF CN<>0 THEN 316 312 SR=INT(SR+.5):GOSUB 300:GOTO 330 316 Q5=SGN(SR):SR=ABS(SR):Q8=INT(SR):Q9=SR-Q8 318 FOR Q6=1 TO CN:Q9=Q9*10:NEXT Q6 320 Q9=INT(Q9+.5):SR=Q9:GOSUB 300 322 Q9$=RIGHT$("00000000000000000000"+SR$,CN) 324 IF Q8=0 AND Q9=0 THEN Q5=1 326 SR=Q8:GOSUB 300:IF Q5=-1 THEN SR$="-"+SR$ 328 SR$=SR$+"."+Q9$ 330 IF LEN(SR$)<=CT THEN 334 332 SR$=LEFT$("********************",CT):GOTO 340 334 SR$=RIGHT$(" "+SR$,CT) 340 SR=Q4:RETURN 350 LPRINT SR$;:RETURN 360 LPRINT:RETURN 1000 A=100:GOTO 20 1010 KI=4.5:REM STRAALKRACHT 1015 LL=10:REM STRAALLENGTE 1020 TS=.07:REM STRAALSNELHEID 1030 C$="+":C=ASC(C$):REM STRAALCHR 1040 : 1050 DIM TH(105+LL),TV(105+LL) 1060 : 1070 GOSUB 100 1080 INPUT"hoeveel regels gaan er op uw beeldscherm";SH 1090 INPUT"hoeveel tekens gaan er op een regel";SB 1095 GOSUB 100 1096 HO=INT((SB-19)/2):VE=0:GOSUB 110 1100 PRINT" =================" 1120 VE=1:GOSUB 110:PRINT"! !" 1130 VE=2:GOSUB 110:PRINT"! manneke pis !" 1140 VE=3:GOSUB 110:PRINT"! !" 1150 VE=4:GOSUB 110:PRINT" =================" 1160 VE=9:GOSUB 110 1170 PRINT"wilt u instructies ?" 1180 GOSUB 210 1190 IF IN$<>"j"AND IN$<>"J"THEN 2520 1200 : 1500 PRINT:PRINT"probeer in de pot te plassen." 1510 PRINT"de eerste keer is een voorbeeld." 1520 PRINT"vul dan voor de kracht b.v. in: 60" 1530 PRINT"en voor de hoek b.v. ook: 60" 1540 PRINT"dan ziet u wat de bedoeling is." 1550 PRINT:PRINT"daarna moet u zelf in de strijd." 1560 PRINT"kies dan als kracht tussen 0 en 100" 1570 PRINT"en voor de hoek tussen 90 en -90" 1580 PRINT"druk (een toets) als u wilt beginnen." 1590 GOSUB 210 1600 : 2000 REM VOORBEELD VOOR POT EN POP 2010 : 2020 XP=0:YP=SH/2:REM X,Y VAN POP 2030 XQ=SB/2-2:YQ=5+YP:REM X,Y VAN POT 2040 GOSUB 3020:SN=0:SO=0 2050 : 2500 REM RANDOM VOOR POT EN POP 2510 : 2520 GOSUB 260:XP=0:YP=2+INT((SH-9)*RV) 2530 GOSUB 260:YQ=2+INT((SH-8)*RV) 2535 GOSUB 260:XQ=3+INT((SB-4)*RV) 2540 GOSUB 3020:GOTO 2520 2550 : 3000 REM *** SPELSUBROUTINE *** 3010 : 3020 GOSUB 100 3030 GOSUB 4020:REM TEKEN POP EN POT 3040 VE=SH-4:HO=0:GOSUB 110 3050 PRINT"score is "; 3060 VE=SH-4:HO=9:GOSUB 110:PRINT SN"%" 3070 PRINT"score was "; 3080 VE=SH-3:HO=9:GOSUB 110:PRINT SO"%" 3090 GOSUB 200:IF IN$<>""THEN 3090 3100 VE=SH-4:HO=SB-12:GOSUB 110:INPUT"kracht ";U 3110 VE=SH-3:HO=SB-12:GOSUB 110:INPUT"hoek ";W 3120 V=U/KI:K=K+1:H=W*3.14159/180:T2=LL+1 3130 VE=SH-2:FOR HO=0 TO 25:GOSUB 110:PRINT" ";:NEXT HO 3140 : 3200 REM BEWEGING VAN DE STRAAL 3210 : 3220 FOR IT=0 TO 100:T=IT*TS 3230 : 3240 REM WIS OUDSTE STRAALTEKEN 3250 : 3260 VE=TV(T2-LL+1):HO=TH(T2-LL+1) 3270 GOSUB 110:PRINT" " 3280 : 3300 REM BEREKEN NIEUWSTE PLAATS 3310 : 3320 YS=INT((SIN(H)*V-5*T)*T) 3330 XS=INT(COS(H)*V*T) 3340 HO=XP+XS+1:VE=YP-YS 3350 IF HO>=SB THEN HO=SB-1:XS=SB-XP-2 3360 IF VE<0 THEN VE=0 3370 GOSUB 110:PRINT C$ 3380 : 3390 REM ONTHOUD DEZE POSITIE 3400 : 3410 TV(T2)=VE:TH(T2)=HO:VE=YP-YS 3420 T2=T2+1:IF T2>=149 THEN 3800 3430 : 3440 REM CONTROLE OF STRAAL IN POT 3450 REM OF ERNAAST OF TE LAAG 3460 : 3470 IF HO=XQ AND VE=YQ THEN 3600 3480 IF VE=YQ AND HO=XQ-1 THEN 3800 3490 IF VE>YP AND VE>YQ THEN 3800 3500 NEXT IT:GOTO 3800 3510 : 3600 VE=SH-2:HO=0:GOSUB 110:PRINT" raak !!! 3610 REM MAAK POT WEER HEEL EN 3620 REM EN TEKEN SPETTERS ** 3630 : 3635 GOSUB 250:REM BEL! 3640 HO=XQ:VE=YQ:GOSUB 110:PRINT"u" 3650 HO=XQ-3:VE=YQ-3:GOSUB 110:PRINT"\ \!/ /" 3660 HO=XQ-2:VE=YQ-2:GOSUB 110:PRINT"\ ! /" 3670 HO=XQ-1:VE=YQ-1:GOSUB 110:PRINT"\!/" 3680 TE=0 3690 FOR Z=0 TO 1000:NEXT Z 3700 SO=SN:S=S+1:SN=INT(100*S/K+.5):RETURN 3710 : 3800 VE=SH-2:HO=0:GOSUB 110:PRINT"langs het potje gepiest 3810 REM TELLEN VAN PLASBEURTEN EN 3820 REM SCHRIJVEN VAN CYFER 3830 : 3840 TE=TE+1:IF TE>9 THEN TE=TE+7 3850 FOR T3=T2-LL TO T2 3860 :VE=TV(T3):HO=TH(T3):GOSUB 110:PRINT" " 3870 NEXT T3 3880 HO=XP+XS+1:VE=YP-YS:GOSUB 110:PRINT CHR$(TE+48) 3890 SO=INT(SN):SN=INT(100*S/K+.5):GOSUB 4020:GOTO 3040 3900 : 4000 REM TEKENEN VAN DE POP 4010 : 4020 HO=XP:VE=YP-1:GOSUB 110:PRINT"o" 4030 :VE=YP:GOSUB 110:PRINT">/" 4040 :VE=YP+1:GOSUB 110:PRINT"i" 4050 : 4060 REM TEKENEN VAN DE POT 4070 : 4080 HO=XQ:VE=YQ:GOSUB 110:PRINT"u" 4090 : 4100 HO=0:VE=SH-5:GOSUB 110 4110 FOR I=1 TO SB:PRINT"=";:NEXT I:RETURN 4120 : 5000 REM 5010 REM DE LENGTE VAN DE STRAAL KUNT 5020 REM U VERANDEREN IN REGEL 1010 5030 REM ( LL=10 ) 5040 REM 5050 REM DE INVLOED VAN DE KRACHT KUNT 5060 REM U VERANDEREN IN REGEL 1000 5070 REM (DE KRACHT WORD NU GEDEELD 5080 REM DOOR KI=4.5 ) 5090 REM 5100 REM DE STRAALSNELHEID KUNT 5110 REM U VERANDEREN IN REGEL 1020 5120 REM ( TS=.07 ) 5130 REM 5140 REM HET KARAKTER VAN DE STRAAL 5150 REM KUNT U VERANDEREN IN REGEL 5160 REM 1040 : C$="+" 5170 REM 5180 : 8000 REM BEWERKT VOOR BASICODE-2 DOOR 8010 REM LEDEN VAN DE BASICODEGROEP 8020 : 9000 REM HET ORIGINELE PROGRAMMA WAS 9010 REM VOOR DE PET GEMAAKT 9020 REM EN INGEZONDEN IN 1980 9030 REM VOOR DE HOBBYSCOOPWEDSTRIJD 9040 REM DOOR : 9050 REM 9060 REM JAN COLLY 9070 REM GRONINGENLAAN 36 9080 REM 9642 EJ VEENDAM 9090 REM TEL 05987-16140 REM 9060 REM JAN