program Billard11;

uses
  mSum,
  mKugel in 'mKugel.pas',
  mReibungskugel in 'mReibungskugel.pas';

var
  derBildschirm : Bildschirm;
  dieMaus       : Maus;
  meineKugel,
  weitereKugel  : Kugel;
  dritteKugel   : Reibungskugel;

begin
  // Initialisierung
  derBildschirm := Bildschirm.init;
  dieMaus       := Maus.init;
  meineKugel    := Kugel.init(20,50,0.5,75);
  meineKugel.merke(derBildschirm);   // Kennt-Beziehung herstellen
  weitereKugel  := Kugel.init(300,250,0.1,111);
  weitereKugel.merke(derBildschirm); // Kennt-Beziehung herstellen
  dritteKugel   := Reibungskugel.init(200,120,1.5,223);
  dritteKugel.merke(derBildschirm);  // Kennt-Beziehung herstellen

  // Aktionsteil
  meineKugel.zeichne;
  weitereKugel.zeichne;
  dritteKugel.zeichne;
  repeat
    meineKugel.bewege;
    weitereKugel.bewege;
    dritteKugel.bewege
  until dieMaus.istGedrueckt;

  // Aufräumen
  dritteKugel.gibFrei;
  weitereKugel.gibFrei;
  meineKugel.gibFrei;
  dieMaus.gibFrei;
  derBildschirm.gibFrei
end.