Algorytm z petlą warunkową

0

Mam takie zadanie:
Smoczyca wylatuje na max 2 km, jeśli są jaja to na odległość 500 m, jak są młode to na odległość 1 km. Gdy 100 m od gniazda jest drapieżnik to natychmiast wraca i czeka 1 min przed odlotem.
W jaki sposób zrealizować sprawdzanie tej odległości drapieżnika od gniazda i natychmiastowego powrotu? (coś z break, continue czy raczej wrzucić to do while?)
Ma to być algorytm blokowy lub pseudojęzyk.
Mój pomysł:

int drap; //odleglość drapieżnika od gniazda
int max; //maksymalna odleglość na jaką może polecieć

while(1)
{
       while(drap>100)
          {
            if(jaja)
               {max=500;}
            else if(mlode)
               {max=1000;}
            else
               max=2000;
           }
        powrot_do_gniazda();
        wait(60);
}
0

Pytanie czy ktoś (kukułka? :)) podrzuci jej jaja/młode kiedy będzie latać? Bo jeżeli nie to nie ma sensu co chwilę tego sprawdzać a np. w momencie kiedy stan się zmieni (makeDragonBabies() :) ). Nie wiem jak cały algorym wygląda ale mógłbyś mieć listę drapieżników i po prostu okresowo obiekt gniazdo sprawdzałby czy w jego okolicy nie ma jakiegoś drapieżnika -> w takim wypadku powiadomiłby przydzieloną do gniazda smoczycę że musi wrócić. Oczywiście nie jest to piękne logicznie (gniazdo szukające drapieżników?) więc mógłbyś to zadanie przydzielić smoczycy (która podczas lotu co jakiś czas się upewnia czy wokół jej gniazda nie ma wrogów).

1 użytkowników online, w tym zalogowanych: 0, gości: 1