. , , ,

,,,

,

ߠ

򠠠 ..

-913 ..

1997

 

..............................-

.......................................3

1. ..............................4

1.1. .........4

1.2. ........................5

1.3. Fauna1 ...............6

1.4. Mycrt ................7

1.5. .........8

2. ..................................9

1. ...............10

2. Fauna1................24

3. Mycrt.................26

4. ..........28

-3-

1.  .

"", .

,

: ,

.

:

-

-

-

-

-

-

-4-

2.  ߠ .

2.1 .

, , , . , , , .

, .. Y .

, .

, , .. , . -

, , .

-5-

2.2 .

- Borland Pascal 7.1 tosob fauna1. :

x -

y - Y

age -

col -

:

-

-

-

-

-

-

"uses" TPCRT, GRAPH, DOS - MYCRT FAUNA1.

:

- gd,gm integer

- q,x,y,x1,y1,t,i,j,k,at,at1,ct1,ctp integer

- g,m integer

- v,w integer

- ct,ch shortint

- tmin,tmax,hmin,hmax,tp,hp integer

- tt integer

- kata integer

- ht integer

- ttt real

- tr real

- tree,tree1 longint 蠠

- z longint

- key boolean

- s,ss string

- pal FillPatternType

GRAPH

- tg 4400 tosob

- hr 1350 tosob

-6-

2.3 FAUNA1

Tposition Tosob. Tposition :

x -

y - Y

:

getx -

gety - Y

init

Tosob :

x -

y - Y

age -

col -

:

daizwet -

daiage - age

vidnoli -

:

blind -

show -

init - Tosob

done - Tosob

-7-

2.4 MYCRT

.

:

fon -

txt -

ramka -

186,187,188,200,201,205

colorwind -

:

colword -

mes -

-8-

2.4

:

ini - hr tr

tnew - tr

hnew - hr

trod - tr

hrod - hr

dead - tr

hr

havka - tr

tt

tmor -

tr

hmor -

hr

zasux - tree

quit -

herb -

tr

beast -

hr

env -

tree, tr, kata, q

info -

gmenu -

omenu - Option

start -

komenu - Option

gkmenu -

-9-

3.  

. , . , . :

-

-

-

-

-

Pascal.

-10-

1.

program fauna;

uses mycrt,dos,graph,fauna1,tpcrt;

var

q,x,y,x1,y1,gd,gm,t,i,j,k,AT,at1,ct1,ctp:integer;{}

g,v,m,w:integer;{}

ct,ch:shortint;{}

tmin,tmax,hmin,hmax,tp,hp:integer;{}

tt:integer;{ 1 }

kata,ht:integer;

ttt,tr:real;

z,tree,TREE1:longint;

key:boolean;

s,ss:string[17];

tg:array[1..4400] of tosob; {green-}

hr:array[1..1350] of tosob; {red-}

pal:FillPatternType;

{***********************************************************}

procedure ini;

begin

for i:=1 to g do

begin

at:=RANDOM(v)+1;

tg[i].init((random(630)+5),(random(462)+18),at,ct);

tg[i].show;

end;

for i:=1 to m do

begin

at:=random(w)+1;

HR[i].init((random(630)+5),(random(462)+18),at,ch);

hr[i].show;

end;

end;

{***********************************************************}

procedure tnew;

begin

I:=0;

REPEAT

I:=I+1;

begin

x:=tg[i].getx;

y:=tg[i].gety;

AT:=TG[I].DAIAGE;

CTP:=TG[I].DAIZWET;

if (z mod 365)=0 then

BEGIN

at:=at+1; {Happy New Year!}

TG[I].INIT(X,Y,AT,CTP);

END;

if at>v then {Old ?}

begin

tg[i].done;

-11-

tg[i].init(0,0,0,0);

tt:=tt+1;{ }

for j:=i+1 to g do

begin

x1:=tg[j].getx;

y1:=tg[j].gety;

at1:=tg[j].daiage;

ct1:=tg[j].daizwet;

tg[j].done;

tg[j-1].init(x1,y1,at1,ct1);

tg[j-1].show;

end;

TG[G].INIT(0,0,0,0);

G:=G-1;

I:=I-1;

CONTINUE;

end;

x:=tg[i].getx;

y:=tg[i].gety;

x:=x+(random(3)-1);

y:=y+(random(3)-1);

if x<5 then x:=6;if x>635 then x:=634;if y<17 then y:=18;

if y>480 then y:=479;

