program test; uses Crt, graph; var x, y: integer; procedure init; var gr, gm: integer; begin gr:=0; InitGraph(gr, gm, ' '); if GraphResult <> grOk then halt(1); end; procedure clear(xa, ya, xb, yb: integer); var i:integer; begin setcolor(0); for i:=0 to abs(ya-yb) do line(xa, ya+i, xb, ya+i); setcolor(15); end; begin clrscr; init; x:=100; y:=100; Bar(x, y, x+20, y+20); OutTextXY(180, 10, 'Move'); OutTextXY(220, 10, 'it'); OutTextXY(245, 10, 'using'); OutTextXY(293, 10, '`w``s``d``a`'); Rectangle(0, 20, 639, 479); while readkey <> 'q' do begin while readkey='w' do begin y:=y-5; if y<21 then y:=21; Bar(x, y, x+20, y+20); clear(x, y+20, x+20, y+25); end; while readkey='s' do begin y:=y+5; if y>458 then y:=458; Bar(x, y, x+20, y+20); clear(x, y-5, x+20, y); end; while readkey='a' do begin x:=x-5; if x<1 then x:=1; Bar(x, y, x+20, y+20); clear(x+20, y, x+25, y+20); end; while readkey='d' do begin x:=x+5; if x>618 then x:=618; Bar(x, y, x+20, y+20); clear(x-5, y, x, y+20); end; end; end.