Menu schließen

Hamstersimulator

Frage: Hamstersimulator
(8 Antworten)


Autor
Beiträge 4
0
Hallo, Der Hamster soll in einem bieliebig Großem Territorium mit beliebigen Hindernisse genau 10 Körner sammeln.


Ich habe es geschafft mit Hilfe von Zufallszahl, dass er sich zufällig bewegt und dabei alle Körner sammelt, die er findet, allerdings bekomme nicht hin dass er nach 10 Körner Semmeln aufhört.

Für Hilfe würde ich mich freuen und dankbar sein.

Viele Grüße
Frage von Qassim | am 23.04.2020 - 21:10


Autor
Beiträge 40282
2103
Antwort von matata | 23.04.2020 - 23:22
Es gibt so viele verschiedene Hamsteraufgaben....
Schreib den genauen Text ins nächste Antwortfeld. Gibt es ein Bild vom Territorium? Dann brauchen wir das auch um dir zu helfen.
________________________
 e-Hausaufgaben.de - Team


Autor
Beiträge 74
6
Antwort von Colirbi | 23.04.2020 - 23:42
Du hast doch sicher eine Funktion, die dir sagt wenn der Hamster über einem korn ist und du rufst dann sammleKorn oder ähnliches auf. Dann Bau einfach noch einen Zähler ein und wenn du 10 erreichst ist Schluss.


Autor
Beiträge 4
0
Antwort von Qassim | 24.04.2020 - 23:41
Die große Des Territoriums und auch die Hindernisse sind (unbekannt ). Nur die Körner müssen erreichbar und nicht in einem geschlossenen Ort sein.

Deswegen habe ich Zufallszahl benutzt, damit mein Hamster sich zufällig bewegt.

Wäre gut von einer mir sagt wie ich einen Zähler mit Zufallszahl kombinieren kann.

Oder auch nur einfach wie ein Zähler zum Körner sammeln aussieht.

Danke


Autor
Beiträge 74
6
Antwort von Colirbi | 25.04.2020 - 16:24
Dafür müsste ich wissen welche funktionen der hamster denn hat.
Wie bewegst du den hamster, welche funktionen rufst du dafür auf. Was machst du damit der hamster körner sammelt.

Eventuell schreibst du einfach mal das programm hier rein, dann kann ich auch helfen.


Autor
Beiträge 4
0
Antwort von Qassim | 25.04.2020 - 16:44
Hamster Grundfunktionen sind: vor, linksUm, nimm, gib, vornFrei, kornDa, und maulLeer.

Das Problem mein Hamster hört nicht auf, wenn er 10 Körner aufgesammelt hat.

Hier ist mein Code.

void main()
{
int körner;
körner = 0;

int maxZahl = 10;

while(körner<10)
{

for( int i =0; i< Math.random() * maxZahl + 1; i++)
{
zufälligBewegung();
}
rechtsUm();
}

}

void rechtsUm()
{
linksUm();
linksUm();
linksUm();
}

void zufälligBewegung()
{
if(vornFrei())
{
sammeln10();
vor();
}
else
{
sammeln10();
rechtsUm();
}
}

void sammeln10()
{
int körner;
körner = 0;

while(kornDa())
{
nimm();
körner++;
}
}


Autor
Beiträge 74
6
Antwort von Colirbi | 25.04.2020 - 17:23
Also erstmal brauchst du die zufallszahl nicht, deine Schleife läuft doch schon so lange bis du 10 Körner hast.

Die For Loop kannst du also weglassen.
Dann reicht es, wenn du zufälligeBewegung ausführst. und danach nicht noch rechtsUm ausführst, da Rechtsum schon in Zufällige Bewegung ist.

Zufällige Bewegung würde ich effektiver schreiben:

void zufälligBewegung()
{
sammeln10();
if(vornFrei())
{
vor();
}
else
{
rechtsUm();
}
}

Kommt aufs gleiche raus, ist aber besser lesbar und effektiver.
Du hast bereits in Main einen Zähler für Körner, kannst das aber nur in sammeln wirklich nutzen, also solltest du übergabeparameter für die Funktionen nutzen.

Du gibst aus der Main die aktuelle Anzahl der Körner weiter an zufällige Bewegung und von da dann weiter an sammeln. In Sammeln addierst du die aktuelle Anzahl der Körner + neue Körner, falls du hier 10 erreichst machst du ein Return der neuen Anzahl der Körner.
In Zufällige Bewegung gibst du auch den Rückgabewert von sammeln am Ende der Funktion zurück.
In Main hast du dann aus Zufällige Bewegung die neue Anzahl Körner als Rückgabewert und kannst sie als neue Anzahl der Körner setzen.


Autor
Beiträge 4
0
Antwort von Qassim | 25.04.2020 - 18:32
erstmal danke für die Tipps, aber ohne Zufallszahl würde nicht funktionieren und der hamster wird sich in einem Kreis Bewegen, weil der Hamster fragt wenn vorne Frei ist geht er vor und wenn nicht dann rechtsUm also wiederholt sich den gleichen Weg.


Autor
Beiträge 74
6
Antwort von Colirbi | 25.04.2020 - 20:54
Ok, stimmt das hatte ich eben übersehen :). Trotzdem musst du die Anzahl der Körner an die einzelnen Funktionen übergeben. Schau dir mal am besten an was sogenannte scopes bei Variablen sind.

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

4 ä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 ..
  • Hamstersimulator
    ich soll dem hamster sagen wieviele felder er vorgehen soll. Auf den Feldern wo sich körner befinden soll er alle nehmen und am ..
  • Hamstersimulator Java
    Ich verstehe nicht was falsch mache ? Die Aufgabenstellung : Zuerst lesen wir eine Anzahl von Körnern ein. Danach soll der ..
  • Hamstersimulator Java Script
    moin, ich stehe vor folgendem problem: aufgabe: der benutzer teilt dem hamster mit, wie viele körner er haben möchte. Dieser ..
  • mehr ...