Einzelnen Beitrag anzeigen

moritzm123

Registriert seit: 5. Sep 2016
1 Beiträge
 
#1

Elegantere Lösung um in dieser Struktur eine zirkuläre referenz zu umgehen?

  Alt 16. Sep 2016, 14:09
Hallo,

zunächst ein Funfact: Wenn man in der Delphi Praxis Snake sucht, bekommt man 8 Seiten Suchergebnisse

Ich habe folgende simple Klassenstruktur:

Die Form hat eine Instanz von TFood, nennen wir sie "Food"
Die Form hat eine Instanz von TSnake, nennen wir sie "Snake"

Nun gibt es das Problem dass ich nicht weiß wo ich die Kollisionsabfrage prüfen soll da:
TFood nicht über die Informationen der Instanz Snake hat.
TSnake nicht die Informationen der Instanz Food hat.
TForm hat eigentlich nicht die Aufgabe hat auf Kollisionen zu prüfen. Sie soll ja eigentlich nur Nutzereingaben erhalten und Ausgaben tätigen.

Ich hatte jetzt vor eine Klasse TSpielfeld zu erstellen um die Kollision auszulagern. Dieses Spielfeld hätte jetzt die Instanz Food und Snake.
Das Problem ist ja, die Kollision soll nur stattfinden wenn sich die Schlange bewegt. Dieses Problem wollte ich mithilfe eines TNotifyEvents in TSnake lösen.
Dieses Event würde immer dann feuern, wenn sich die Schlange bewegt, so könnte ich dann die Kollision in TSpielfeld starten.


Meine Frage ist: Hat jemand eine elegantere Lösung, oder ist diese Lösung so in Ordnung?
  Mit Zitat antworten Zitat