ÎÌÌÌ̈ˆˆ¬ªªª¬ˆˆˆ¬ÌÌ̬ÌÀ̬ÌÀ̬ÌÀÌÌÌìÌÀÀî̬ÀÌÀ¬ÀÀÀ¬ÀÀÀ¬ÀÀÎÌÌÌ̈ˆˆ¬ªªª¬ˆˆˆ¬ÌÌ̬ÌÌ̬ÌÀ̬ÌÀÌÌÌìÌÀÀî̬ÀÌ̬ÀÀÀ¬ÀÀÀ¬ÀÀ¬ÌÌ̬ªªª¬ª¬ª¬ªÊ̬ªªªŒˆˆˆÌÀÌÎÌÌÎ̬̪ªÀ쬪ÀÀÀÌîÀìîÌÌîî¬ÌÌ̬ªªª¬ª¬ª¬ªÊ̬ªªªŒˆˆˆÌÀÌÎÌÌÎ̬̪ªÀ쬪ÀÀÀÌîÀìîÌÌîî > È;"ÿò/òÿ"ÿÿ/ÿÿ/""ÿÿ/òÿ/òÿ"òÿ"ÿÿ"ÿÿ/""""""""""b&""""""""""f"f&""""""ÿÿ/ÿ"/"ÿ"ÿ""""ÿ""ÿ/"ÿ"/ÿ"/ÿ"/ÿ"""""""""bf&ff&bf"ff"bf&fb&f""""""ÿÿ/ÿ"/ò/"ÿÿ"""ÿÿ"òÿ"ÿ""ÿ"/ÿ"/ÿÿ""""""""f&"b&"fb&f"&f&""bfb""""""///ÿÿ/ÿ""ÿ""""ÿ"""ÿ/ÿ"/ÿÿ/ÿÿ"ÿ""""""""""f&b&"f&"f"&"f&fb&b""""""/"/ÿ"/ÿÿ/ÿÿ/""ÿÿ/ÿÿ"òÿ"ÿ"/ÿ""ÿÿ/"""""""ff""f&bf"ff"ff"f"f&""""""""""""""""""""""""""""""""""""""""""""""""""""""f""""""""""""""""""»»»""""""""""""""""»»°""""""""""""""""»»»""""""""""""""""»»»""""""""""""""""»»»""""""""""""""""»»»""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""îîîîîîî""""""""""""""""""""""""""""""""""""""""îîî""""""""""""""""""""""""""""""""""""""""""""îîî""""""""""""""""""""""""""""""""""""""""""""îîîî""""""""""""""""""""""""""""""""""""""""""""îîî""""""""""""""""""""""""""""""""""""""""""""îîîî""""""""""""""""""""""""""""""""""""""""""""îîîî""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""ã -- title: MAZE ESCAPE -- author: you -- desc: find the exit! -- script: lua -- === КÐ�РТÐ� (Ñ�тены = тайл 1, пол = 0, выход = 2) === -- Ð�ариÑ�ована прÑ�мо в коде, не нужен Map Editor W=1 _=0 E=2 MAP={ {W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W}, {W,_,_,_,W,_,_,_,_,W,_,_,_,_,_,W}, {W,_,W,_,W,_,W,W,_,W,_,W,W,W,_,W}, {W,_,W,_,_,_,W,_,_,_,_,W,_,_,_,W}, {W,_,W,W,W,W,W,_,W,W,W,W,_,W,W,W}, {W,_,_,_,_,_,_,_,W,_,_,_,_,_,_,W}, {W,W,W,_,W,W,W,W,W,_,W,W,W,W,_,W}, {W,_,_,_,W,_,_,_,_,_,_,_,W,_,_,W}, {W,_,W,W,W,_,W,W,W,W,W,_,W,_,W,W}, {W,_,_,_,_,_,W,_,_,_,W,_,_,_,W,W}, {W,W,W,W,_,W,W,_,W,_,W,W,W,_,_,W}, {W,_,_,_,_,_,_,_,W,_,_,_,_,_,_,W}, {W,_,W,W,W,W,_,W,W,W,W,W,W,W,_,W}, {W,_,_,_,W,_,_,_,_,_,_,_,W,_,_,W}, {W,W,W,_,W,_,W,W,W,W,W,_,W,_,E,W}, {W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W}, } TW=8 -- размер тайла в пикÑ�елÑ�Ñ… MX=16 -- ширина карты MY=16 -- выÑ�ота карты -- === ИГРОК === px=1*TW+2 -- Ñ�тартоваÑ� позициÑ� X (в пикÑ�елÑ�Ñ…) py=1*TW+2 -- Ñ�тартоваÑ� позициÑ� Y spd=1 -- Ñ�короÑ�ть -- === СОСТОЯÐ�ИЕ === won=false steps=0 t=0 -- === ВСПОМОГÐ�ТЕЛЬÐ�ЫЕ ФУÐ�КЦИИ === function tile(x,y) local tx=math.floor(x/TW) local ty=math.floor(y/TW) if tx<0 or ty<0 or tx>=MX or ty>=MY then return W end return MAP[ty+1][tx+1] end function canmove(x,y,w,h) return tile(x,y)~=W and tile(x+w,y)~=W and tile(x,y+h)~=W and tile(x+w,y+h)~=W end function checkexit(x,y) local tx=math.floor((x+3)/TW) local ty=math.floor((y+3)/TW) if tx<0 or ty<0 or tx>=MX or ty>=MY then return false end return MAP[ty+1][tx+1]==E end -- === ГЛÐ�Ð’Ð�ЫЙ ЦИКЛ === function TIC() t=t+1 if not won then -- движение local nx,ny=px,py if btn(0) then ny=py-spd end if btn(1) then ny=py+spd end if btn(2) then nx=px-spd end if btn(3) then nx=px+spd end if nx~=px then if canmove(nx,py,5,5) then px=nx; steps=steps+1 end end if ny~=py then if canmove(px,ny,5,5) then py=ny; steps=steps+1 end end -- проверка победы if checkexit(px,py) then won=true sfx(0,"C5",30,0,15) -- победный звук end end -- === РЕÐ�ДЕР === cls(0) -- риÑ�уем карту for y=0,MY-1 do for x=0,MX-1 do local tile=MAP[y+1][x+1] if tile==W then -- Ñ�тена: Ñ�иний прÑ�моугольник Ñ� тёмным верхом rect(x*TW,y*TW,TW,TW,2) rect(x*TW,y*TW,TW,2,1) elseif tile==E then -- выход: мигающий жёлтый local c=12 if t%30<15 then c=14 end rect(x*TW,y*TW,TW,TW,c) print("!",x*TW+2,y*TW+1,0) end end end -- игрок: зелёный квадратик Ñ� глазом rect(px,py,6,6,11) pix(px+4,py+1,0) -- глаз -- UI print("MAZE ESCAPE",2,2,15) print("steps:"..steps,80,2,6) if won then -- Ñ�кран победы rectb(30,55,80,20,15) rect(31,56,78,18,0) print("YOU WIN!",50,60,14) print("steps:"..steps,44,67,6) end end