1 REM Ins{nt av 1489 10 REM ******************************* 20 REM * * 30 REM * *** MASTER 2 *** * 40 REM * 1981-09-13 * 50 REM * HANS-RICKARD WERS[LL * 60 REM * Statarv.25, 752 45 Uppsala * 70 REM * LENNART CHRISTOFFERSON * 80 REM * Norrlandsg.3,752 29 Uppsala * 90 REM * F\RMEDLAT 10/81 1489 "TOJ" * 95 REM * * 100 REM ****************************** 110 REM 120 REM VARIABLER : 130 REM ========= 140 REM A$(1-G)=DATORNS SIFFERKOD SOM DU SKALL GISSA 150 REM B$(1-G)=DIN SIFFERKOD 160 REM D$=A$(1)+A$(2)......+A$(G)) D.V.S. HELA DATORNS KOMBINATION 170 REM E$=B$(1)+B$(2)......+B$(G) D.V.S. HELA DIN KOMBINATION 180 REM S=R[KNEVARIABEL 190 REM F=Antal siffror i kombinationen 200 REM G=Antal positioner. 210 REM H$=tillf{llig variabel f|r 0-st{llning av D$ och E$ 220 REM "P" OCH "Q" anv{nds tillf{lligt f|r att "sl} ut" variabler, 230 REM som inte skall anv{ndas mer. 240 PRINT CHR$(12) 250 ; : ; TAB(7)"HEJ! Vi skall spela en" 260 ; : ; TAB(7)"variant av Mastermind" 270 ; : ; TAB(7)"Vill du ha instruktion? J/N "; : GET X$ 280 ONERRORGOTO 240 290 IF X$="J" OR X$="j" GOTO 1050 300 PRINT CHR$(12) 310 ; CUR(6,4)"VILL DU SPELA KONVENTIONELL" 320 ; : ; TAB(9)"MASTERMIND? (J/N)" 330 GET X$ 340 IF X$="J" OR X$="j" GOTO 1720 350 PRINT CHR$(12) 360 PRINT "HUR M]NGA SIFFROR "; 370 INPUT F : IF F>9 OR F<1 GOTO 1730 380 ; : ; : PRINT "HUR M]NGA POSITIONER "; 390 INPUT G : IF G>6 OR G<1 GOTO 1760 400 PRINT CHR$(12) : ; : ; : ; : ; 410 PRINT TAB(6)" DATORN V[LJER SLUMPM[SSIGT" : ; 420 PRINT TAB(6)" UT EN AV SIFFRORNA 1-"F : ; 430 PRINT TAB(6)" TILL VAR OCH EN AV"G" POSITIONER" 440 ; : ; : PRINT TAB(10)" TRYCK P] RETURN!" : ; 450 ; : PRINT TAB(6)" SKRIV SEDAN DIN GISSNING" 460 ; : ; : RANDOMIZE 470 FOR I=1 TO G 480 LET A$(I)=NUM$(INT(1+F*RND)) : NEXT I 490 FOR I=1 TO G 500 LET A$(I)=MID$(A$(I),2,1) : NEXT I 510 FOR I=1 TO G 520 LET D$=D$+A$(I) 530 NEXT I 540 GET X$ : PRINT CHR$(12) 550 LET S=S+1 560 FOR I=1 TO G 570 LET A$(I)=MID$(D$,I,1) 580 NEXT I 590 IF D$=E$ GOTO 920 600 IF S<10 PRINT CUR(S,1)"F\RS\K "S": "; 610 IF S>9 AND S<24 ; CUR(S,1)"F\RS\K "S": "; 620 IF S>23 AND S<46 ; CUR(S-23,1)SPACE$(38) 630 IF S>23 AND S<47 ; CUR(S-23,1)"F\RS\K "S": "; 640 IF S>46 GOTO 1790 650 INPUTLINE E$ 660 LET E$=E$+SPACE$(1) : REM F\R ATT 670 REM F\LJANDE RADER SKALL FUNGERA 680 REM [VEN MED KORT STR[NG ELLER 690 REM OM MAN TRYCKER P] RETURN. 700 LET B$(1)=LEFT$(E$,1) 710 IF B$(1)="?" GOTO 1030 720 IF LEN(E$)<>G+3 GOTO 550 730 FOR I=2 TO G 740 LET B$(I)=MID$(E$,I,1) 750 NEXT I 760 LET E$=LEFT$(E$,G) 770 PRINT SPACE$(4); 780 FOR I=1 TO G 790 IF A$(I)=B$(I) PRINT "R"+SPACE$(2); 800 IF A$(I)=B$(I) LET B$(I)="P" 810 IF B$(I)="P" LET A$(I)="Q" 820 NEXT I 830 FOR I=1 TO G 840 FOR J=1 TO G 850 IF B$(I)<>A$(J) GOTO 890 860 LET A$(J)="Q" 870 PRINT "N"+SPACE$(2); 880 GOTO 900 890 NEXT J 900 NEXT I 910 GOTO 550 920 ; : ; : ; : ; : ; : ; 930 IF S>24 ; CHR$(12) 940 ; TAB(13)" GRATTIS !" 950 ; : ; 960 PRINT TAB(8)"DU HITTADE R[TT KOD "D$ 970 ; : ; 980 PRINT TAB(10)" P] "S-1" F\RS\K" 990 ; : ; : ; : ; TAB(8)"Vill du f|rs|ka igen? (J/N)" 1000 GET X$ 1010 IF X$="J" OR X$="j" GOTO 1880 1020 END 1030 ; : ; : ; : ; : ; "Den r{tta kombinationen {r "D$ 1040 GOTO 550 1050 ; CHR$(12) 1060 ; TAB(11)"INSTRUKTION F\R" 1070 ; : ; " den vanligaste formen, h{r kallad" 1080 ; : ; " KONVENTIONELL MASTERMIND" 1090 ; : ; : ; " Datorn g|r en kombination av 4 siffor" 1100 ; " och v{ljer slumpm{ssigt ut en av" 1110 ; " siffrorna 1-6 f|r varje position" 1120 ; " t.ex.1 3 4 6 eller 2 2 2 4" 1130 ; : ; " Det finns 1296 t{nkbara kombinationer." 1140 ; " Du skall gissa kombinationen och sl}" 1150 ; " in 4 siffror. Du f}r g|ra s} m}nga" 1160 ; " f|rs|k, som du beh|ver f|r att" 1170 ; " gissa r{tt dock h|gst 46." 1180 ; : ; TAB(16)"Tryck p} RETURN!" 1190 GET X$ : PRINT CHR$(12) 1200 ; : ; " Efter varje f|rs|k j{mf|r datorn sin" 1210 ; " kombination med din och markerar" 1220 ; " resultatet med R eller N eller" 1230 ; " ingen bokstav alls" 1240 ; : ; " Varje R betyder att en siffra hamnat" 1250 ; " p} r{tt plats. Fyra st.R betyder" 1260 ; " allts} att du hittat r{tt kombination" 1270 ; : ; " Varje N betyder att en siffra finns" 1280 ; " med i kombinationen men att du inte" 1290 ; " skrivit den p} r{tt plats" 1300 ; : ; " R motsvarar allts} svart markering" 1310 ; " i mastermind och N motsvarar vit" 1320 ; : ; TAB(16)"Tryck p} RETURN" 1330 GET X$ : PRINT CHR$(12) 1340 ; : ; " Om t.ex. den r{tta kominationen" 1350 ; " {r 3 5 2 6 och du f|rs|ker" 1360 ; " med 5 2 2 5, s} finns datorns 2:a med" 1370 ; " hos dig p} r{tt plats och 5:an i" 1380 ; " datorns kombination finns hos dig" 1390 ; " men st}r fel." 1400 ; : ; " Markeringen blir allts} R N" 1410 ; : ; : ; TAB(16)"Tryck p} RETURN!" 1420 GET X$ : ; CHR$(12) 1430 ; " OBS! N[R DU GISSAR, SKALL DU SKRIVA" 1440 ; : ; " ALLA FYRA SIFFRORNA I EN F\LJD OCH" 1450 ; : ; " SEDAN TRYCKA P] RETURN!" 1460 ; : ; " OM DU SKRIVER MINDRE ELLER FLER [N" 1470 ; : ; " FYRA SIFFROR, FLYTTAR JAG DIG TILL" 1480 ; : ; " N[STA F\RS\KSRAD UTAN ATT G\RA N]GON" 1490 ; : ; " MARKERING MED R ELLER N. OBS!" 1500 ; : ; : ; : ; : ; TAB(16)"TRYCK P] RETURN!" 1510 GET X$ : ; CHR$(12) 1520 ; TAB(6)"INSTRUKTION F\R EN ANNAN" 1530 ; : ; TAB(8)"VARIANT AV MASTERMIND" 1540 ; : ; 1550 ; " Om du inte vill spela konventionell" 1560 ; : ; " mastermind, kan du sj{lv v{lja hur" 1570 ; : ; " m}nga siffror och positioner,som skall" 1580 ; : ; " anv{ndas i spelet." 1590 ; : ; " (Dock h|gst 9 siffror och h|gst" 1600 ; : ; " 6 positioner, vilket ger" 1610 ; : ; " 531441 t{nkbara kombinationer)" 1620 ; : ; : ; TAB(20)"TRYCK P] RETURN!" 1630 GET X$ : ; CHR$(12) 1640 ; : ; : ; " Om du vill veta, vilken kombination" 1650 ; : ; " som {r den r{tta, innan du" 1660 ; : ; " sj{lv gissat den, s} sl} in ? som" 1670 ; : ; " f|rsta tecken i st{llet f|r en siffra." 1680 ; : ; : ; : ; : ; TAB(10)"OCH NU B\RJAR VI!" 1690 ; : ; : ; : ; TAB(16)"TRYCK P] RETURN!" 1700 GET X$ 1710 GOTO 300 1720 LET F=6 : LET G=4 : GOTO 400 1730 ; CHR$(12) : ; "OBS! EJ MER [N 9 SIFFROR" 1740 ; : ; "TRYCK P] RETURN!" 1750 GET X$ : GOTO 350 1760 ; CHR$(12)"OBS! EJ MER [N 6 POSITIONER" 1770 ; : ; " TRYCK P] RETURN!" 1780 GET X$ : GOTO 380 1790 ; CHR$(12) 1800 ; "Du har nu gjort 46 f|rs|k utan att" 1810 ; : ; "gissa r{tt" 1820 ; : ; "Den r{tta kombinationen var "D$ 1830 ; : ; "B[TTRE LYCKA N[STA G]NG!" 1840 ; : ; : ; "Vill du f|rs|ka igen? (J/N)" 1850 GET X$ 1860 IF X$="J" OR X$="j" GOTO 1880 1870 END 1880 S=0 : D$=H$ : E$=H$ : REM F\R 0-ST[LLNING 1890 GOTO 240