Entwurf Klassen Snake



  • Hallo!

    Frage zum Entwurf von Snake:
    Angenommen, ich habe eine Klasse Schlange und eine Klasse Futter, sowie eine Klasse Controller.
    Controller enthält 1 Schlange sowie x Futter (z.B. in vector<Futter>).

    Wie sollten die Zuständigkeiten aussehen?
    Soll die Schlange sich selber darum kümmern, zu prüfen ob sie gerade ein Futter erreicht hat, dieses frisst und somit um +1 länger wird? In diesem Fall bräuchte die Schlange eine Referenz auf den vector<Futter> aus der Controller Klasse.

    Oder soll man dies eher so gestalten, dass die gesamte Logik in Controller ist, und Schlange von der Klasse Futter nichts wissen muss?
    In dem Fall würde sowohl Futter als auch Schlange eine Funktion getPosition() implementieren, welche ich in Controller aufrufe, und wenn die Schlange gerade frisst, dann wird von Controller her die Funktion werdeLaenger() der Schlange aufgerufen.

    Ich finde Lösung 2 irgendwie besser weil dadurch Futter und Schlange absolut nichts miteinander zu tun haben, während bei Lösung 1 die Klasse Schlange wissen muss, wie der Aufbau von Futter ist.
    Was meint ihr?
    Oder habt ihr gar eine ganz andere Lösung?



  • Du hast die Klassen Spielfeld, Schlange, Futter. Spielfeld besitzt Schlange und Futter und deren Positionen, die sie selbst ja nicht kennen. Spielfeld überprüft auch ob Schlange über Futter ist. Wenn ja, wird eine Methode friss(Futter) der Schlange aufgerufen, die dann selbst entscheidet wie viel länger sie wird.
    .. Wäre jetzt so das, was ich auf die schnelle machen würde. Aber vielleicht gibt's ja noch schönere Ideen. Insbesondere Integration von Eingaben würde mich interessieren. 🙂


Anmelden zum Antworten