296             ___________________________ 10. 

sums(w, sum) ;

if (sum[FOX] > 5)         //   !

return (new empty(row, column));

else if (age > DFOX)      // 

return (new empty(row, column));

else

return (new fox(row, column, age + 1));

      :

//   
living* empty::next(world w)
{

int sum[STATES] ;

sums(w, sum) ;

if (sum[FOX] > 1)

return (new fox(row, column));

else if (sum[RABBIT] > 1)

return (new rabbit(row, column)) ;

else if (sum[GRASS])

return (new grass(row, column));

else

return (new empty(row, column));

J"

    next ()   (  ) -
 . ,     ,  -
   ,    ,  -
     .

  world     .  
   .       
1 iving,      :

//:  
void init(world w)
{

int i , j ;

for (i = 0; i < N; ++i)
for (j = 0; j < N; ++j)

w[i][j] = new empty(i,j) ;

//  w_new    w_old

void update(world w_new, world w_old)

{

int i , j ;

for (i = 1; i < N - 1; ++i) //  