AT:=TG[I].DAIAGE;

CTP:=TG[I].DAIZWET;

tg[i].done;

IF CT<>0 THEN

BEGIN

tg[i].init(x,y,at,CTP);

tg[i].show;

END;

END;

UNTIL I>=G;

end;

{***********************************************************}

procedure trod;

begin

if (z mod 365)=0 then {Happy New Year!}

begin

t:=0;

for i:=1 to g do

begin

at:=tg[i].daiage;

if (tmin<=at) AND (AT<=tmax) then t:=t+1;

end;

t:=(t div 2);

x:=0;

if t>0 then

begin

FOR I:=1 TO T DO

begin

J:=RANDOM(TP);

x:=x+j;

end;

for y:=g+1 to g+1+x do

begin

-12-

tg[y].init((random(630)+5),(random(462)+18),0,ct);

tg[y].show;

if y>4100 then break;

end;

g:=g+1+x;

if g>4000 then

begin

key:=true;

end;

end

else

begin

end;

end;

end;

{***********************************************************}

procedure hnew;

begin

I:=0;

REPEAT

I:=I+1;

begin

x:=hr[i].getx;

y:=hr[i].gety;

At:=hr[I].DAIAGE;

CTp:=hr[I].DAIZWET;

if (z mod 365)=0 then

BEGIN

at:=at+1; {Happy New Year!}

hr[I].INIT(X,Y,At,CTp);

END;

if at>w then {Old ?}

begin

hr[i].done;

hr[i].init(0,0,0,0);

for j:=i+1 to m do

begin

x1:=hr[j].getx;

y1:=hr[j].gety;

at1:=hr[j].daiage;

ct1:=hr[j].daizwet;

hr[j].done;

hr[j-1].init(x1,y1,at1,ct1);

hr[j-1].show;

end;

hr[m].INIT(0,0,0,0);

m:=m-1;

I:=I-1;

CONTINUE;

end;

x:=hr[i].getx;

y:=hr[i].gety;

x:=x+(random(3)-1);

y:=y+(random(3)-1);

if x<5 then x:=6;if x>635 then x:=634;if y<17 then y:=18;

-13-

if y>480 then y:=479;

AT:=hr[I].DAIAGE;

CTp:=hr[I].DAIZWET;

hr[i].done;

IF CTp<>0 THEN

BEGIN

hr[i].init(x,y,at,CTp);

hr[i].show;

END;

END;

UNTIL I>=m;

end;

{**********************************************************}

procedure hrod;

begin

if (z mod 365)=0 then {Happy New Year!}

begin

t:=0;

for i:=1 to m do

begin

at:=hr[i].daiage;

if (hmin<=at) AND (AT<=hmax) then t:=t+1;

end;

t:=(t div 2);

if t>0 then

begin

x:=0;

FOR I:=1 TO T DO

begin

J:=RANDOM(hP);

x:=x+j;

end;

for y:=m+1 to m+1+x do

begin

hr[y].init((random(630)+5),(random(462)+18),0,ch);

hr[y].show;

end;

m:=m+1+x;

if (m>1000) or (m<=0) then

begin

key:=true;

end;

end;

end;

end;

{***********************************************************}

procedure dead;{ 1 }

begin

for i:=1 to m do

begin

x:=hr[i].getx;

y:=hr[i].gety;

j:=0;

repeat

j:=j+1;

-14-

x1:=tg[j].getx;

y1:=tg[j].gety;

if ((x=x1)and(y=y1))or((x=x1)and(y=y1-1))or((x=x1)

and(y=y1+1))or((x=x1-1)and(y=y1))or((x=x1-1)and(y=y1-1))

or((x=x1-1)and(y=y1+1))or((x=x1+1)and(y=y1))or((x=x1+1)and

(y=y1-1))or((x=x1+1)and(y=y1+1))then

begin

tg[j].done;

tg[j].init(0,0,0,0);

tt:=tt+1;

k:=j;

repeat

k:=k+1;

x1:=tg[k].getx;

y1:=tg[k].gety;

at1:=tg[k].daiage;

ct1:=tg[k].daizwet;

tg[k].done;

tg[k-1].init(x1,y1,at1,ct1);

tg[k-1].show;

until k>=g;

TG[G].INIT(0,0,0,0);

G:=G-1;

j:=j-1;

end

else

begin

end;

until j>=g;

end;

end;

{**********************************************************}

procedure havka;

begin

