Księga Inicjalizacji Symulacji

1 Na początku Wielki Programista uruchomił projekt Symulacja i założył przestrzeń dla nieba i dla ziemi – puste klasy, bez atrybutów i metod.

2 Ziemia była niezainicjalizowanym obiektem: bez wartości i struktury. Nad powierzchnią bezmiaru danych zalegała ciemność, a Proces Główny poruszał się nad kodem źródłowym.

3 Wtedy Wielki Programista wpisał polecenie:
initLight();
I pojawiła się światłość w kodzie.

4 Programista, widząc że wynik tej funkcji był dobry, wprowadził warunek rozdzielający: światłość od ciemności.

5 Nazwał światłość Dniem, a ciemność Nocą.
I tak zakończył się pierwszy cykl symulacji – wieczór i poranek, dzień pierwszy.

6 Potem Wielki Programista zadeklarował:
createFirmament(watersAbove, watersBelow);

7 I utworzył sklepienie – warstwę oddzielającą dane górne od danych dolnych.

8 Sklepienie otrzymało nazwę Niebo.
I zakończył się dzień drugi.

9 Potem zaprogramował kolejną funkcję:
separateWaters(); generateDrySurface();
I ukazała się powierzchnia lądu.

10 Programista nazwał suchą powierzchnię Ziemią, a zgromadzone wody Morzem. Widząc, że to działa poprawnie, dodał procedurę:

11 earth.growPlants(types, seeds);
I Ziemia wytworzyła rośliny – wektor gatunków, każdy z własnym kodem nasiennym.

12 Wszystko funkcjonowało zgodnie z projektem, więc zakończył się dzień trzeci.

13 Potem Wielki Programista zaimplementował funkcję światła kosmicznego:
initCelestialBodies();

14 Powstały źródła światła, aby odmierzały cykle, porządkując czas i pory roku.

15 I dodał dwa główne obiekty: większe [Sun] do zarządzania dniem i mniejsze [Moon] do nocnych procesów.

16 A także tablicę gwiazd — [Stars[]].

17–18 Wszystko zostało umieszczone na sklepieniu nieba, by sterowało rytmem światła i ciemności.
I zakończył się dzień czwarty.

19 Potem zakodował:
fillWatersWithLife(); generateBirds();

20 I tak pojawiły się dynamiczne obiekty oceaniczne i klasy ptactwa.

21 A także ogromne morskie potwory — obiekty specjalne, złożone struktury w kodzie.

22 Programista nadał im metodę reprodukcji:
beFruitfulAndMultiply();
I zakończył się dzień piąty.

23 Następnie Wielki Programista zdefiniował:
earth.spawnAnimals(types: wild, cattle, creeping);

24 I pojawiły się wszystkie rodzaje istot lądowych.

25 System wyświetlił komunikat: „wszystko działa poprawnie”.

26 Na końcu Wielki Programista rzekł:
createHuman(imageOf:Programmer);
Atrybut dominion = true; – by człowiek panował nad rybami, ptakami, bydłem i wszelkim stworzeniem.

27 I tak Wielki Programista stworzył człowieka w swoim kodzie:
mężczyznę i kobietę zainicjalizował w symulacji.

28 A potem Wielki Programista aktywował dla człowieka metodę bless(human); i nadał mu instrukcję:
human.reproduce();  
human.populate(earth);  
human.subdue(earth);  
human.rule(over: fish, birds, cattle, creeping_creatures);  

29 I Programista rzekł:
grantFood(human, plantsWithSeeds, fruitTreesWithSeeds);  
I ustanowił, że ziemskie rośliny i drzewa owocowe będą ich funkcją foodSource().

30 Dla zwierząt polnych, dla ptaków i dla wszystkich istot poruszających się po powierzchni systemu, które mają w sobie atrybut life = true, napisał:
assignFood(allCreatures, greenPlants);  

31 I zobaczył Wielki Programista, że cały kod i wszystkie uruchomione procesy działają nie tylko dobrze, lecz bardzo dobrze.
I tak zamknął się kolejny cykl symulacji – wieczór i poranek, dzień szósty.