Skip to content

L09.1_OldMacDonaldsFarm

Jirka Dell'Oro-Friedl edited this page Sep 27, 2024 · 11 revisions

Aufgabe

Entwickle eine kleine Farmsimulation! Old MacDonald hat 'ne Farm und auf der Farm hat er viele Tiere. Die Tiere haben alle Namen und sind von unterschiedlicher Art, z.B. Cow, Chicken, Dog, Horse, Pig, Donkey etc., fressen unterschiedliches Futter, z.B. Grass, Grains, Meat, Junk etc. in unterschiedlichen Mengen und machen unterschiedliche Geräusche wie z.B. Moo, Gack, Woof, etc.

Old MacDonald hat auch für die Futtertypen je einen Vorrat, der unterschiedlich groß ist.

Jeden Tag der Simulation singt jedes Tier sein "Old MacDonalds..." Lied mit seinem typischen Geräusch. Das Lied wird, unter einer Überschrift, die den Namen des Tiers trägt, als Text für das Nutzeri sichtbar dargestellt. Zudem frisst es und der verbleibende Vorrat wird angezeigt. Dann ist das nächste Tier dran. Am Ende des Tages hat also jedes Tier gesungen und gefressen und Old MacDonald weiß, ob er für den nächsten Tag nachbestellen muss.

Vorgehensweise

Modelliere die Klasse Animal mit Hilfe eines kleinen Klassendiagramms. Zeichne dann Aktivitätsdiagramme für die einzelnen Methoden. Überlege dann, welche Informationen das Hauptprogramm braucht und wie Du diese strukturieren kannst. Bedenke, dass die Tiere 'tatsächlich' fressen und singen sollen, die Funktionalität dazu also Teil der Klasse ist, das Hauptprogramm soll sie dazu lediglich aufrufen. Es sollen wenigstens fünf Tiere auf der Farm leben. Es darf kein Tier auf die Farm kommen, das keinen Namen hat, nicht weiß was es ist oder frisst oder welches Geräusch es macht.
Es genügt einen Tag zu simulieren.

Prüfung

Um dein Konzept zu überprüfen, tausche es mit dem einer anderen Person im Kurs. Jeder versucht sich an der Implementierung des fremden Konzeptes. Diskutiert die Klarheit und Sinnhaftigkeit eurer Entwürfe und korrigiert die Konzepte entsprechend.

Bonusaufgabe

Lasse mehrere Tage simulieren. Durch Nutzerinteraktion bricht der nächste Tag an und die Tiere singen wieder, die Vorräte werden weiter verbraucht.

Clone this wiki locally