1 REM Ins{nd av Peter \hl`n <4659> 1985-04-24 18.18.00 2 REM # Slalom Ver 1.4 3 REM # by The Great Programmer <4659> 4 REM # 5 REM # 6 A%=INP(3%) 7 DIM N$(8%)=20%,D9%(8%),F9%(8%),T(8%,2%),A%(500%),B%(500%) 8 RANDOMIZE 9 GOTO 10000 10 A%=10% : B%=20% 480 K=19% : R1=1 483 G=PI/2 : G1=PI/15 484 K1=COS(G) : F=200% 485 X%=0% 490 ; CHR$(12%) 491 GOSUB 2000 492 ; CUR(9%,19%)''CUR(1%,2%)'Tryck p} RETURN n{r du vill starta'; 494 GET A$ : IF ASC(A$)<>13% 494 495 POKE 65008%,255%,255%,255% 500 T%=INP(56%) AND 223% 510 IF T%=220% AND GG1 G=G-G1 : K1=COS(G) : R1=SIN(G) 525 IF T%=196% F=F*1.05 : G1=G1*1.05 530 K=K+K1 535 R=R+ABS(R1) 540 IF R>1% R=R-1% : F7%=0% : GOSUB 2000 542 IF F7% 60000 545 IF K>39 K=39 546 IF K<0% K=0% 547 IF PEEK(31784%+K)=42% OUT 6%,0%,6%,137% : F9%=-1% : FOR F2%=0% TO 900% : NEXT F2% : M%=M%+1% ELSE F9%=0% 550 ; CUR(8%,K);''; 555 OUT 6%,251% 560 FOR F1%=0% TO F : NEXT F1% 562 L9%=0% 563 IF F<100% L9%=3% 564 IF F<75% L9%=255% 566 IF F<50% L9%=249% 568 IF F<30% L9%=1% 569 OUT 6%,L9% 580 IF P1%>500%/A% AND A%>3% A%=A%-1% : P1%=P1%-500%/A% 990 ; CUR(8%,K);' '; 999 GOTO 500 1500 REM  G\R BANA  1505 B%(0%)=20% : B%=20% : A%(0%)=10% : A%=10% 1506 ; CHR$(12%) 1507 ; 'V{nta ett tag jag ska bara g|ra banan.' 1508 ; ' Kvar att g|ra:' 1510 IF B%>19% 1700 1520 IF B%*RND<6% [%=-[% 1690 GOTO 1900 1700 IF B%*RND>32% [%=-[% 1900 IF RND<.05 [%=-[% 1910 IF B%-A%/2%<5% [%=1% 1920 IF B%+A%/2%>33% [%=-1% 1930 IF S9% IF RND<.06 AND ABS([%)<4% [%=[%+[% 1940 IF RND<.03 AND ABS([%)>=2% [%=[%/2% 1990 B%=B%+[% 1991 IF RND<.95 GOTO 1995 1992 IF RND*A%>7% A%=A%-1% : GOTO 1995 1993 IF RND*A%<4% A%=A%+1% : GOTO 1995 1995 P%=100-FIX(X%*100/]%) : ; CUR(2%,26%-LEN(NUM$(P%)));P%' %' 1997 A%(X%)=A% : B%(X%)=B% : X%=X%+1% : IF X%<=]% 1510 1998 ; CUR(2%,24%);' 0 %' 1999 X%=0% : RETURN 2000 IF X%>=]% 2020 2003 ; CUR(23%,0%);'****************************************'CUR(22%,B%(X%)-A%(X%)/2%)SPACE$(A%(X%)) 2005 X%=X%+1% 2007 IF X%<]% RETURN 2010 IF X%=]% ; CUR(23%,B%(X%)-1%)'M]L'; 2015 RETURN 2020 IF X%<]%+13% ; CUR(23%,0%) : X%=X%+1% : RETURN 2022 IF PEEK(31912%+K)=42% F9%=-1% 2025 ; CUR(9%,K)'' 2030 F7%=-1% : RETURN 9999 REM  INSTRUKTIONER 10000 REM  PRESENTATION 10005 ; CHR$(12%); 10010 RESTORE 10900 10020 OUT 6%,121% : READ R%,K% 10040 FOR I%=0% TO 100% : NEXT I% 10050 ; CUR(R%,K%)'*'; 10055 OUT 6%,0% 10060 IF R%<>12% OR K%<>37% 10020 10065 IF NOT Z9% Z9$='(Ja/Nej)' 10070 ; CUR(17%,4%)'Beh|ver du instruktioner 'Z9$' '; 10080 GET A$ 10085 IF ASC(A$)=13% A$=Z8$ 10090 IF A$='N' OR A$='n' Z8$='N' : Z9%=-1% : Z9$='(Nej)' : GOTO 11500 10100 IF A$<>'J' AND A$<>'j' 10080 10110 Z9%=-1% : Z8$='J' : Z9$='(Ja)' 10900 DATA 7,7,6,6,6,5,6,4,7,3,8,3,9,4,9,5,9,6,10,7,11,7,12,6,12,5,12,4,11,3 10910 DATA 6,9,7,9,8,9,9,9,10,9,11,9,12,9,12,10,12,11,12,12,12,13 10920 DATA 12,15,11,15,10,15,9,15,8,15,7,15,6,16,6,17,6,18,7,19,8,19,9,19,10,19,11,19,12,19,9,16,9,17,9,18 10930 DATA 6,21,7,21,8,21,9,21,10,21,11,21,12,21,12,22,12,23,12,24,12,25 10940 DATA 12,28,12,29,12,30,11,31,10,31,9,31,8,31,7,31,6,30,6,29,6,28,7,27,8,27,9,27,10,27,11,27 10950 DATA 12,33,11,33,10,33,9,33,8,33,7,33,6,33,7,34,8,35,9,35,8,35,7,36,6,37,7,37,8,37,9,37,10,37,11,37,12,37 11000 ; CHR$(12%) : ; ' SLALOM' 11010 ; CHR$(23%)' ######' 11020 ; 'Spelets g}r ut p} att }ka s} fort som m|jligt fr}n START till M]L. Det g}r' 11030 ; 'fortare att }ka i banan {n ute i skogen.' : ; ' Skog och bana ser ut s} h{r:' 11040 ; : ; '******************** ******************************* **************'; 11050 ; '****************** ******************************** ******************'; 11060 ; '*** S K O G **** BANA **** S K O G ********************* ****************'; 11070 ; '******************* ********************************* ************'; 11080 ; '********************** ********' 11100 ; : ; : ; ' Tryck p} RETURN n{r du l{st klart'; 11110 GET A$ : IF ASC(A$)<>13% 11110 11120 ; CUR(3%,0%)SPACE$(839%);CUR(3%,0%); 11130 ; 'Sv{nger g|r du med tangenterna:' 11140 ; : ; ' \ [' 11150 ; ' <-- -->' 11160 ; ' I f|rh}llande till f{rdriktningen' 11170 ; : ; ' Tycker Man att det g}r f|r l}ngsamt eller f|r fort kan man {ndra farten:' 11180 ; : ; ' D - Minskar farten. F - \kar farten.' 11190 ; 'Vid h|g fart kan man inte g|ra specielltsn{va sv{ngar, och motsatt f|rh}llande' 11200 ; 'vid l}g fart.' 11210 ; : ; 'Nyb|rjare kan r}das att inte anv{nda tangenterna D och F.' 11220 ; : ; : ; ' Tryck p} RETURN'; 11230 GET Q$ : IF ASC(Q$)<>13% 11230 11500 IF NOT Z1% Z1$='1-9' 11503 ONERRORGOTO 11503 : ; CHR$(12%) : ; 'Hur m}nga }kare ('Z1$') '; : GET S$ 11504 IF ASC(S$)=13% AND Z1% S$=Z1$ 11505 S%=VAL(S$) 11506 Z1%=-1% : Z1$=S$ 11507 ; S$ 11508 IF S%<1% OR S%>9% 11500 11510 S%=S%-1% 11512 FOR I%=0% TO S% 11514 ; : ; ']kare no.'I%+1%' heter: (Max. 20 tkn)' 11516 INPUTLINE N$ : ; : N$=LEFT$(N$,LEN(N$)-2%) : IF LEN(N$)>20% N$=LEFT$(N$,20%) 11518 N$(I%)=N$ : NEXT I% 11520 IF NOT Z2% Z2$='50-1000' 11528 ONERRORGOTO 11528 : ; : ; 'Hur m}nga stegs bana ('Z2$') '; 11530 INPUTLINE A$ : IF ASC(A$)=13% A$=Z2$ ELSE A$=LEFT$(A$,LEN(A$)-2%) : Z2$='' 11535 ]%=VAL(A$) 11540 IF ]%<50% OR ]%>500% ; CHR$(7%) : GOTO 11520 11541 IF Z2% ; Z2$ 11542 ONERRORGOTO 0 : Z2%=-1% 11544 Z2$=RIGHT$(NUM$(]%),2%) 11550 IF NOT Z3% Z3$='1-2' 11560 ; : ; : ; 'V{lj sv}righetsgrad ('Z3$') '; 11570 GET A$ 11575 IF ASC(A$)=13% IF Z3% A$=Z3$ ELSE 11570 11580 IF A$='1' S9%=0% ELSE IF A$='2' S9%=-1% ELSE 11570 11590 ; A$ : Z3$=A$ : Z3%=-1% 11990 IF RND<.5 [%=1% ELSE [%=-1% 11999 REM  HUVUDPROGRAM 12000 FOR S2%=0% TO 1% 12001 X%=0% 12005 GOSUB 1500 12006 ; : ; : ; : ; 'Ni ska nu bekanta er med banan. (Tryck RETURN)'; 12007 GET A$ : IF ASC(A$)<>13% 12007 12008 GOSUB 2000 : FOR I%=0% TO 200% : NEXT I% : IF X%<]% 12008 12010 FOR S1%=0% TO S% 12015 IF D9%(S1%) 12080 12020 ; : ; '>>> ]K no.'S2%+1% 12030 ; '>>> ]kare no.'S1%+1%' 'N$(S1%) 12040 ; : ; '>>> Tryck p} RETURN n{r du {r redo'; 12050 GET A$ : IF ASC(A$)<>13% 12050 12060 GOSUB 10 12070 GOSUB 13000 12080 NEXT S1% 12090 ; CHR$(12%) : ; '>>> SLUTST[LLNING'; 12095 S1%=S1%-1% 12100 IF S2%=0% ; ' ]K 1' : ; '>>>' : GOSUB 13005 : NEXT S2% ELSE ; ' TOTALT' 12105 ; '>>>' 12110 GOSUB 13005 12120 ; : ; : ; 'Vill du spela igen (Ja) '; 12130 GET A$ 12140 IF A$='n' OR A$='N' ; 'Nej' : POKE 65013%,0% : END 12150 IF A$<>'j' AND A$<>'J' AND ASC(A$)<>13% 12130 12160 FOR I%=0% TO 8% 12170 D9%(I%)=0% : N$(I%)='' : T(I%,0%)=0% : T(I%,1%)=0% : F9%(I%)=0% 12175 D9%=0% 12180 NEXT I% 12999 GOTO 1 13000 ; : ; 13005 FOR I%=0% TO S1%-D9% 13006 IF D9%(F9%(I%)) AND I%=0% RETURN 13007 IF D9%(F9%(I%)) 13900 13010 IF I%>0% IF T(F9%(I%),2%)=T(F9%(I%-1%),2%) ; '>>> 'N$(F9%(I%)); : GOTO 13030 13020 ; '>>>'I%+1%' 'N$(F9%(I%)); 13030 S=T(F9%(I%),2%) : GOSUB 14000 13040 ; CUR(PEEK(65011%),39%-LEN(T$))T$ 13050 NEXT I% 13900 ; : ; ' Tryck p} RETURN'; 13910 GET A$ : IF ASC(A$)<>13% 13910 13980 ; : ; 13990 RETURN 14000 REM  TID-UTSKRIFT 14010 M=FIX(S/60) : S=S-M*60 14020 H=FIX(M/60) : M=M-H*60 14030 T$=NUM$(INT(S))+'.'+RIGHT$(LEFT$(NUM$(S-INT(S))+'00',4%),3%) 14040 IF M>0% OR H>0% T$=NUM$(M)+'.'+RIGHT$(T$,2%) 14050 RETURN 14999 REM  INSORTERA 15000 F9%(S1%)=S1% 15010 IF S1%=0% RETURN 15020 FOR I%=0% TO S1%-1% 15030 FOR J%=I%+1% TO S1% 15040 IF T(F9%(I%),2%)>T(F9%(J%),2%) X9%=F9%(I%) : F9%(I%)=F9%(J%) : F9%(J%)=X9% 15050 NEXT J% : NEXT I% 15099 RETURN 60000 REM  SPELET SLUT  60001 OUT 6%,0% 60005 IF F9% OR K<1 OR K>38 T(S1%,2%)=1E+126 ELSE 60010 60007 ; CUR(12%,1%);'Du }kte aldrig in i m}let, f|ljaktligen blir du diskad...' : D9%(S1%)=-1% : D9%=D9%+1% 60008 GOTO 60100 60010 S=(PEEK(65008%) XOR 255)/50+(PEEK(65009) XOR 255)*5.12+(PEEK(65010) XOR 255)*1310.72 60015 T(S1%,S2%)=S : T(S1%,2%)=T(S1%,0%)+T(S1%,1%) 60020 GOSUB 14000 60050 ; CUR(11%,7%);'Tid:';CUR(11%,25%-LEN(T$));T$ 60100 ; : ; : ; ' Tryck p} RETURN'; 60110 GET A$ : IF ASC(A$)<>13% 60110 60120 GOSUB 15000 60130 RETURN