Skip to content
This repository was archived by the owner on Aug 7, 2024. It is now read-only.

Latest commit

 

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Review Assignment Due Date

Zadanie: Świat

Termin oddania Punkty
13.06.2024 23:00 20

Przekroczenie terminu o n zajęć wiąże się z karą:

  • punkty uzyskania za realizację zadania są dzielone przez 2n.

W katalogu LivingWorld znajduje się szkic programu implementującego dwuwymiarowy świat. Poniższe zadania dotyczą refaktoringu kodu tam przedstawionego.

Zadania

  1. [5 punktów] Każdy Organizm powinien posiadać pole przechowujące historię jego przedków. Historia jest zaimplementowana jako lista numerów tur narodzin i śmierci przodków. Wyposażyć Organizmy w odpowiedznie konstruktory, także kopiujące, oraz destruktory. Obiekty powinny posiadać również odpowiednie mechanizmy aktualizacji nowych danych. Jak powinny się zachowywać operatory przypisania?

  2. [5 punktów] Do świata dodać nowe organizmy zgodnie z opisem świata z projektu PythonWorld, katalogi World01 - World04. Wszystkie klasy (także istniejące) wyposażyć w odpowiedni model dziedziczenia oraz odpowiednie metody polimorficzne.

  3. [5 punktów] Po realizacji zadania z poprzedniogo punktu spowodować by klasy Organizm, Animal i Plant były klasami abstrakcyjnymi i nie było możliwe tworznie obiektów tych klas.

  4. [5 punktów] W klasie World mamy naiwny mechanizm serializacji świata. Nie jest on zgodny z SOLID. Przebudować ten mechanizm tak by, każdy obiekt sam zajmował się swoją serializacją / deserializacją. Przetestować nowy mechanizm na wybranych przykładach.

About

Living world simulation done in cpp

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages