do :- new(X,picture(ghjkjh)), send(X,size,size(300,300)), send(X,open), new(C,circle(40)), send(C,colour,red), send(C,fill_pattern,green), send(C,position,point(150,150)), send(X,display,C), new(G,handler(area_enter,message(@prolog,move,C))), send(C,recogniser,G). move(O) :- get(O,area,A), get(A,x,X), get(A,y,Y), change(X,XN), change(Y,YN), send(O,move,point(XN,YN)). change(X,XN) :- X < 50, !, XN is floor(X+random(100)). change(X,XN) :- X > 250, !, XN is floor(X-random(100)). change(X,XN) :- XN is floor(X + random(100)-50).