if ((z mod 365)=0) and (tt>0) then

begin

x1:=(tt div ht);{ }

j:=0;

y1:=w;{max vozrast}

if x1=0 then

begin

for i:=1 to m do

begin

hr[i].init(0,0,0,0);

hr[i].done;

end;

end;

if (x10) then

begin

repeat

j:=j+1;

if hr[j].daiage=y1 then

begin

hr[j].done;

hr[j].init(0,0,0,0);

for i:=j+1 to m do

-15-

begin

x:=hr[i].getx;

y:=hr[i].gety;

at1:=hr[i].daiage;

ct1:=hr[i].daizwet;

hr[i].done;

hr[i-1].init(x,y,at1,ct1);

HR[i-1].show;

end;

hr[m].init(0,0,0,0);

m:=m-1;

if m<=0 then

begin

key:=true;

break;

end;

end;

if j>=m then

begin

j:=0;

y1:=y1-1;

end;

if m<=0 then break;

until x1=m

end;

end;

end;

{***********************************************************}

procedure tmor;{ }

begin

y:=g-x;

if x>0 then

begin

repeat

j:=random(g)+1;

tg[j].done;

tg[j].init(0,0,0,0);

tt:=tt+1;

for i:=j+1 to g do

begin

x1:=tg[i].getx;

y1:=tg[i].gety;

at1:=tg[i].daiage;

ct1:=tg[i].daizwet;

tg[i].done;

tg[i-1].init(x1,y1,at1,ct1);

tg[i-1].show;

end;

tg[g].done;

tg[g].init(0,0,0,0);

g:=g-1;

until y=g;

end;

end;

{***********************************************************}

-16-

procedure hmor;{ }

begin

y:=m-x;

if x>0 then

begin

repeat

j:=random(m)+1;

hr[j].done;

hr[j].init(0,0,0,0);

for i:=j+1 to m do

begin

x1:=hr[i].getx;

y1:=hr[i].gety;

at1:=hr[i].daiage;

ct1:=hr[i].daizwet;

hr[i].done;

hr[i-1].init(x1,y1,at1,ct1);

hr[i-1].show;

end;

hr[m].done;

hr[m].init(0,0,0,0);

m:=m-1;

until m=y;

end;

end;

{***********************************************************}

procedure zasux;{}

begin

tree:=tree - random(round(tree/10));

end;

{***********************************************************}

procedure quit;

begin

window(1,1,80,25);

fon(black);

clrscr;

GOTOXY(1,24);

txt(White);

