Snow

 
 

program snow;

uses common,quickDrawII,eventMgr,mscToolSet;


type

  snow=object

    x:integer;

    y:integer;

    procedure setup;

    procedure move;

    procedure draw;

    procedure erase;

  end;


var

  i:integer;

  tick:longInt;

  snows:array[1..300] of snow;

 

{ Setup }


procedure snow.setup;

begin

  x := randomInteger mod 319;

  y := randomInteger mod 100;

end;


{ Move snow }


procedure snow.move;

var

  slide, speed: integer;


begin

  speed := randomInteger mod 20 + 1;

  slide := randomInteger mod 11 - 5;


  x := x + slide;

  y := y + speed;


  if y > 199 then begin

    x := randomInteger mod 319;

    y := 0;

  end;

end;


{ Draw snow }


procedure snow.draw;

begin

  setSolidPenPat(15);

  moveTo(x,y);

  line(0,0);

end;


procedure snow.erase;

begin

  setSolidPenPat(0);

  moveTo(x,y);

  line(0,0);

end;

        

begin

  tick:=getTick;


  startDesk(320);

  setRandSeed(getTick);

  hideCursor;

  clearScreen(0);


  { Setup snow }


  for i:=1 to 300 do begin

    new(snows[i]);

    snows[i].setup;

  end;


  repeat

    for i:=1 to 300 do begin

      snows[i].erase;

      snows[i].move;

      snows[i].draw;

    end;


    repeat until getTick-tick > 5;

    tick:=getTick;

  until button(0);


  { Clear snow }


  for i := 1 to 300 do

    dispose(snows[i]);


  endDesk;

end.

This is Ding Wen’s first Object Oriented program, written in Orca/Pascal.