program ex; uses crt, graph; const n=100; var x,y,r,c:array[1..n] of integer; dx,dy:array[1..n] of integer; i,gm,gd,xb,yb:integer; ch:char; xa,ya,ra,dxa,dxb,dyb,dya,s,sa:integer; begin gd:=detect;initgraph(gd,gm,'c:\bp\bgi'); for i:=1 to n do begin x[i]:=random(640); y[i]:=random(480); c[i]:=random(11)+1; r[i]:=random(16)+5; dx[i]:=random(6)-3; dy[i]:=random(6)-3; end; sa:=0; s:=0; xa:=40; ra:=5; ya:=40; xb:=60; yb:=42; repeat for i:=1 to n do begin setcolor(c[i]); circle(x[i],y[i],r[i]); end; circle(xb,yb,20); circle(xa,ya,20); delay(10); if keypressed then ch:=readkey; case ch of #0:begin ch:=readkey; case ch of #77:begin dxa:=+6; end; #75:begin dxa:=-6; end; #100:begin dxb:=+6;{vpravo} end; #80:begin dya:=+6; end; #72:begin dya:=-6; enD; #97:begin dxb:=-6;{vlevo} end; #115:begin dyb:=+6;{vniz} end; #119:begin dyb:=-6; end; end; end; end; for i:=1 to n do begin setcolor(0); circle(x[i],y[i],r[i]); end; circle(xa,ya,20); circle(xb,yb,20); for i:=1 to n do begin if x[i]>640 then dx[i]:=-dx[i]; if x[i]<0 then dx[i]:=-dx[i] ; if y[i]>480 then dy[i]:=-dy[i]; if y[i]<0 then dy[i]:=-dy[i]; if xa>640 then dxa:=-6; if xa<0 then dxa:=+6; if ya>480 then dya:=-6; if ya<0 then dya:=+6; if xb>640 then dxb:=-6; if xb<0 then dxb:=+6; if yb>480 then dyb:=-6; if yb<0 then dyb:=+6; end; for i:=1 to n do begin if (xa-30ya-30) and(xa+30>x[i]) and (y[i]12) and (c[i]<>13) then begin s:=s+1; c[i]:=12; dy[i]:=0; dx[i]:=0; end; end; for i:=1 to n do begin if (xb-30yb-30) and(xb+30>x[i]) and (y[i]13) and (c[i]<>12) then begin sa:=sa+1; c[i]:=13; dy[i]:=0; dx[i]:=0; end; end; for i:=1 to n do begin x[i]:=x[i]+dx[i]; y[i]:=y[i]+dy[i]; end; xa:=xa+dxa; ya:=ya+dya; xb:=xb+dxb; yb:=yb+dyb; until (ch=#13) or ((s+sa)=100); closegraph; textcolor(12); writeln('Score(1up): ',s); textcolor(13); writeln('Score(2up): ',sa); if s>sa then begin textcolor(12); writeln('player 1 win!'); end else writeln('player 2 win!'); readln; end.