home *** CD-ROM | disk | FTP | other *** search
- {$R-,S-}
-
- uses
- TPCrt,
- TPWindow;
-
- const
- MaxLoop = 40; {Number of windows drawn before erasing}
- ExpDelay = 20; {Milliseconds delay per stage of explosion}
- var
- Flag : Boolean;
- Loop : Word;
- W : WindowPtr;
- Ch : Char;
-
- procedure ShowWindow(Loop : Word);
- var
- Wndow : array[1..MaxLoop] of WindowPtr;
- XL, XH : 1..80;
- YL, YH : 1..25;
- Attr, Frame : Byte;
- begin
- XH := Random(78)+3;
- XL := Succ(Random(XH-3));
- YH := Random(23)+3;
- YL := Succ(Random(YH-3));
- Attr := Succ(Random(127));
- Frame := Succ(Random(127));
- if MakeWindow(Wndow[Loop], XL, YL, XH, YH,
- True, True, False, Attr, Frame, 0, '') then
- Flag := DisplayWindow(Wndow[Loop]);
- HiddenCursor;
- end;
-
- begin
- WriteLn('Press any key to halt');
- WriteLn('Call with any command line parameter to add sound effects');
- Explode := True;
- ExplodeDelay := ExpDelay;
- SoundFlagW := (ParamCount <> 0);
- repeat
- Randomize;
- Loop := 1;
- while (Loop <= MaxLoop) and not KeyPressed do begin
- ShowWindow(Loop);
- inc(Loop);
- end;
- repeat
- W := EraseTopWindow;
- DisposeWindow(W);
- until W = nil;
- until KeyPressed;
- Ch := ReadKey;
- end.