Código
Program circulo; uses Graph,Crt; var Driver, Modo: Smallint; x1,y1,r1,x2,y2,r2: Integer; arriba, derecha, izquierda, abajo: boolean; Procedure bola (color1,color2: integer); begin Setcolor(color1); //1º bola Circle(x1,y1,r1); Setcolor(color2); // 2º bola Circle(x2,y2,r2); end; {$IFDEF WINDOWS}{$R circulo.rc}{$ENDIF} begin Driver := Vga; { Para pantalla VGA } Modo := VgaHi; { Modo 640x480, 16 colores } InitGraph(Driver, Modo, 'c:\tp\bgi'); { Inicializamos } x1:=160; y1:=240; //1º bola r1:=30; x2:=480; y2:=240; //2º bola r2:=30; //x1:=-4; //x2:=x2+4; //y1:=y1+4; //y2:=y2+4; arriba:=true; derecha:=false; izquierda:=true; abajo:=false; while true do begin bola(random(16),random(16)); // Pinta bola 1 y bola 2 delay(60); // Espera bola(black,black); // Pinta bola 1 y dos de negro if derecha=false then begin x1:=x1-9; end else // X izquierda derecha begin x1:=x1+9; end; if arriba=true then // BOLA 1 begin y1:=y1-6; end else // Y arriba abajo begin y1:=y1+6; end; if izquierda=false then begin x2:=x2-10; end else // X izquierda derecha begin x2:=x2+10; end; if abajo=true then // BOLA 2 begin y2:=y2-5; end else // Y arriba abajo begin y2:=y2+5; end; //////////////////////////////////// if x1<= 0+30 then begin derecha:=true; //x1:=0+30; end // X izquierda derecha else if x1>=640-30 then begin derecha:=false; //x1:=640-30; end; // BOLA 1 if y1<= 0+30 then begin arriba:=false; //y1:=0+30; end else if y1>=480-30 then // Y arriba abajo begin arriba:=true; //y1:=480-30; end; if x2<= 0+30 then begin izquierda:=true; //x2:=0+30; // X izquierda derecha end else if x2>=640-30 then begin izquierda:=false; //x2:=640-30; end; // BOLA 2 if y2<= 0+30 then begin abajo:=false; //y2:=0+30; end else if y2>=480-30 then // Y arriba abajo begin abajo:=true; //y2:=480-30; end; end; Readln; { Esperamos } CloseGraph { Y se acabó } end.
Gracias de antemano
Un saludo!!