10 REM 15 REM ********************* 20 REM * * 25 REM * " T R A X " * The mad 30 REM * * programmer 35 REM * ETT INTERAKTIVT * strikes 40 REM * TV-SPEL I REALTID * again ! 45 REM * * 50 REM ********************* 55 REM * PER LINDBERG -78 * 60 REM ********************* 65 REM 70 ; CHR$(12%); 75 FOR I%=0% TO 2% 80 ; CUR(I%,0%);CHR$(23%); 85 NEXT I% 90 FOR I%=18% TO 40% 95 SETDOT 1%,I% : SETDOT 7%,I% 100 NEXT I% 105 FOR I%=2% TO 6% 110 SETDOT I%,18% : SETDOT I%.40% 115 NEXT I% 120 ; CUR(1%,10%);" T R A X " 125 ; CUR(0%,28%);CHR$(135%); 130 ; "PL-78"; 135 ; CUR(5%,0%); 140 ; "\NSKAS INSTRUKTIONER (Nej) "; 145 ; SPACE$(13%);CUR(5%,28%); 150 INPUT A$ 155 IF A$="" THEN A$="N" 160 IF LEFT$(A$,1%)="J" THEN 165 ELSE IF LEFT$(A$,1%)="N" THEN 265 ELSE 135 165 ; CUR(5%,0%);SPACE$(40%); 170 ; CUR(5%,0%); 175 ; "INSTRUKTIONER:" : ; 180 ; "SPELARE 1:s SPELARE 2:s" 185 ; " TANGENTER TANGENTER" 190 ; " _________ _________" 195 ; 200 ; " W ]" 205 ; " A S \ [" 210 ; " Z -" 215 ; 220 ; "TANGENTERNA STYR RESPEKTIVE RIKTNING." 225 ; 230 ; "MAN KAN V[LJA OM MAN VILL SPELA ENSAM," 235 ; "MOT DATORN, MOT EN ANDRA SPELARE ELLER" 240 ; "ALLA TRE P] EN G]NG." 245 ; 250 ; "DEN SOM KOLLIDERAR MOT N]GOT, F\RLORAR." 255 ; : ; "(Tryck p} return n{r du l{st klart) "; 260 INPUTLINE A$ 265 ; CHR$(12%); 270 ; "1. EN SPELARE MOT ABC80" 275 ; "2. TV] SPELARE MOT VARANDRA" 280 ; "3. ALLA TRE P] EN G]NG" 285 ; "4. EN SPELARE ENSAM (\vning)" 290 ; "5. ABC80 ENSAM (Demonstration)" 295 ; CUR(6%,0%);"V[LJ ALTERNATIV :"; 300 ; SPACE$(23%);CUR(6%,17%); 305 INPUTLINE A$ 310 A$=LEFT$(A$,LEN(A$)-2%) 315 IF LEN(A$)<>1% THEN 295 320 A%=ASC(A$)-48% 325 IF A%<1% OR A%>5% THEN ; CHR$(7%) : GOTO 295 330 ON A% GOTO 335,340,345,350,355 335 I8%=0% : I9%=1% : S%=2% : GOTO 360 340 I8%=1% : I9%=2% : S%=12% : GOTO 360 345 I8%=0% : I9%=2% : S%=0% : GOTO 360 350 I8%=1% : I9%=1% : S%=25% : GOTO 360 355 I8%=0% : I9%=0% : S%=1% : S1%=3% : GOTO 420 360 ; CUR(10%,0%);"V[LJ HASTIGHET :" 365 ; CUR(12%,0%); 370 ; "1 = Nyb|rjare" 375 ; "2 = Medium" 380 ; "3 = T{vling" 385 ; CUR(10%,17%);SPACE$(23%); 390 ; CUR(10%,17%); 395 INPUTLINE A$ 400 A$=LEFT$(A$,LEN(A$)-2%) 405 IF LEN(A$)<>1% THEN 385 410 S1%=ASC(A$)-48% 415 IF S1%<1% OR S1%>3% THEN ; CHR$(7%); : GOTO 385 420 S%=S%+30%*(3%-S1%) 425 IF A%=5% THEN 450 430 ; CUR(23%,0%); 435 ; "TRYCK P] RETURN N[R DU [R REDO ! "; 440 INPUTLINE A$ 445 REM * INITIERA ****************** 450 RANDOMIZE 455 Q=.3 460 IF A%=5% THEN Q1=.0025 ELSE Q1=.005 465 REM (hur ofta jag tar ny riktning) 470 DIM X%(2%),Y%(2%),R%(2%) 475 X%(0%)=42% : Y%(0%)=35% : R%(0%)=1% 480 IF A%=3% THEN Y%(0%)=32% : R%(0%)=2% 485 X%(1%)=40% : Y%(1%)=35% : R%(1%)=3% 490 X%(2%)=42% : Y%(2%)=35% : R%(2%)=1% 495 ; CHR$(12%); 500 FOR I%=0% TO 23% 505 ; CUR(I%,0%);CHR$(23%); 510 NEXT I% 515 FOR X%=2% TO 79% 520 SETDOT 0%,X% : SETDOT 71%,X% 525 NEXT X% 530 FOR Y%=1% TO 70% 535 SETDOT Y%,2% : SETDOT Y%,79% 540 NEXT Y% 545 REM ** MAIN LOOP *************** 550 FOR I%=I8% TO I9% 555 GOSUB 600 : REM L[S TANGENTBORDET 560 GOSUB 900 : REM STEGA FRAM 565 REM HASTIGET 570 ]1%=5%*(S%-1%)/(I9%-I8%+1%) 575 FOR ]=0 TO ]1% : NEXT ] 580 NEXT I% 585 GOTO 550 590 REM ** END MAIN LOOP *********** 595 REM L[S TANGENTBORDET 600 IF I%=0% THEN GOSUB 750 : RETURN 605 REM (DET VAR SPECIAL F\R DATORN) 610 K%=INP(56%) 615 R%=0% 620 ON I% GOSUB 655,705 625 REM Spelare <1> <2> 630 REM INTE V[NDA 180 GR./FEL TANGENT 635 IF NOT ABS(R%-R%(I%))=2% AND NOT R%=0% THEN R%(I%)=R% 640 RETURN 645 REM SPELARE 1 <-- 650 REM -S- 655 IF (K% AND 127%)=83% THEN R%=1% 660 REM -W- 665 IF (K% AND 127%)=87% THEN R%=2% 670 REM -A- 675 IF (K% AND 127%)=65% THEN R%=3% 680 REM -Z- 685 IF (K% AND 127%)=90% THEN R%=4% 690 RETURN 695 REM SPELARE 2 --> 700 REM -]- 705 IF (K% AND 127%)=91% THEN R%=1% 710 REM -[- 715 IF (K% AND 127%)=93% THEN R%=2% 720 REM -\- 725 IF (K% AND 127%)=92% THEN R%=3% 730 REM -- 735 IF (K% AND 127%)=45% THEN R%=4% 740 RETURN 745 REM <-DATORN V[LJER RIKTNING-> 750 IF Q>.03 THEN Q=Q-Q1 755 IF RND.5 THEN R4%=1% : R5%=3% ELSE R4%=3% : R5%=1% 790 IF R1%=1% THEN R4%=R4%+1% : R5%=R5%+1% 795 R%=R5% : GOSUB 845 : REM PROVA 800 IF F%=1% THEN R%(0%)=R5% : RETURN 805 R%=R4% : GOSUB 845 : REM PROVA 810 IF F%=1% THEN R%(0%)=R4% : RETURN 815 REM SISTA UTV[GEN;G] TILLBAKS. 820 R1%=2%*(R%(0%)/2-R%(0%)/2%) 825 R%(0%)=R%(0%)+2%*SGN(3%-R1%-R%(0%)) 830 REM G]R DET, S] G]R DET ... 835 RETURN 840 REM F%=PROVA(RIKTNING(R%)) 845 X1%=X%(0%) : Y1%=Y%(0%) 850 R1%=2%*(R%/2-R%/2%) 855 IF R1%=1% THEN X1%=X1%-2%*R%+4% ELSE Y1%=Y1%+2%*R%-6% 860 FOR Y2%=Y1%-1% TO Y1%+1% 865 FOR X2%=X1%-1% TO X1%+1% 870 IF DOT(Y2%,X2%) THEN F%=0% : RETURN 875 NEXT X2% : NEXT Y2% 880 F%=1% 885 RETURN 890 REM STEGA FRAM SPELARE NR. I% 895 REM ETT : BER[KNA NYA KOORDIN\TTER 900 X1%=X%(I%) : Y1%=Y%(I%) 905 R1%=2%*(R%(I%)/2-R%(I%)/2%) 910 IF R1%=1% THEN X1%=X1%-2%*R%(I%)+4% ELSE Y1%=Y1%+2%*R%(I%)-6% 915 REM TV] : KOLLA ATT EJ KONTAKT 920 FOR Y2%=Y1%-1% TO Y1%+1% 925 FOR X2%=X1%-1% TO X1%+1% 930 IF DOT(Y2%,X2%) THEN GOTO 965 935 NEXT X2% : NEXT Y2% 940 REM TRE : OK,RITA & STEGA 945 SETDOT (Y1%+Y%(I%))/2%,(X1%+X%(I%))/2% : SETDOT Y1%,X1% 950 Y%(I%)=Y1% : X%(I%)=X1% 955 RETURN 960 REM AVSLUT, NIBBLA F\RLORARKEDJAN 965 SETDOT Y1%,X1% 970 OUT 6%,137% 975 FOR ]=0 TO 500 : NEXT ] 980 Y1%=Y%(I%) : X1%=X%(I%) 985 REM FINN F\REG]ENDE BRICKA 990 FOR Y2%=Y1%-1% TO Y1%+1% 995 FOR X2%=X1%-1% TO X1%+1% 1000 IF Y2%=Y1% AND X2%=X1% THEN 1010 1005 IF DOT(Y2%,X2%) THEN 1025 1010 NEXT X2% : NEXT Y2% 1015 REM SLUT, INGA FLER BRICKOR 1020 GOTO 1070 1025 CLRDOT Y2%,X2% 1030 OUT 6,111 1035 FOR ]=0 TO 40 : NEXT ] 1040 OUT 6%,0% 1045 FOR ]=0 TO 20 : NEXT ] 1050 Y1%=Y1%+2%*(Y2%-Y1%) 1055 X1%=X1%+2%*(X2%-X1%) 1060 GOTO 990 1065 REM *** FINITO DE LA GAME *** 1070 ; CUR(23%,0%); 1075 ; "ETT SPEL TILL (Ja) ? "; 1080 ; CHR$(23%); 1085 ; CUR(23%,21%); 1090 GET R9$ 1095 IF R9$=CHR$(13%) OR R9$="J" THEN 1100 ELSE 1115 1100 ; "Jomenvisst !";CHR$(23%); 1105 FOR ]=0 TO 2000 : NEXT ] 1110 IF A%=5% THEN 450 ELSE 430 1115 IF R9$="N" THEN 1120 ELSE ; CHR$(7%); : GOTO 1085 1120 ; CUR(23%,0%);SPACE$(21%); 1125 ; CUR(23%,10%);"Aj|."; 1130 ; CUR(22%,5%);CHR$(23%); 1135 ; CUR(21%,0%); 1140 REM --BYE, BAJ, BAJEN ! 1145 END