В чем тут баг? Вообще квадратик должен перемещаться по полю, закрвшивая после себя пространство, а он сразу все делает =( program game; uses crt, Graph; var t: char; pos: array [0..32, 0..32] of integer; x, y, x1, y1: integer; gm, gd: integer; begin writeln('Welcome to my game!'); writeln('Game by Pocamaxa'); { wait } delay(10000); sound(555); delay(10000); nosound; { end of start } { start new part } x1 := 0; y1 := 0; while x1<=32 do begin while y1<=32 do begin pos[x1,y1] :=0; y1:=y1+1; end; x1:=x1+1; end; x:=5; y:=5; { #32 = space } gd:=0; initgraph(gd ,gm, 'C:\BP\BGI'); while t<>#13 do begin t:=readkey; { left } if t=#37 then begin if x>0 then x:=x-1; end; { right } if t=#39 then begin if x<32 then x:=x+1; end; { up } if t=#38 then begin if y>0 then y:=y-1; end; { down } if t=#40 then begin if y<32 then y:=y+1; end; { draw pole } x1:=0; y1:=0; while x1<=38 do begin while y1<=38 do begin if ((x1=x) and (y1=y)) then begin pos[x1,y1] := 1; SetColor(11); bar(x1*8, y1*8, x1*8+8, Y1*8+8); end else begin case pos[x1,y1] of 0: setcolor(8); 1: setcolor(12); end; bar(x1*8, y1*8, x1*8+8, Y1*8+8); end; y1:=y1+1; end; y1:=0; x1:=x1+1; end; end; closegraph; end.