A więc, pytanie to wymaga od nas utworzenia gniazda w środku świata z 9 obszarami żerowania Stworzymy teraz gniazdo w kolorze pomarańczowym Więc, przejdźmy do kodu Najpierw dodamy nową zmienną 'turtle' Więc w pierwszej linii kodu, w której mamy 'turtles own', wpiszmy 'return to nest?' (powrót do gniazda) znak zapytania Po czym stworzymy nową zmienną obszaru (patch) Wpiszmy tu 'patches-own' nawias [nest?] znak zapytania i zamknąć nawias Teraz musimy dodać kilka linii w procedurze Setup więc w poleceniu 'ask turtles' zróbmy ustawienie 'return to nest?' (powrót do gniazda) na "fałsz" Jeśli tego nie zrobimy, Netlogo ustali nową zmienną na 'prawdę' jako wartość domyślną Teraz dodamy nową linię która stanie się nową procedurą którą nazwiemy 'set-up nest' (załóż gniazdo) Teraz, aby dodać nową procedurę zacznijmy od 'to set-up nest' i dodajmy 'ask patches' To wprowadza nas w kontekst obszarów (patch) by ustawić zmienną 'nest' na wartość 'prawda' gdy tylko obszar znajdzie się w odległości 2 jednostek od źródła Aby to zapisać użyjemy odległości bazowej 'distance 0 0' w nawiasach okrągłych, <2 jeżeli obszar (patch) spełni te kryteria jeśli 'nest' ma wartość 'prawda' ustawmy pcolor na pomarańczowy Zawsze kończymy procedurę wyrażeniem 'end' Sprawdźmy teraz, czy wszystko jest ok Wygląda na to, że zapomniałem zamknąć nawias dodajmy go teraz chyba jest dobrze Wróćmy do interfejsu i wybierzmy Setup Widzimy, że trudno stwierdzić, czy mamy tutaj 9 obszarów, ale założę, że tak jest Mamy tu pomarańczowe gniazdo w środku świata Następnie proszeni jesteśmy o napisanie części kodu który spowoduje, że mrówki wrócą do gniazda po zjedzeniu pokarmu zanim ponownie wyruszą na poszukiwanie pożywienia Jest wiele sposobów, jakimi możemy to zrobić Sposób, w który ja to zrobię jest następujący: Po pierwsze, chciałbym nieco uprościć procedurę 'to go' więc stworzę nową procedurę którą nazwę 'look for food' (szukaj pokarmu) Wytnę teraz tę sekcję napiszę nową linię procedury i wkleję ją A teraz powrócę do procedury 'go' po czym wstawię 'ifelse return-to-nest? is 'false' wtedy będziemy szukać pokarmu, 'look-for-food' i konsekwentnie 'ifelse return-to-nest?' jest prawdą wtedy wrócimy do gniazda '[return-to-nest]' Jeszcze nie napisaliśmy procedury return-to-nest. Zrobimy to w następnej kolejności Zanim to uczynimy, dobrze jest sprawdzić kod, by zobaczyć czy dotychczas nie zrobiliśmy błędów Wcisnę teraz Check Widzimy, że nie napisaliśmy procedury 'return-to nest' Zauważyłem również, że zapomniałem o znaku równości po tej linii, więc dopiszę go Napiszemy procedurę 'return-to-nest' W tym celu napiszemy po prostu 'face patch 0 0' (zwróć się do obszaru 0 0) który jest źródłowy i idź w jego kierunku; to skieruje każdą mrówkę dla której zmienna 'return-to-nest' jest prawdziwa w kierunku źródła i spowoduje krok w tym kierunku, następnie chcemy nakazać jej wyruszyć na żerowanie ponownie jeśli jest w gnieździe więc jeśli pcolor jest pomarańczowy, co oznacza że mrówka wróciła do domu ustawimy wartość 'return-to-nest' na 'fałsz' ponieważ ona już tam jest nawias zamykający Dotychczas nie mamy żadnych mrówek z wartością 'return-to-nest' będącą 'prawdą' więc, oczywiście musimy to zrobić Po tym jak zjadły one swój pokarm ustawmy 'return-to-nest' na 'prawdę' Sprawdzę ten kod, wygląda dobrze Wracamy do interfejsu. Kliknijmy Setup I potem Go Jest tu sporo mrówek trudno stwierdzić, co one robią Zmniejszmy ich liczbę i spróbujmy raz jeszcze Zwolnijmy to wszystko trochę Możecie dostrzec, że mrówki zachowują się tak, jak powinny jedzą pokarm, wracają do gniazda zanim znów z niego wyruszą Możemy zmienić kolor z powrotem na czerwony by było to bardziej oczywiste ale wstrzymajmy się z tym do następnego razu