2 ! +++++++++++++++++++++++++++++++++++ 3 ! Program .... MASTMIND.800 4 ! Utg}va 1.1 1982-04-18 5 ! av (c) Bo Kullmar 8 ! Ins{nt av Bo Kullmar, 1789. 9 ! F|r ABC800 C, kan {ndras till ABC800 M, men d} f}r man ju inga f{rger p} 10 ! bildsk{rmen. 11 ! +++++++++++++++++++++++++++++++++++ 50 ON ERROR GOTO 10000 60 FLOAT 80 EXTEND 800 RANDOMIZE 1000 ; FNF{rg$(WHT,RED); 1010 ; CUR(1%,3%) DBLE '*** MASTER MIND ***' 1020 FOR I%=1% TO 4% 1030 F{rg%(I%)=INT(RND*6%)+1% 1040 Pf%=F{rg%(I%) 1050 Z%=FNF{rgval% 1060 F{rg$(I%)=F{rg$ 1070 NEXT I% 1080 ; CUR(6%,4%) 'Jag har genererat en hemlig kod nu!' 1090 ; CUR(7%,4%) 'Vill du se koden (J/N) '; 1100 GET Svar$ 1110 IF Svar$='J' OR Svar$='j' THEN Z%=FNVisa% 1120 ; CUR(6%,4%) 'Gissa 4:a f{rger med Pf-tangenterna!' 1130 ; CUR(7%,4%) 'R{tt plats o f{rg =' BLU '*' RED 'R{tt f{rg =' MAG '*' 1140 ; CUR(22%,4%) 'Pf1 ' RED '* Pf2 ' YEL '*' RED ' Pf3 ' BLU '*' 1150 ; CUR(23%,3%) RED 'Pf4 ' GRN '*' RED ' Pf5 ' MAG '*' RED ' Pf6 ' CYA '*'; 1160 Rad%=9% 1170 FOR J%=1% TO 6% 1180 Pos%=3% 1190 ; CUR(Rad%,2%); 1200 FOR I%=1% TO 4% 1210 INPUT Pf$ ! Felhanterare 1220 ; CUR(Rad%,Pos%) F{rg$ '*' WHT; 1230 Pos%=Pos%+2% 1240 Giss%(J%,I%)=Pf% 1250 NEXT I% 1260 R{tt%=0% 1270 FOR X%=1% TO 4% 1280 F{rg2%(X%)=F{rg%(X%) 1290 IF Giss%(J%,X%)=F{rg2%(X%) THEN R{tt%=R{tt%+1% : Giss%(J%,X%)=0% : F{rg2%(X%)=0% 1300 NEXT X% 1310 R{ttaf{rger%=0% 1320 FOR X%=1% TO 4% 1330 R{ttf{rg%=0% 1340 FOR Y%=1% TO 4% 1350 IF Giss%(J%,X%)=F{rg2%(Y%) AND F{rg2%(Y%)<>0% THEN R{ttaf{rger%=R{ttaf{rger%+1% : Giss%(J%,X%)=0% : F{rg2%(Y%)=0% 1360 NEXT Y% 1370 NEXT X% 1380 Pos%=25% 1390 IF R{tt%=4% THEN ; CUR(Rad%,Pos%) BLU '* * * * ' 1400 IF R{tt%=3% THEN ; CUR(Rad%,Pos%) BLU '* * * '; 1410 IF R{tt%=2% THEN ; CUR(Rad%,Pos%) BLU '* * '; 1420 IF R{tt%=1% THEN ; CUR(Rad%,Pos%) BLU '* '; 1430 IF R{tt%=0% THEN ; CUR(Rad%,Pos%+1%); 1440 Pos%=PEEK(-174%) 1450 IF R{ttaf{rger%=4% THEN ; CUR(Rad%,Pos%-1%) MAG '* * * *' 1460 IF R{ttaf{rger%=3% THEN ; CUR(Rad%,Pos%-1%) MAG '* * * ' 1470 IF R{ttaf{rger%=2% THEN ; CUR(Rad%,Pos%-1%) MAG '* *' 1480 IF R{ttaf{rger%=1% THEN ; CUR(Rad%,Pos%-1%) MAG '*' 1490 IF R{ttaf{rger%=0% THEN ; 1500 Rad%=Rad%+1% ! Alt +2 1510 IF R{tt%=4% THEN Rad%=Rad%+3% : GOTO 1580 1520 NEXT J% 1530 ; CUR(Rad%+1%,4%) 'Slut! Du klarade inte av att gissa' 1540 Rad%=Rad%+1% 1550 ; CUR(Rad%+1%,4%) 'r{tt p} 6 f|rs|k, f|rs|k igen!' 1560 ; CUR(Rad%+2%,4%) 'R{tta f{rgkoder {r ' FNR{tt$ ' !' 1570 GOTO 12000 1580 IF J%=1% THEN ; CUR(Rad%,4%) 'Du gissade r{tt p} ett f|rs|k,' : ; CUR(Rad%+1%,4%) 'vilken tur!' 1590 IF J%=2% THEN ; CUR(Rad%,4%) 'Du gissade r{tt p} tv} f|rs|k,' : ; CUR(Rad%+1%,4%) 'mycket skickligt!' 1600 IF J%=3% THEN ; CUR(Rad%,4%) 'Du gissade r{tt p} tre f|rs|k,' : ; CUR(Rad%+1%,4%) 'skickligt!' 1610 IF J%=4% THEN ; CUR(Rad%,4%) 'Du gissade r{tt p} fyra f|rs|k, bra!' 1620 IF J%=5% THEN ; CUR(Rad%,4%) 'Du gissade r{tt p} fem f|rs|k,' : ; CUR(Rad%+1%,4%) 'godk{nt!' 1630 IF J%=6% THEN ; CUR(Rad%,4%) 'Du gissade r{tt p} sex f|rs|k,' : ; CUR(Rad%+1%,4%) 'knappt godk{nt!' 1640 GOTO 12000 10000 IF ERRCODE<>53% THEN RESUME 10010 A%=SYS(6%) 10020 GET Pf$ 10030 Pf%=ASCII(Pf$)-191% 10040 Z%=FNF{rgval% 10050 RESUME 1220 11000 DEF FNVisa% 11010 ; CUR(4%,3%) FNR{tt$ 11020 ; CUR(6%,4%) 'Tryck p} en tanget f|r att d|lja ' 11030 ; CUR(7%,4%) 'koden och start av spelet! '; 11040 GET \$ 11050 ; CUR(4%,4%) SPACE$(20%) 11060 ; CUR(10%,4%); 11070 RETURN 0% 11080 FNEND 11500 DEF FNR{tt$=F{rg$(1%)+'*'+F{rg$(2%)+'*'+F{rg$(3%)+'*'+F{rg$(4%)+'*' 12000 ! Svar ? spela igen ? 12010 Rad%=Rad%+3% 12020 ; CUR(Rad%,4%) 'Vill du spela igen? (J/N) '; 12030 Rad%=Rad%+2% 12040 GET Svar$ 12050 IF Svar$='J' OR Svar$='j' THEN 1000 12060 IF Svar$='N' OR Svar$='n' THEN 20000 ELSE 12020 13000 EXTEND : INTEGER 13010 DEF FNF{rg$(B$,T$) 13020 ; CHR$(12%) 13030 FOR I%=0% TO 23% 13040 ; CUR(I%,0%) B$ NWBG T$; 13050 NEXT I% 13060 RETURN F{rg$ 13070 FNEND 14000 DEF FNF{rgval% 14010 IF Pf%=1% THEN F{rg$=RED 14020 IF Pf%=2% THEN F{rg$=YEL 14030 IF Pf%=3% THEN F{rg$=BLU 14040 IF Pf%=4% THEN F{rg$=GRN 14050 IF Pf%=5% THEN F{rg$=MAG 14060 IF Pf%=6% THEN F{rg$=CYA 14070 IF Pf%=7% THEN F{rg$=RED : Pf%=1% 14080 IF Pf%=8% THEN F{rg$=RED : Pf%=1% 14090 RETURN 0% 14100 FNEND 20000 ; CUR(Rad%+1%,4%) 20010 END