Hamstersimulator
Frage: Hamstersimulator(8 Antworten)
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 |
Antwort von matata | 23.04.2020 - 23:22 |
Es gibt so viele verschiedene Hamsteraufgaben.... ________________________ e-Hausaufgaben.de - Team |
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. |
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 |
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. |
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++; } } |
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. |
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. |
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. |
4 ähnliche Fragen im Forum:
> Du befindest dich hier: Support-Forum - Informatik- Hamstersimulator Programmierung (11 Antworten)
- Hamstersimulator (1 Antworten)
- Hamstersimulator Java (3 Antworten)
- Hamstersimulator Java Script (7 Antworten)
- mehr ...
ÄHNLICHE FRAGEN:
- Hamstersimulator Programmierungalso haben in Info jetzte den Hamstersimulator angefangen und ich hab erstma mit java nen script geschrieben das er sich so das ..
- Hamstersimulatorich soll dem hamster sagen wieviele felder er vorgehen soll. Auf den Feldern wo sich körner befinden soll er alle nehmen und am ..
- Hamstersimulator JavaIch verstehe nicht was falsch mache ? Die Aufgabenstellung : Zuerst lesen wir eine Anzahl von Körnern ein. Danach soll der ..
- Hamstersimulator Java Scriptmoin, ich stehe vor folgendem problem: aufgabe: der benutzer teilt dem hamster mit, wie viele körner er haben möchte. Dieser ..
- mehr ...