;Min-PacMan ;(c) 1988, Bajtek ;written in Action! MODULE BYTE level,crsinh=752 CARD score PROC Pause(BYTE j) CARD k FOR k=0 TO j*j DO OD RETURN PROC Playfield() BYTE colpf=710,cclpm=709, i Graphics(0) colpf=192, cclpm=206, crsinh=1 Position(14,2) Print("Mini PacMan") Position(9,5) Print ("[.............]") FOR i=6 TO 12 DO Position(9,i) Print("|.............|") OD Position(9, 13) Print ("[.............]") Position(15,14) PrintE("WYNIK: ") Position(15, 4) Print("POZIOM: ") PrintBE(level) RETURN BYTE FUNC GetLevel() BYTE i DO Open (1,"K:",4,0) i=GetD(1) Close(1) UNTIL (i>48 AND i<58) OD RETURN(i-48) PROC Setup() Graphics(0) crsinh=0 Position(5,5) Print("POZIOM TRUDNOSCI (1-9) ?") level=GetLevel() crsinh=1 PutE() score=0 RETURN PROC End(CARD score) BYTE i FOR i=0 TO 15 DO Sound(1,10*(15-i),2,(15-i)) Pause(40-i) OD SndRst() Graphics(0) crsinh=1 Position(15,8) Print("WYNIK: ") PrintCE(score). Pause(200) crsinh=0 Position(11,14) Print("Jeszcze raz (T/N)?") Open(1,"K:",4,0) i=GetD(1) Close(1) IF i=78 OR i=110 THEN Break() FI RETURN PROC Game(BYTE level) BYTE xp,yp,dx,dy,xm,ym,a,b,i,s,c,q FOR q=level TO 20 DO Playfield() xp=10 yp=6 xm=29 ym=12 i=0 DO a=Locate(xp,yp) b=Locate(xm,ym) Position(xp,yp) Put(188) Position (xm,ym) Put(162) Pause((20-level)*5) s=Stick(0) IF a=46 THEN Sound(0,100,10,10) a=32 i==+1 score==+1 FI IF s=7 AND xp<29 THEN dx=2 ELSEIF s=11 AND xp>10 THEN dx=0 ELSE dx=1 FI IF s=13 AND yp<12 THEN dy=2 ELSEIF s=14 AND yp>6 THEN dy=0 ELSE dy=1 FI xp==+dx-1 yp==+dy-1 Position(22,14) PrintC(score) SndRst() Position(xp-dx+1,yp-dy+1) Put(a) Position(xm,ym) Put(b) c=Rand(10) IF cxm THEN xm==+1 ELSEIF xpym THEN ym==+1 ELSEIF yp