![]() | |
| |||||||
| Home | Register | Blogs | FAQ | Members List | Calendar | Downloads | Arcade | Mark Forums Read |
| Algorithms The source of algorithms for your project |
![]() |
| | LinkBack | Thread Tools | Display Modes |
| | #1 |
| Младенец Join Date: Oct 2001 Location: Yerevan
Posts: 41
Rep Power: 0 Reputation:
10 | Program Snow; const Flakes = 500; { mec = shat patilner (3000)} Fastest = 1000; { poqr tiv=dandax patilner (240)} Explosion = False; Type FlakeyRec = Record x,y:Byte; p:Word; end; var i:longint; r,CurFlake,s,pf:Word; Flake:Array[0..Flakes] of Flakeyrec; Procedure vidMode(mode : byte);assembler; asm mov ah,$00; mov al,mode; int 10h; end; Function KeyPressed:boolean;assembler; asm mov ax,0100h; int 16h; jnz @1; xor ax,ax; ret; @1: inc ax; end; Procedure Perturb;assembler; asm mov dx,r; xor dx,0AA55h; shl dx,1; adc dx,118h; mov r,dx; end; Procedure Delay(CX1,DX2:WORD);Assembler; asm mov ah, 86h mov cx, CX1 mov dx, DX2 int 15h end; Procedure GotoXY(x,y:integer; Str:String); var i:integer; begin for i:=1 to y do writeln; for i:=1 to x do write(' '); write(str); end; Procedure SnowFall; begin GotoXY(13,11,'SMoKE in 2001'); Delay($F,$4240); repeat for CurFlake:= 1 to flakes do with Flake[CurFlake] do begin Perturb; Mem[$A000 ]:=0;If x>=lo(r) then Inc(p); If y>=Hi(r) then Inc(p,320); Mem[$A000 ]:=y SHR 5 + $18;end; Repeat Until (port[$3DA] and $08) = $08; until keypressed; end; Begin for CurFlake:=0 to Flakes do with Flake[curflake] do begin Perturb; inc(s,r); y:=Hi(Hi(r)*Fastest)+5; x:=Hi(Lo(r)*y)+1; If explosion = False then p:=s; end; vidMode($13); SnowFall; vidMode($03); end.
__________________ http://freenet.am/~softland |
| | |