void H::CheckBirthPlants(CDC *DC1, plant *pl, int x, int y, int modbool, int cntcall) { int nn = 1+rand() % 20; int mm = 1+rand() % 20; if (plcnt>=1) { for (int ip=0; ip21) x=1; if (y<1) y=21; if (y>21) y=1; modbool=1; } } } if (modbool==1) { cntcall++; // cntcall - это кол-во попыток случайным образом попасть // в пустое место на поле. Можно и больше, главное нужно ограничить. // иначе же получается бесконечный цикл. if (cntcall>21 && cntcall<400) { CheckBirthPlants(DC1, pl, nn, mm, 0, cntcall); } else if (cntcall<400) { CheckBirthPlants(DC1, pl, x, y, 0, cntcall); } } else { AddPlant(pl, x, y); EllipseDC(DC1, x, y); } }