Hamstersimulator java?


01.10.2021, 20:39

also meine Frage ist, wie er es gemacht hat*

3 Antworten

Du kannst dir eine eigene Funktion schreiben.

void vor(int anzahlSchritte) {
  for (int schritte = 0; schritte < anzahlSchritte; ++schritte) {
    vor();
  }
}

// usage example:
void main() {
  vor(5);
}

Diese Funktion erwartet als Parameter die Anzahl an Schritten, die getätigt werden soll. Innerhalb der Funktion wird ein Schleifenkonstrukt kreiert. Dies ist im Prinzip ein Code-Block (= Schleifenkörper), der so oft ausgeführt wird, wie es der Kopf vorgibt.

for (...) // head
{
  // body
}

Der Kopf selbst setzt sich aus drei Angaben zusammen. Im ersten Teil wird eine Variable erstellt. Diese Aktion wird einmal, zu Beginn der Schleife ausgeführt. Der folgende Ausdruck stellt die Bedingung dar, die nach jeder Ausführung des Code-Blocks erneut geprüft wird. Ist sie wahr, kommt es zu einer weiteren Wiederholung des Code-Blocks, ansonsten ist die Schleife beendet. Der letzte Teil ist eine Aktion, die am Ende einer jeden Wiederholung einmal ausgeführt wird.

Konkret wird also eine Variable schritte mit einem Startwert 0 kreiert. Wenn 0 kleiner als die Anzahl auszuführender Schritte ist, wird der Schleifenkörper ausgeführt (also die Funktion vor aufgerufen) und im Anschluss schritte um 1 erhöht. Dann springt der Programmfluss wieder zum Kopf und prüft erneut die Bedingung: Ist 1 kleiner der Anzahl auszuführender Schritte? So geht es weiter und weiter, bis die Bedingung nicht mehr zutrifft.

ich hätte noch eine Frage. Ich habe gesehen, wie er in hamster.properties security=true zu security=false. was bewirkt das?

Für den Hamstersimulator gibt es ein Handbuch. In dem kannst du solche anwendungsspezifischen Fragen nachschlagen.

Befindet sich in der Datei „hamster.properties“ eine Zeile mit dem folgenden Text security=false, wird der so genannte Security-Manager ausgeschaltet. Das bedeutet, Hamster-Programme dürfen auf die Festplatte zugreifen und dürfen Dateien lesen und in Dateien schreiben. Aber Vorsicht, sollten sie diese Option gesetzt haben, empfehle ich Ihnen dringend, keine fremden Hamster-Programme auszuführen. Sind diese bspw. böswillig geschrieben, könnten sie Ihnen prinzipiell die gesamte Festplatte löschen. Standardmäßig steht in der Property-Datei security=true. Durch Setzen der security-Property auf false ist es bspw. möglich, aus Hamster-Programmen heraus Sounds abzuspielen. (...)

Quelle (Abschnitt 5.1.1)

Du kannst in die Klammer Argumente übermitteln.

Durch vor(3) wird die Vorschleife mit dem Argument 3 ausgeführt. Die Funktion selbst müsste ungefähr so aussehen

vor(x){

for-schleife mit x {vorwärts}

}


Tombud 
Fragesteller
 01.10.2021, 20:39

danke^^

0
Tombud 
Fragesteller
 01.10.2021, 21:23

könntest du mir das als code schicken? Ich wollte meinen Kollegen damit überraschen, dass ichs selbst geschafft habe und ich würde es gerne verstehen .

0
FlockeFindet  01.10.2021, 21:24
@Tombud
dass ichs selbst geschafft habe

Aber dann hast Du es ja gar nicht selber geschafft.

0
Tombud 
Fragesteller
 01.10.2021, 21:25
@FlockeFindet

dann wenigstens einen Tipp, weil ich nicht weiter komme haha

0
Tombud 
Fragesteller
 01.10.2021, 21:51
@FlockeFindet

void main() {

vor(2);

}

for (int i = 0; i <= 10; i = i + 2) {

  vor(i);

}
was fehlt hier noch?

0
Tombud 
Fragesteller
 01.10.2021, 21:51
@Tombud

also irgendwie funktioniert das nicht

0
FlockeFindet  01.10.2021, 22:01
@Tombud

Die vor-Funktion fehlt. Du rufst etwas auf, das es noch gar nicht gibt.

0
Tombud 
Fragesteller
 01.10.2021, 22:11
@FlockeFindet

vor ist ein vordefinierten Befehl (also vom Hamster Simulator)

0
FlockeFindet  02.10.2021, 08:35
@Tombud

Ich hab keine Ahnung vom Hamster Simulator. Kann man die denn nicht bearbeiten?

Denk an ein Backup, bevor Du daran rumwurstelst ;)

0

Ja warum auch nicht? In der Vor-Funktion wird dann wahrscheinlich irgendwas mit 3 multipliziert oder addiert. Oder was ist jetzt deine Frage?


Tombud 
Fragesteller
 01.10.2021, 20:38

Also bei mir funktioniert das nicht. Ich glaube man muss irgendwie was extra im code schreiben. Wollte dass mir jemand das erklärt

0
Chris1202  01.10.2021, 20:40
@Tombud

Die andere Antwort beschreibt das auch ganz gut.

0
Tombud 
Fragesteller
 01.10.2021, 20:43

ich hätte noch eine Frage. Ich habe gesehen, wie er in hamster.properties security=true zu security=false. was bewirkt das?

0
Chris1202  01.10.2021, 20:45
@Tombud

Das weiß ich nicht, weil ich das Programm, bzw. den Code nicht kenne. (Java eigentlich auch nicht, aber in anderen Sprachen werden Funktionen ja ähnlich deklariert). Da fragst du besser deinen Freund.

0