Risolvi questo problema aggiungendo una nuova classe e evitando di buttare troppi modelli di progettazione in cui non sono realmente veri nel dominio.
Per le piante, c'è una quantità di nuovi vapori, vapori fioriti e vapori fruttiferi. Ha anche un punto 2D per la sua posizione. Questa è una proprietà con un solo ottenimento visto che le piante non si muovono veramente. Lo stesso con quantità di fiori per vapore, frutta per vapore e quantità di semi per frutto. Un metodo che passa il tempo aggiornerebbe lo stato di quelle variabili. Metti metodi per provare a mangiare frutta e cerca di impollinare. Possono essere per prendere parametri per quantità di frutta da mangiare e quantità di fiori per impollinare rispettivamente.
Per la classe degli erbivori, falla avere un metodo interattivo che prende una pianta. L'impianto è un parametro out ed è un metodo astratto. L'erbivoro ha un punto e un metodo di spostamento che prende un rettangolo come la dimensione dell'abitudine. Ha un metodo booleano per cui at prende un punto e controlla se il suo punto ha lo stesso valore del parametro.
Vorrei aggiungere una classe di habitat. La classe ha una lista di piante e un elenco di erbivori. Ha anche un rettangolo per i suoi limiti. Ha un metodo di aggiornamento. Questo chiama il tempo passa il metodo per la pianta. Quindi sposta gli erbivori. Infine, il metodo controlla le collisioni e chiama il metodo interattivo degli erbivori.