Menu schließen

Hamstersimulator Java

Frage: Hamstersimulator Java
(3 Antworten)


Autor
Beiträge 15
0
Ich verstehe nicht was falsch mache ? Die Aufgabenstellung : Zuerst lesen wir eine Anzahl von Körnern ein. Danach soll der Hamster das Territorium durchlaufen und alle Körner aufnehmen bis die vorgegebene Anzahl erreicht ist. Am Schluss solle er die Anzahl der Felder mit Körnern ausgeben werden!


Mein Quellcode :
void main() {

int koernerNehmen;
int schritte;
koernerNehmen = liesZahl("Sag mir wie viele Koerner ich nehmen soll, die Zahl soll zwischen 0-20 sein!");
for(schritte = 0; schritte < koernerNehmen; schritte ++ ) {
while (vornFrei()) {
while (kornDa()) {
nimm();
koernerNehmen++;
}
vor();
}
}
}
Frage von Hiruu | am 20.12.2015 - 00:19


Autor
Beiträge 74
6
Antwort von Colirbi | 23.12.2015 - 18:04
Falls das noch aktuell ist:

1. Laut deiner Beschreibung soll der Hamster so lange laufen bis er eine Anzahl an Körnern aufgenommen hat. Du liest auch eine Anzahl ein,
aber gehst dann nur so lange bis eine gewisse Anzahl an Schritten erreicht wurde.
-> Generell würde ich bei dem Punkt die For-Schleife ganz entfernen.

2. while(vorneFrei()) -> dein Hamster wird nur einmal geradeaus laufen und dann beenden.

3. while(kornDa()) -> Können mehrere Körner auf einem Feld liegen? Dann wäre das richtig. Falls nicht wäre if statt while besser.


Autor
Beiträge 15
0
Antwort von Hiruu | 23.12.2015 - 19:07
Viele Dank das Sir geantwortet haben.

Das mit dem Zahl einlesen und genau so viele Körner nehmen schaffe ich leider nicht ...

Also es kann auch sein das kein Korn auf dem Feld liegt so müsste dann mein Code so lauten:
If (kornDa()) {
While (kornDa()) {
Nimm ();
}
}

Der Hamster soll auch nur so viele Anzahl von Körner nehmen wie die Person es eingibt und auch noch die Felder zählen weil es ja am ende ausgeben muss Wie viele Felder mit Körner waren.


Autor
Beiträge 74
6
Antwort von Colirbi | 01.01.2016 - 22:18
Auch auf die Gefahr hin, dass die Antwort zu spät kommt.

Aber mal ein paar grundlegende Sachen:

Eine while-Schleife hat bereits eine Abfrage drin (wie beim if). Das was du machst ist also quasi eine sinnfreie Dopplung. Um jetzt nur so viele Körner zu nehmen wie eingegeben wurde kannst du folgendes machen:

int koernerGenommen = 0;

while(kornDa() && koernerNehmen >= koernerGenommen) {
nimm();
koernerGenommen++;
}

Analog dazu kannst du auch die Felder zählen.

Verstoß melden
Hast Du eine eigene Frage an unsere Informatik-Experten?

46 ähnliche Fragen im Forum: 0 passende Dokumente zum Thema:
> Du befindest dich hier: Support-Forum - Informatik
ÄHNLICHE FRAGEN:
  • Hamstersimulator Programmierung
    also haben in Info jetzte den Hamstersimulator angefangen und ich hab erstma mit java nen script geschrieben das er sich so das ..
  • Java / Java editor
    hi, kann jemand mir seiten sagen wo ich java runterladen kann ? ich hab java runtergeladen haben damit kann ich nix machen und ..
  • JAVA
    wo kann ich java für windows vista runterladen und wo find ich den Textpad? lg
  • methoden in java
    kann mir jemand methoden in java erklären ich check das nämlich irgendwie net :// und wir schreiben darüber bald ne klausur ..
  • Java online lernen?
    Kann mir jemand eine gute Webseite empfehlen mit der man einfach und relativ schnell Java lernen kann? :)
  • Java
    Hallo Leute! Ich muss bei Java eine Umfrage programmieren und es muss mir nachher den Durschnitt angeben. Ich dachte an eine ..
  • mehr ...