1 REM Ins{nd av Bertil Sj|stedt <4735> 1986-07-04 08.31.43 10 FLOAT : EXTEND 20 ! 30 ! 40 ! 50 ! 60 ! 70 ! 80 ! 90 ! 100 ! +----------------------------------+ 110 ! ! H O P P E R T ! 120 ! ! Made by ! 130 ! ! Erik Sj|stedt ! 140 ! ! 1986-05-?? ! 150 ! +----------------------------------+ 160 ! Tillh|rande datafil: HOPPERT.BAN 170 ! 180 ! 190 FLOAT:EXTEND 200 Omg}ng=0 210 Slask=FNInit 220 Slask=FNBaninit 230 Slask=FNInit1 240 DEF FNA%(R%)=30720+(R%)*80%+10% 250 WHILE Liv%>0% 260 PRINT CUR(Oldr%,10%) ' ' 270 Slask%=CALL(51000) 280 Counter%=Counter%+1% 290 IF Counter%=500% THEN Counter%=0% : Ban1%=Ban1%+2% : Ban2%=Ban2%-12% 300 ! OM MAN VILL SE BANORNA FORT S] TAR MAN BORT REM P] RADEN UNDER 310 ! goto 270 320 Po{ng%=Po{ng%+1% 330 B%=FNA%(R%) : IF PEEK(B%)=127 THEN 510 340 PRINT CUR(R%,10%) '*' 350 Oldr%=R% 360 B%=FNA%(R%) 370 IF PEEK(B%+80%)=32 AND PEEK(B%+79%)=127% THEN 530 380 IF PEEK(B%+80%)=32 AND Hopp=0 THEN R%=R%+1% 390 REM 400 PRINT CUR(0%,7%) Po{ng%;CUR(0%,55%);Liv% 410 Tang$='' 420 Slask=FNHoppok 430 IF Hoppok=0 THEN 490 440 IF SYS(5) GET Tang$ 450 IF Tang$='1' Hopp=3 460 IF Tang$='2' Hopp=5 470 IF Tang$='3' Hopp=10 480 IF Tang$='d' OR Tang$='D' THEN GOTO 2800 490 IF Hopp<>0 THEN Slask=FNHopp 500 WEND 510 Slask=FNSlut 520 GOTO 210 530 Slask=FNMiss 540 GOTO 250 550 DEF FNInit1 560 R%=22% : Oldr%=R% : Liv%=3% : Oldliv%=Liv% 570 REM 580 RETURN 0 590 FNEND 600 DEF FNInit 610 EXTEND 620 DIM Namn$(100)=50 630 DIM Po{ng(100) 640 ON ERROR GOTO 720 650 OPEN 'HOPPERT.HS' AS FILE 1 660 ON ERROR GOTO 670 FOR L%=1% TO 100% 680 INPUT #1%,Namn$(L%) 690 INPUT #1%,Po{ng(L%) 700 NEXT L% 710 GOTO 870 720 IF ERRCODE<>21 THEN STOP 730 PREPARE 'hoppert.hs' AS FILE 1 740 FOR L=1 TO 25 750 Po{ng(L)=2500-(L*100) 760 PRINT #1,'Any teacher who still thinks ' 770 PRINT #1,Po{ng(L) 780 PRINT #1,'he or she might be replaced by' 790 PRINT #1,Po{ng(L) 800 PRINT #1,'a computer. Should be.' 810 PRINT #1,Po{ng(L) 820 PRINT #1,'-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-' 830 PRINT #1,Po{ng(L) 840 NEXT L 850 CLOSE 860 GOTO 640 870 Hiscore%=Po{ng(1) 880 CLOSE 890 IF PEEK(45030)=57 THEN GOTO 1060 900 K=45000 910 ON ERROR GOTO 1010 920 OPEN 'HOPPERT.BAN' AS FILE 1% 930 GET #1%,A$ COUNT 4 940 A%=VAL(A$) 950 A$=' ' 960 A4%=VAROOT(A$) : A1%=PEEK(A4%) : A2%=PEEK(A4%+1%) : A3%=PEEK(A4%+2%) : A4%=PEEK(A4%+3%) 970 POKE VAROOT(A$),A%+1%,SWAP%(A%+1%),K,SWAP%(K) 980 GET #1%,A$ COUNT A% 990 POKE VAROOT(A$),A1%,A2%,A3%,A4% 1000 GOTO 1040 1010 IF ERRCODE=34 THEN 1040 1020 IF ERRCODE=21 THEN PRINT DBLE 'HITTAR EJ FILEN MED BANORNA' 1030 GOTO 910 1040 ! 1050 CLOSE 1060 ! MASKINKOD 1070 Ban1%=175% : Ban2%=200% : REM ^^ 1080 POKE -14536%,58%,46%,199% 1090 POKE -14533%,71% 1100 POKE -14532%,58%,47%,199% 1110 POKE -14529%,79% 1120 POKE -14528%,205%,163%,199% 1130 POKE -14525%,33%,255%,124% 1140 POKE -14522%,10% 1150 POKE -14521%,203%,71% 1160 POKE -14519%,196%,152%,199% 1170 POKE -14516%,205%,157%,199% 1180 POKE -14513%,10% 1190 POKE -14512%,203%,79% 1200 POKE -14510%,196%,152%,199% 1210 POKE -14507%,205%,157%,199% 1220 POKE -14504%,10% 1230 POKE -14503%,203%,87% 1240 POKE -14501%,196%,152%,199% 1250 POKE -14498%,205%,157%,199% 1260 POKE -14495%,10% 1270 POKE -14494%,203%,95% 1280 POKE -14492%,196%,152%,199% 1290 POKE -14489%,205%,157%,199% 1300 POKE -14486%,10% 1310 POKE -14485%,203%,103% 1320 POKE -14483%,196%,152%,199% 1330 POKE -14480%,205%,157%,199% 1340 POKE -14477%,10% 1350 POKE -14476%,203%,111% 1360 POKE -14474%,196%,152%,199% 1370 POKE -14471%,205%,157%,199% 1380 POKE -14468%,10% 1390 POKE -14467%,203%,119% 1400 POKE -14465%,196%,152%,199% 1410 POKE -14462%,205%,157%,199% 1420 POKE -14459%,10% 1430 POKE -14458%,203%,127% 1440 POKE -14456%,196%,152%,199% 1450 POKE -14453%,205%,157%,199% 1460 POKE -14450%,3% 1470 POKE -14449%,120% 1480 POKE -14448%,50%,46%,199% 1490 POKE -14445%,121% 1500 POKE -14444%,50%,47%,199% 1510 POKE -14441%,201% 1520 POKE -14440%,0% 1530 POKE -14439%,62%,127% 1540 POKE -14437%,119% 1550 POKE -14436%,201% 1560 POKE -14435%,0% 1570 POKE -14434%,17%,80%,0% 1580 POKE -14431%,25% 1590 POKE -14430%,201% 1600 POKE -14429%,229% 1610 POKE -14428%,197% 1620 POKE -14427%,213% 1630 POKE -14426%,1%,14%,0% 1640 POKE -14423%,33%,32%,123% 1650 POKE -14420%,62%,32% 1660 POKE -14418%,119% 1670 POKE -14417%,17%,80%,0% 1680 POKE -14414%,25% 1690 POKE -14413%,11% 1700 POKE -14412%,120% 1710 POKE -14411%,177% 1720 POKE -14410%,32%,244% 1730 POKE -14408%,33%,32%,123% 1740 POKE -14405%,17%,31%,123% 1750 POKE -14402%,1%,95%,4% 1760 POKE -14399%,237%,176% 1770 POKE -14397%,209% 1780 POKE -14396%,193% 1790 POKE -14395%,225% 1800 POKE -14394%,201% 1810 RETURN 0 1820 FNEND 1830 DEF FNMiss 1840 Liv%=Liv%-1% 1850 R%=22% : Oldr%=R% 1860 Slask=FNBaninit 1870 Counter%=0% 1880 RETURN 0 1890 FNEND 1900 DEF FND|d 1910 END 1920 RETURN 0 1930 FNEND 1940 DEF FNHopp 1950 R%=R%-1% 1960 Hopp=Hopp-1 1970 RETURN 0 1980 FNEND 1990 DEF FNHoppok 2000 B=FNA%(R%) 2010 IF (PEEK(B+79%)=127 AND PEEK(B+80%)=127 AND PEEK(B%+81%)=127) THEN Hoppok=1 ELSE Hoppok=0 2020 RETURN 0 2030 FNEND 2040 DEF FNSlut 2050 PRINT CHR$(12) 2060 PRINT : PRINT 2070 PRINT 'SPELET [R SLUT ' 2080 PRINT 2090 PRINT 'DU FICK ' Po{ng% ' PO[NG' 2100 IF Po{ng%>Hiscore% THEN Hiscore%=Po{ng% : PRINT : PRINT 'DU FICK NYTT HIGH SCORE' 2110 FOR L=1 TO 200 : NEXT L 2120 Slask=FNLista 2130 PRINT 2140 PRINT 2150 Liv%=3% 2160 RETURN 0 2170 FNEND 2180 DEF FNBaninit 2190 PRINT CHR$(12%);CUR(23%,0%) STRING$(80%,127%); 2200 PRINT CUR(0%,0%) 'SCORE :';CUR(0%,20%) 'HIGH SCORE :';Hiscore%;CUR(0%,50%) 'LIV :' 2210 POKE 50990,Ban1%,Ban2% 2220 RETURN 0 2230 FNEND 2240 DEF FNLista 2250 T2%=Po{ng% 2260 R{knare=1 2270 IF T2%>=Po{ng(R{knare) THEN Gurka=R{knare : GOTO 2310 2280 R{knare=R{knare+1 2290 IF R{knare>100 THEN Gurka1=1 : GOTO 2480 2300 GOTO 2270 2310 FOR Banan=100 TO Gurka STEP -1 2320 Namn$(Banan)=Namn$(Banan-1) : Po{ng(Banan)=Po{ng(Banan-1) 2330 NEXT Banan 2340 Gurka1=(INT(Gurka/10)*10)+1 2350 ; CHR$(12) 2360 ; : ; " Du kom in p} High-Score-Listan p} " Gurka ":e plats" 2370 ; : ; 2380 ; " Var v{nlig skriv in ditt namn (max 40 bokst{ver)." 2390 IF SYS(5%) GET \$ 2400 ; : ; : INPUT A$ 2410 IF LEN(A$)<4 THEN A$='Hoppert {r gjort av Erik Sj|stedt 8605??' : GOTO 2460 2420 IF LEN(A$)>40 THEN GOTO 2350 2430 FOR F=1 TO 100 2440 IF Namn$(F)=A$ THEN 2350 2450 NEXT F 2460 Namn$(Gurka)=A$ : Po{ng(Gurka)=T2% 2470 ! 2480 ; CHR$(12) 2490 ; : ; : ; : ; 2500 ; TAB(1) "" 2510 ; TAB(1) " H A L L O F F A M E " 2520 ; TAB(1) "" 2530 IF Gurka1>91 THEN Gurka1=91 2540 IF Gurka1<1 THEN Gurka1=1 2550 FOR A=Gurka1 TO Gurka1+9 2560 ; TAB(1) " "; : IF A<10 THEN ; " "; 2570 ; NUM$(A) " ";Namn$(A) TAB(60) Po{ng(A);TAB(70) " " 2580 NEXT A 2590 ; TAB(1) "" 2600 ; CUR(20%,50%) '1-bl{ddra bak}t i listan' 2610 ; CUR(21%,50%) 'Q-bl{ddra fram}t i listan' 2620 ; CUR(22%,50%) 'Return f|r nytt spel' 2630 Ban1%=175% : Ban2%=200% 2640 Po{ng%=0% 2650 GET A$ 2660 IF A$="1" THEN Gurka1=Gurka1-10 : GOTO 2470 2670 IF A$="Q" OR A$="q" THEN Gurka1=Gurka1+10 : GOTO 2470 2680 IF ASCII(A$)=13 THEN Slask=FNSparalista ELSE 2650 2690 RETURN 0 2700 FNEND 2710 DEF FNSparalista 2720 PREPARE 'HOPPERT.HS' AS FILE 1 2730 FOR L=1 TO 100 2740 PRINT #1,Namn$(L) 2750 PRINT #1,Po{ng(L) 2760 NEXT L 2770 CLOSE 2780 RETURN 0 2790 FNEND 2800 ! DEMO 2810 PRINT CHR$(12%); 2820 POKE 50990,175%,200% 2830 ; : ; DBLE 'D E M O ' 2840 ; : ; : ; 'Banorna kommer nu att presenteras.' 2850 ; 'Om presentationen g}r f|r fort kan du minska hastigheten med PF8' 2860 ; 'och |ka den igen med PF7.' 2870 ; 'F|r att }terg} till spelet tryck p} PF1' 2880 ; : ; : ; : ; 'Tryck p} en tangent s} b|rjar banorna visas' 2890 WHILE A$='' 2900 IF SYS(5) GET A$ 2910 WEND 2920 PRINT CUR(23%,0%);STRING$(80%,127%); 2930 Z%=CALL(51000) 2940 FOR I%=1% TO L% : NEXT I% 2950 Tang$='' 2960 ; CUR(0%,0%);L% : IF SYS(5) GET Tang$ : IF ASCII(Tang$)=192% THEN GOTO 2990 2970 L%=L%+10%*(ASCII(Tang$)=198%)-10%*(ASCII(Tang$)=199%)-10%*(L%<0%)+10%*(L%>200%) 2980 GOTO 2920 2990 ! 3000 GOTO 210