10 ! BYTA800.GAM 20 ! ---------------------------------------------------- 30 ! "BARTER.GAM" ** AV D H BUSCH UR INTERFACE AGE 40 ! \versatt och bearb f|r ABC800 av B.M. Word & Music Lund 1983. 50 ! G}r {ven p} ABC 802-806. 80 Tecken. 60 ! --------------------------------------------------- 70 EXTEND : FLOAT : RANDOMIZE 80 ! * * * * * I N S T R U K T I O N E R * * * * * 90 ; CHR$(12) 100 ; CUR(1,30) "BYTA800.GAM" 110 ; CUR(10,15) "\nskas instruktioner"; : INPUT A$ 120 IF LEFT$(A$,1)="N" THEN GOTO 370 130 ; CHR$(12) 140 ; ,"BYTA800.GAM kan spelas av en eller tv}" 150 ; 160 ; ,"personer. Under spelets g}ng tilldelas du (ni) olika " 170 ; 180 ; ,"yrken, t ex L[KARE eller BONDE och m}let {r att" 190 ; 200 ; ,"byta de varor (som du har) mot de andras" 210 ; 220 ; ,"s} att du f}r det du beh|ver. Du f}r" 230 ; 240 ; ,"ibland byta mer {n en g}ng f|r att f} det |nskade." 250 ; 260 ; ,"Det g{ller att klara det med s} f} byten" 270 ; 280 ; ,"som m|jligt! Om ingen beh|ver det du har, svara '0'" 290 ; 300 ; ,"f|r att st} |ver. Ange annars nr:et p} den du vill" 310 ; 320 ; ,"byta med. Lycka till ! " 330 ; 340 ; TAB(35) "Starta med RETURN "; 350 GET A$ 360 REM ***** F\R IN ANTAL SPELARE OCH NAMN ****** 370 ; CHR$(12) 380 ; CUR(10,15) "1 eller 2 spelare"; : INPUT A$ : ; 390 A=VAL(A$) : IF A<1 OR A>2 THEN 380 400 IF A=2 THEN ; ,"Vad heter SPELARE 1"; : INPUT Pl$(1) : ; ," Och Spelare Tv}"; : INPUT P1$(2) 410 ; ,"Hur m}nga OMG]NGAR vill du (ni) spela"; : INPUT Round$ 420 Round=VAL(Round$) 430 DATA "MEDICIN", "BULLAR", "SKOR", "LEKSAKER", "K\TT", "SPECERIER", "M\BLER","KL[DER", "MJ\LK" 440 DATA "L[KARE", "BAGARE", "SKOMAKARE", "LEKSAKSAFF[R", "CHARKUTERIST", "ICA-HANDLARE", "M\BELSNICKARE", "KL[DHANDEL", "BONDE" 450 REM **** L[S IN YRKEN OCH PRODUKTER I EN ARRAY **** 460 FOR N1=1 TO 9 : READ Prod$(N1) : NEXT N1 470 FOR N2=1 TO 9 : READ Occup$(N2) : NEXT N2 480 REM **** LOOP - NUMBER OF ROUNDS SPECIFIED **** 490 FOR L=1 TO Round 500 IF A=2 THEN FOR Player=1 TO 2 510 ; CHR$(12); : PRINT 520 Other$="" 530 REM ***** V[LJ SPELARENS YRKE SLUMPARTAT ***** 540 Self=INT(RND*10) 550 REM **** V[LJ SLUMPARTAT TV] GRANNARS BEHOV AV GREJER **** 560 FOR N3=1 TO 9 570 X=INT(RND*10) 580 Y=INT(RND*10) 590 IF X=Y THEN GOTO 580 600 IF X=N3 THEN GOTO 570 610 IF Y=N3 THEN GOTO 580 620 Extra$(N3)=Prod$(Y) 630 Need$(N3)=Prod$(X) 640 NEXT N3 650 ; CHR$(12); 660 REM *** SE OM SPELARE BYTT FRAMG]NGSRIKT *** 670 IF Other$=Extra$(Self) THEN 1040 680 Trans=Trans+1 690 REM *** LIST STATUS TO SCREEN **************************** 700 IF A=2 THEN PRINT Pl$(Player);", "; 710 ; ,"Du {r ";Occup$(Self) ". (YRKE nummer " Self ")" 720 ; ,"Du har ";Prod$(Self); 730 IF Other$<>"" THEN PRINT " och " Other$ "."; 740 IF Other$="" THEN PRINT "."; 750 ; TAB(50) "Du beh|ver ";Extra$(Self) "." 760 ; 770 ; ,"H{r {r l{get f|r dina GRANNAR: " 780 ; ," Yrke"," I lager"," Beh|ver" 790 ; 800 FOR N5=1 TO 9 810 IF N5=Self THEN GOTO 840 820 ; ,N5 ".)" 830 ; ,Occup$(N5),Prod$(N5),Extra$(N5),Need$(N5) 840 NEXT N5 850 PRINT : ; ,"Nr p} den du vill byta med"; : INPUT Nu$ 860 REM ***** OM SPELARE INTE SER UTV[G, G] TILL STRAFFRUTIN ********** 870 IF LEFT$(Nu$,1)="0" THEN GOTO 1330 880 Nu=VAL(Nu$) 890 REM *** KOLLA OM BYTE [R M\JLIGT *** 900 IF Nu=Self THEN ; ,"MAN BYTER INTE MED SIG SJ[LV!" : FOR X=1 TO 4000 : NEXT X : GOTO 710 910 IF Prod$(Self)=Extra$(Nu) OR Other$=Extra$(Nu) THEN 940 920 IF Prod$(Self)=Need$(Nu) OR Other$=Need$(Nu) THEN GOTO 970 930 GOTO 1010 940 Other$=Prod$(Nu) 950 Extra$(Nu)="" 960 GOTO 650 970 Other$=Prod$(Nu) 980 Need$(Nu)="" 990 GOTO 650 1000 REM *** BUDSKAP VID ILLEGAL TRANSAKTION ********************** 1010 ; ,Occup$(Nu) " beh|ver inte " Prod$(Self) ". RETURN "; 1020 INPUT A$ : GOTO 650 1030 GOTO 70 1040 ; CHR$(12) : ; : ; 1050 REM **** ST[LLNING \KAD VID KORREKT BYTE **** 1060 ; "GRATULERAR!" : ; CHR$(7) 1070 ; "Du bytte r{tt med " Trans "bytesaff{rer." 1080 Sc(Player)=Sc(Player)+Trans 1090 PRINT : PRINT 1100 INPUT "Tryck p} RETURN f|r att forts{tta!"A$ 1110 RESTORE 1120 Trans=0 1130 IF A=2 THEN NEXT Player 1140 NEXT L 1150 REM *** SLUT P] SPELET ************************* 1160 ; CHR$(12) 1170 ; 1180 IF Sc(0)<>0 THEN ; "DIN PO[NG :" Sc(0) : GOTO 1270 1190 ; "S L U T S T [ L L N I N G " 1200 ; 1210 ; "Namn","Antal bytesaff{rer" 1220 ; 1230 PRINT Pl$(1),Sc(1) 1240 PRINT Pl$(2),Sc(2) 1250 IF Sc(1)=Sc(2) THEN 1300 1260 IF Sc(1) F\R ATT FORTS[TTA! "A$ 1400 GOTO 1130 1410 END