Cześć. Ćwiczę sobie obiektowość na nieskomplikowanej grze RPG. W klasie gracza ekwipunek rozwiązałem za pomocą listy, obiekt tworzę na zewnątrz dzięki czemu mogę go przemieszczać między sklepem bądź innymi postaciami. Natrafiłem jednak na pewien problem.
Tworzę klase Potwór. W założeniu z potwora możliwe jest dropnięcie jakiegoś miecza czy zbroi. Zastanawiam się jak to rozwiązać. Pomyślałem, aby Potwór miał ekwipunek. Funkcja losowałaby z niego jeden przedmiot, a resztę usuwała. Wyodrębniłem na to trzy sposoby:
- Tworzyć obiekt podczas dodawania do listy. Niestety, takiego obiektu chyba nie da się wyodrębnić i przypisać do innej listy.
- Tworzyć obiekt w konstruktorze, a do listy przekazać wskaźnik na niego (wiem, że w C# nie ma wskaźników, ale nie wiem jak to nazwać). Niestety, po zakończeniu konstruktora obiekt byłby usuwany i nie możliwe byłoby odwołanie się do niego z poziomu main'a.
- Tworzyć obiekt w mainie, a konstruktorowi tylko go przekazywać. Przy założeniu, że będzie istnieć 5 przedmiotów funkcja wymagałaby 5 argumentów.. Poza tym tworzenie obiektów w mainie byłoby raczej niewygodne i nie sprawdziłoby się.
Niestety, żaden z moich 'sposobów' nie daje rady. Ma ktoś jakiś lepszy pomysł?
PS Jeśli jakaś informacja napisana przeze mnie nie jest prawdziwa, proszę o uświadomienie.