WRITELN(' --------------------------------------------------

----------------------------');

txt(yellow);

WRITELN(' Antony Sokolov | FidoNet 2:5078/20.4 AKA

2:5078/20.666 AKA 2:5078/22.666');

txt(White);

WRITELN(' --------------------------------------------------

----------------------------');

end;

{***********************************************************}

procedure herb;{}

begin

colorwind(3,20,77,25,black,yellow);

gotoxy(32,1);

writeln(' ');

gotoxy(2,2);write('- 3000.');

write(' . ');gotoxy(2,3);

-17-

write(' - - . ');write(' 1

15');

colorwind(40,10,65,19,black,green);

gotoxy(6,1);

txt(Yellow);

write('');

gotoxy(2,2);

write('-: '); { - }

readln(g);

txt(yellow);

gotoxy(2,3);

write(' : ');{-

}

readln(ttt);

ttt:=ttt/1000;

gotoxy(2,4);

write(': '); {}

readln(tp);

gotoxy(2,5);

write('Min : ');

read(tmin);

gotoxy(2,6);

write('Max : ');

read(tmax);

gotoxy(2,7);

write('Max a: ');

read(v);

gotoxy(2,8);

write(' : ');

read(ct);

colorwind(3,20,77,25,black,black);

end;

{***********************************************************}

procedure beast; {}

begin

colorwind(3,20,77,25,black,yellow);

gotoxy(32,1);

writeln(' ');

gotoxy(2,2);write('- 1000.');

write(' - - . ');gotoxy(2,3);

write(' - - . ');write(' 1

15');

colorwind(40,10,65,19,black,red);

gotoxy(8,1);

txt(Yellow);

write('');

gotoxy(2,2);

txt(yellow);

write('-: ');

readln(m);

gotoxy(2,3);

write(': ');{ - }

readln(ht);

gotoxy(2,4);

write(': ');{}

-18-

readln(hp);

gotoxy(2,5);

write('Min : '); { }

read(hmin);

gotoxy(2,6);

write('Max : '); { }

read(hmax);

gotoxy(2,7);

write('Max : '); { }

read(w);

gotoxy(2,8);

write(' : ');

read(ch);

colorwind(3,20,77,25,black,black);

end;

{***********************************************************}

procedure env ; { }

begin

colorwind(3,20,77,25,black,yellow);

gotoxy(32,1);

writeln(' ');

gotoxy(2,2);write('- 1000.');

write(' .');gotoxy(2,3);

write(': 0 1 - , 2 -.');

gotoxy(2,4);

write(' .

1000');

colorwind(40,10,75,17,black,Magenta);

gotoxy(13,1);

txt(Yellow);

write(' ');

gotoxy(2,2);

txt(yellow);

write('- : ');{-

}

readln(tree);

gotoxy(2,3);

write(' : ');

readln(tr);

gotoxy(2,4);

write(' : ');

readln(kata);

gotoxy(2,5);

write(' : ');

readln(q);

colorwind(3,20,77,25,black,black);

end;

{***********************************************************}

procedure info;

begin

fon(15);

colorwind(1,4,70,16,black,Lightblue);

txt(Green);

gotoxy(2,2);write('-',g,' -',m);

str(ttt:1:2,s);

-19-

gotoxy(2,3);

write(s,' . ',ht,' ');

gotoxy(2,4);

write('Max ',v,', ',w);

gotoxy(2,5);

write(' ',tmin,' ',tmax);

gotoxy(2,6);

write(' ',hmin,' ',hmax);

gotoxy(2,7);

write(' ',tp,', ',hp);

gotoxy(2,8);write(' ',tree,' ');

str(tr:1:2,s);

gotoxy(2,9);write(' ',s,'%');

if (kata=0) or (kata=1) then s:='' else

s:='';

gotoxy(2,10);write(' ',s);

s:=colword(ct);

gotoxy(2,11);write(' ',s);

s:=colword(ch);

write(' ',s);

end;

{***********************************************************}

procedure Gmenu;

begin

fon(black);

clrscr;

colorwind(1,1,80,4,black,darkgray);

txt(14);

gotoxy(5,2);

write(' S');

txt(white);

write('tart ');

txt(yellow);

write('O');

txt(white);

write('ption ');

txt(yellow);

write('Q');

txt(white);

write('uit');

END;

{***********************************************************}

PROCEDURE Omenu;

begin

colorwind(45,3,62,8,black,darkgray);

hiddencursor;

txt(14);

gotoxy(2,2);

write('H');

txt(white);

writeln('erbivorous');

txt(yellow);

gotoxy(2,3);

write('B');

txt(white);

-20-

writeln('east of prey');

txt(yellow);

gotoxy(2,4);

write('E');

txt(white);

write('nvironment');

end;

{***********************************************************}

procedure start;

begin

randomize;

gD := Detect;

InitGraph(gD,gM,'');

setfillpattern(pal,black);

z:=0;{ }

tt:=0; { }

ini;

repeat

key:=false;

z:=z+1;

if ((z mod 365)=0) or ((z mod 365)=31) or ((z mod 365)=59)

or ((z mod 365)=90) or ((z mod 365)=120) or ((z mod

365)=151) or ((z mod 365)=181) or ((z mod 365)=212) or

((z mod 365)=242) or ((z mod 365)=273) or ((z mod

365)=303) or ((z mod 365)=334) then

begin

tree:=round(tree-g*ttt);{ }

tree:=tree+round(tree*(tr/100));{ }

x:=round(tree*ttt);{ }

if tree<=0 then

begin

key:=true;

g:=0;

m:=0;

end

else

begin

if x

begin

repeat

j:=random(g)+1;

tg[j].done;

tg[j].init(0,0,0,0);

tt:=tt+1;

for i:=j+1 to g do

begin

x1:=tg[i].getx;

y1:=tg[i].gety;

at1:=tg[i].daiage;

ct1:=tg[i].daizwet;

tg[i].done;

tg[i-1].init(x1,y1,at1,ct1);

tg[i-1].show;

end;

tg[g].done;

-21-

tg[g].init(0,0,0,0);

g:=g-1;

until x=g

end;

end;

end;

if g>0 then tnew;{ }

if m>0 then

begin

dead;{ }

hnew;{ }

havka;{ }

hrod;{ }

end;

if ((z mod 365)=180)and(g>0)and(m>0) then

begin

if random(kata)<>0 then

begin

x:=random(4);

if x=0 then

begin

x:=random(round(g/50))+5;

moveto(320,240);setcolor(Lightred);str(x,s);

Outtext(' ');

Outtext(s);Outtext(' ');

tmor;

end;

if x=1 then

begin

x:=random(round(m/40))+1;

moveto(320,240);setcolor(Lightred);str(x,s);

Outtext(' ');

Outtext(s);Outtext(' ');

hmor;

end;

if x=2 then

begin

zasux;

moveto(320,240);setcolor(Lightred);

str(tree1,s);Outtext('! ');

Outtext(s);Outtext(' ');

delay(q);

end;

if x=3 then

begin

x:=random(round(g/50))+5;

moveto(0,240);setcolor(Lightred);str(x,s);

Outtext(' ');Outtext(s);Outtext('

, ');

tmor;

x:=random(round(m/40))+1;

str(x,s);Outtext(s);Outtext(' , ');

hmor;

zasux;

str(tree1,s);Outtext(s);Outtext(' ');

-22-

delay(q);

end;

delay(q);

bar(0,240,640,260);

end;

end;

if g>0 then trod;{ }

if g>4000 then break;

if keypressed then key:=true ;

if (g>4000) or (g<=0) or (m<=0) or (m>1000) then

key:=true;

setcolor(white);

bar(0,0,640,17);

moveto(0,0);

outtext('堠 蠠 

');

setcolor(ct);moveto(0,10);str(g,s);outtext(s);

setcolor(ch);moveto(175,10);str(m,s);outtext(s);

setcolor(red);moveto(300,10);str(tt,s);outtext(s);

setcolor(green);moveto(400,10);str((tree),s);outtext(s);

setcolor(magenta);moveto(510,10);str((z div 365),s);

outtext(mes(z));outtext(' ');outtext(s);outtext(' ');

if (z mod 365)=0 then tt:=0;

until key=true;

closegraph;

end;

{***********************************************************}

procedure komenu;

var key:char;

begin

repeat

key:=readkey;

if (key='h') or (key='H') then

begin

herb;

window(40,10,80,25);

fon(black);

clrscr;

info;

omenu;

end;

if (key='B') or (key='b') then

begin

beast;

window(40,10,80,25);

fon(black);

clrscr;

info;

omenu;

end;

if (key='E') or (key='e') then

begin

env;

window(40,10,80,25);

fon(black);

-23-

clrscr;

info;

omenu;

end;

until key=#27;

quit;

CLRSCR;

end;

{***********************************************************}

PROCEDURE GKMENU;

var key2:char;

key1:boolean;

begin

gmenu;

info;

repeat

key2:=readkey;

if (key2='s') or (key2='S') then

begin

if(g>0)and(m>0)and(ttt>0)and(tp>0)and(tmin>0)and(tmax>0)

and(ct>0)and(ht>0)and(hp>0)and(hmin>0)and(hmax>0)and

(Ch>0)and(tree>0)and (tr>0)and(kata>0)then

begin

start; gmenu; info;

key1:=false;

end;

end;

if (key2='o')or(key2='O') then

begin

Omenu; komenu;

GMENU;

info; key1:=false;

end;

if (key2='q') or (key2='Q')or(key2=#27) then

begin

key1:=true; quit;

end;

until key1=true;

end;

{***********************************************************}

{Body program}

begin

g:=1200;{ -}

v:=30;{ }

m:=200;{ -}

w:=25;{ }

ct:=yellow;ch:=red;

tmin:=2;tmax:=28;

hmin:=3;hmax:=24;

tp:=3;hp:=7;{}

kata:=9; ht:=3; ttt:=1; tree:=1300; tr:=15.1;

hiddencursor;

GKMENU;

end.

-24-

2.

Fauna1

{Init object}

unit fauna1;

interface

uses graph;

Type TPosition=object

x,y : integer;

procedure Init(x0,y0 : integer);

function getx : integer;

function gety : integer;

end;

type Tosob=object(TPosition)

color : word;

vidno : boolean;

AGE : INTEGER;

constructor Init(x0,y0,age0:integer;col:word);

destructor Done ; virtual ;

procedure Show ; virtual ;

procedure Blind ; virtual ;

function Daizwet : word;

function VidnoLi : boolean;

FUNCTION DAIAGE : INTEGER;

end;

Posob=^Tosob;

{metod Tposition}

Implementation

Procedure Tposition.Init(x0,y0:integer);

Begin

x:=x0;

y:=y0;

End;

Function Tposition.Getx:integer;

Begin GetX:=x End;

Function Tposition.Gety:integer;

Begin Gety:=y End;

Constructor Tosob.Init(x0,y0,age0:integer;col:word);

Begin

Tposition.Init(x0,y0);

AGE:=AGE0;

color:=col;

vidno:=false;

End;

Destructor Tosob.Done;

Begin

Tosob.blind;

End;

procedure Tosob.Show;

Begin

putpixel(TPosition.GetX, TPosition.GetY,color);

vidno:=True;

End;

procedure Tosob.Blind;

-25-

Begin

putpixel(TPosition.GetX, TPosition.GetY,GetBKColor);

vidno:=False;

End;

Function Tosob.Daizwet : word;

Begin Daizwet:=color End;

Function Tosob.VidnoLi : Boolean;

Begin VidnoLi:=Vidno End;

FUNCTION TOSOB.DAIAGE:INTEGER;

BEGIN DAIAGE:=AGE END;

End.

-26-

3.

Mycrt

unit Mycrt;

interface

uses tpcrt,dos;

procedure fon(x:byte);

procedure txt(col:byte);

procedure ramka(x1,y1,x2,y2:integer);

procedure colorwind(v1,v2,v3,v4,fon,text:byte);

FUNCTION COLWORD(COL:BYTE):STRING;

function mes(z:longint):string;

implementation

{***********************************************************}

function mes;

var col:string;

x:integer;

begin

x:=z mod 365;

if (x>=0)and(x<=30) then col:='';

if (x>=31)and(x<=58) then col:='';

if (x>=59)and(x<=89) then col:='';

if (x>=90)and(x<=119) then col:='';

if (x>=120)and(x<=150) then col:='';

if (x>=151)and(x<=180) then col:='';

if (x>=181)and(x<=211) then col:='';

if (x>=212)and(x<=241) then col:='';

if (x>=242)and(x<=272) then col:='';

if (x>=273)and(x<=303) then col:='';

if (x>=304)and(x<=335) then col:='';

if (x>=336)and(x<=365) then col:='';

mes:=col;

end;

{***********************************************************}

FUNCTION COLWORD;

VAR COLO:STRING;

BEGIN

IF COL=0 THEN COLO:='';

IF COL=1 THEN COLO:='';

IF COL=2 THEN COLO:='';

IF COL=3 THEN COLO:='';

IF COL=4 THEN COLO:='';

IF COL=5 THEN COLO:='';

IF COL=6 THEN COLO:='';

IF COL=7 THEN COLO:='-';

IF COL=8 THEN COLO:='-';

IF COL=9 THEN COLO:='-';

IF COL=10 THEN COLO:='-';

IF COL=11 THEN COLO:='-';

IF COL=12 THEN COLO:='-';

IF COL=13 THEN COLO:='-';

IF COL=14 THEN COLO:='';

-27-

IF COL=15 THEN COLO:='';

COLWORD:=COLO;

END;

{***********************************************************}

procedure fon;

begin

textbackground(x);

end;

{***********************************************************}

procedure txt;

begin

textcolor(col);

end;

{***********************************************************}

procedure ramka; { }

const

a=#186;b=#187;c=#188;d=#200;e=#201;f=#205;

{T}

var i,j:integer;

begin

hiddencursor;

gotoxy(x1,y1);

write(e);

for i:=(x1+1) to (x2-1) do write(f);

write(b);

for i:=(y1+1) to (y2-1) do

begin

gotoxy(x1,i);

write(a);

gotoxy(x2,i);

write(a);

end;

gotoxy(x1,y2);

write(d);

for i:=(x1+1) to (x2-1) do write(f);

write(c);

hiddencursor;

end;

{***********************************************************}

procedure colorwind; { }

begin

window(v1,v2,v3,v4);

textbackground(fon);

clrscr;

textcolor(text);

ramka(1,1,v3-v1,v4-v2);

end;

{***********************************************************}

begin

end.

-28-

4.

.

'fauna.exe',

'egavga.bgi'.

, : 'Start', 'Option', 'Quit'.

's' 'S'.

'q' 'Q'.

'Option' 'O' 'o'. - 'Herbivorous', 'Beast of prey', 'Environment'. 'H' 'h' . 'B' 'b' . 'E' 'e' . , .

'Esc' DOS

.

 

 

 

! , , , .
. , :