Menu schließen

Hamstersimulator Programmierung

Frage: Hamstersimulator Programmierung
(11 Antworten)


Autor
Beiträge 0
13
also haben in Info jetzte den Hamstersimulator angefangen und ich hab erstma mit java nen script geschrieben das er sich so das er sich immer bewegt, PROBLEM: Manchmal bleibt er stecken dh bewegt sich immer nur zwischen mehreren feldern immer hin und her , der selbe weg immer wieder.. was muss ich ändern?

hier mein script:
void main() {
a();
}

void a()
{
if(!vornFrei()){linksUm();b();}
if(vornFrei()){vor();b();}
}

void b()
{if(!vornFrei()){linksUm();linksUm();c();}
if(vornFrei()){vor();c();}

}

void c()
{
if(!vornFrei()){linksUm();linksUm();linksUm();a();}
if(vornFrei()){vor();a();}
}
Frage von tetris5000 (ehem. Mitglied) | am 14.01.2010 - 16:07


Autor
Beiträge 0
13
Antwort von nolle (ehem. Mitglied) | 14.01.2010 - 16:08
oh man mit dem haben wir in der schule mal gearbeitet :D

ich fand das total lustig xD
am pc selber war ich sehr gut nur das, was du verlangst, der theoretische teil war nix für mich sry :D


Autor
Beiträge 613
6
Antwort von Franky1971 | 14.01.2010 - 16:26
... vorweg: ich habe keine Ahnung von Java.

was Du machst ist folgendes: Du rufst aus main die Funktion a auf. Aus Funktion a die Funktion b, aus Funktion b die Funktion c und dann aus c wieder die Funktion a --> vorab: wenn Du mit einem Micro-Controller arbeiten würdest, dann würde Dir in kürzester Zeit der Stack voll-laufen.

und warum schreibst Du nicht:

void a()
{
...if(!vornFrei())
...{
......linksUm();b();
...}else
...{
......vor();b();
...}
}

... nur eine Frage ... damit ich den Grund verstehe


Autor
Beiträge 0
13
Antwort von tetris5000 (ehem. Mitglied) | 14.01.2010 - 16:39
ja geht auch , dis mir eig egal geht auch kommt aufs selbe raus (oder ?) , aber warum der manchmal stecken bleibt is mir nen rätsel ^^

gibts keine wirkliche lösung für ? ich kann ja auch ma nen screen posten..


Autor
Beiträge 613
6
Antwort von Franky1971 | 14.01.2010 - 16:55
... ich hätt einen anderen Vorschlag (evt. funktioniert das nicht auf anhieb, denn es ist nicht getestet)

void main() {
...while(true)
...{
......while( vornFrei() )
......{
.........vor()
......}

......linksUm()
...}
}


Autor
Beiträge 0
13
Antwort von tetris5000 (ehem. Mitglied) | 14.01.2010 - 17:08
http://i49.tinypic.com/dc9emt.jpg
http://i48.tinypic.com/23kuhc7.jpg

und das immer und immer wieder ^^


Autor
Beiträge 613
6
Antwort von Franky1971 | 14.01.2010 - 17:13
Anpassungen:

void main() {
...while(true)
...{
......if(kornDa())
......{
.........nimm()
......}

......while( vornFrei() )
......{
.........vor()
......}

......linksUm()
...}
}


Autor
Beiträge 613
6
Antwort von Franky1971 | 14.01.2010 - 17:18
... die Frage stellt sich noch: was gibt die Funktion vornFrei() zurück, wenn ein Korn da ist? ... je nachdem musst Du nochmals anpassen, denn dann musst Du erst das Korn nehmen und dann nochmals die Funktion vornFrei() aufrufen ...


Autor
Beiträge 613
6
Antwort von Franky1971 | 14.01.2010 - 17:51
eventuell ist dies besser:

void main() {
...while(true)
...{
......while( vornFrei() )
......{
.........vor();

.........if(kornDa())
.........{
............nimm();
.........}
......} // Schleife wird verlassen, wenn eine Wand da ist

......linksUm(); // um 90° drehen
...}
}


Autor
Beiträge 613
6
Antwort von Franky1971 | 14.01.2010 - 17:57
Zitat:
void main() {
...while(true)
...{
......while( vornFrei() )
......{
.........vor();

.........if(kornDa())
.........{
............nimm();
.........}
......} // Schleife wird verlassen, wenn eine Wand da ist

......linksUm(); // um 90° drehen
...}
}

... diese Schleife hat jedoch ein Problem, wenn vornFrei()== false ist und dies durch ein Korn verursacht wurde. In dem Fall würde der Hamster nämlich drehen anstatt das Korn nehmen ... aber irgendetwas musst Du ja auch noch machen


Autor
Beiträge 0
13
Antwort von tetris5000 (ehem. Mitglied) | 19.01.2010 - 17:14
ich kriegs nich bebacken , kann irgendwer mir das was franky geschrieben hat oben in mein scipt reinkopiern? xD


Autor
Beiträge 613
6
Antwort von Franky1971 | 19.01.2010 - 21:26
kopier das rein, was ich geschrieben habe - natürlich ohne Punkte - die habe ich nur zwecks Übersichtlichkeit geschrieben

... aber das Programm ist nicht fertig entwickelt ... da mußt Du schon noch was machen ... Du mußt Dir z.B. den Weg merken, sonst läufst Du nur hin und her

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

> Du befindest dich hier: Support-Forum - Informatik
ÄHNLICHE FRAGEN:
  • Java-Programmierung: InTe-Technik - Was bedeutet GUI ?
    hallo an euch, nun habe ich morgen InTe-Prüfung(InfortationsTechnik),und wollte wissen was GUI bei Java programmierung bedeutet ..
  • 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
    Hallo, Der Hamster soll in einem bieliebig Großem Territorium mit beliebigen Hindernisse genau 10 Körner sammeln. Ich habe es..
  • Java Programmierung
    Hallo, kann mir vielleicht jemand ganz einfach erklären, wann ich die if else-,for-, while-, do-while-Schleife und wann man den..
  • 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 ...
BELIEBTE DOWNLOADS:
  • Programmierung in C++
    Diese Facharbeit beschäftigt sich mit der Programmierung in der Programmiersprache C++. Behandelte Themen: Grundlagen, ..
  • Algorithmen
    - Beschreibung von Algorithmen - Eigenschaften von Algorithmen (Determinismus,Ausführbarkeit, Allgemeingültigkeit, ..
  • Drehzahlregelung mit Atmel Atmega 8
    Entwicklung einer Drehzahlsteuerung mit einem ATMEGA 8. Mit Programmierung in C.
  • Teilerprogramm in Delphi
    Einfaches Teilerprogramm in Delphi, die exe durfte ich elider nicht uppen - Virengefahr
  • Tutorial: Programmieren in LOGO
    Die Datei im EXCEL-Format gibt eine gute Einführung in das Programm MSWLogo mit Befehlsübersicht, Beispielen und Übungsaufgaben.
  • mehr ...