program stars1; uses crt; function random_limits(min,max : integer) : integer; begin random_limits := random(max-min+1)+min; end; procedure interrupt_delay(p1 : integer; var exit : boolean); var i : integer; ch : char; begin for i := 1 to p1 div 10 do begin delay(p1 div 5); if keypressed then begin ch := readkey; if ch = #13 then ch := #0; exit := true; end; if exit then break end; end; procedure writeto(text : string; x,y : integer; colour : integer); begin textcolor(colour); gotoxy(x,y); write(text); end; procedure stars; var x,y,i : integer; timeRND : integer; time,col : integer; exit : boolean; begin textcolor(0); clrscr; exit := false; while not exit do begin x := random_limits(1,79); y := random_limits(1,25); timeRnd := random_limits(1,100); for i := 1 to timeRND do begin time := random_limits(1,50); col := random_limits(1,30); writeto('*',x,y,col); interrupt_delay(time,exit); end; end; textcolor(black); end; begin textmode(80); randomize; stars; textcolor(lightgray); clrscr; end.