JAVA Hamster Simulator, Felder zählen?
Hi,
wir müssen den Java Hamster Simulator so programmieren, dass er alle freien Felder jedes x-beliebige Territorium zählen kann.
Unsere Idee war es den Hamster x-Körner in den Mund zu geben und auf jedes Feld ein Korn zu legen und diese zu zählen. Am Ende soll der Hamster mit dem Schreibbefehl die Körner, die er ausgegeben hat, nennen und somit sind uns die freien Felder bekannt. Leider funktioniert es nicht so wie gedacht und der Hamster gibt uns nur den Wert eins aus obwohl er 96 Felder (8x12 freie Felder) ausgeben müsste.
Hat Jemand eine Idee, wie der Hamster die Felder jedes x-beliebige Territorium zählen kann?
Danke und liebe Grüße
1 Antwort
Leider funktioniert es nicht so wie gedacht (...)
Das ist dann wohl ein Fehler im Algorithmus, den ihr lösen solltet.
Das Lösungskonzept hingegen scheint ok.
Wenn ich davon ausgehe, dass besetzte Felder immer nur durch ein Korn gekennzeichnet sind, dann könnte man auch andersrum vorgehen und die besetzten Felder zählen. Diese werden im Anschluss von der Gesamtanzahl an Feldern subtrahiert. Nachteil bei diesem Lösungsweg wäre, dass die Gesamtanzahl an Feldern bekannt sein müsste.
Ich würde eher vorschlagen, du postest deinen Algorithmus hier / bei pastebin.com. Dann kann ich auch deine Aussage über die int-Deklaration beurteilen.
Zählen ohne Körner legen:
Der Hamster sollte an einem Eckpunkt des Territoriums starten und Reihe für Reihe abgehen. Das heißt, er läuft so lange geradeaus, bis er an eine Kante stößt, dreht sich dann so lange, bis die erste freie Richtung kommt, geht ein Schritt vorwärts, rotiert erneut und läuft wieder vorwärts. Die Drehrichtung muss sich bei jeder Reihe umkehren, damit er nicht im Kreis läuft.
Also sollte es kein Problem sein je ein Korn pro leeres Feld auszugeben und die ausgegebene Anzahl zu zählen. Kennst du denn den allg. Algorithmus zum zählen von Schritten/ausgegebenen Körner etc. ? Höchstwahrscheinlich liegt mein Fehler genau in dieser Int Deklaration, da es keine Summe ausgibt, sondern die eins.
PS: Das Territorium ist komplett leer und hat nur einen Mauerrahmen. Man sollte die freien Felder, in dem Fall 96, zählen können. Die Art und Weise der Zählung ist nicht vorgegeben.
Hast du evtl. auch eine Idee, wie man das ganze Feld ohne Körner zählen kann?
Danke und liebe Grüße