Hamstersimulator java?
ich weiß nicht wirklich, wie ich das fragen soll. Ich versuche es mal zu erklären. Also wir machen gerade in der Schule in Informatik Hamster Simulator.
Und ein Freund von mir, der sich ein wenig besser auskennt hat geschafft, dass man bei Beispielsweise vor(); , vor(3); schreiben kann und man drei anstelle von einem nach vorne, drei nach vorne geht.
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}
}
dann wenigstens einen Tipp, weil ich nicht weiter komme haha
void main() {
vor(2);
}
for (int i = 0; i <= 10; i = i + 2) {
vor(i);
}
was fehlt hier noch?
Die vor-Funktion fehlt. Du rufst etwas auf, das es noch gar nicht gibt.
vor ist ein vordefinierten Befehl (also vom Hamster Simulator)
Ich hab keine Ahnung vom Hamster Simulator. Kann man die denn nicht bearbeiten?
Denk an ein Backup, bevor Du daran rumwurstelst ;)
Ja warum auch nicht? In der Vor-Funktion wird dann wahrscheinlich irgendwas mit 3 multipliziert oder addiert. Oder was ist jetzt deine Frage?
ich hätte noch eine Frage. Ich habe gesehen, wie er in hamster.properties security=true zu security=false. was bewirkt das?
Also bei mir funktioniert das nicht. Ich glaube man muss irgendwie was extra im code schreiben. Wollte dass mir jemand das erklärt
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 .