Informatik Hamstersimulator?
Hallo, kann mir jemand bei der Aufgabe helfen und einen Quellcode für folgendes Geschehen erstellen? LG
![](https://images.gutefrage.net/media/user/Hemo20/1713114731394_nmmslarge__149_0_276_276_522ab717587e26b3fc620d885149516d.jpg?v=1713114731000)
Welche Sprache?
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
Glaube Python, aber denke, dass es nicht so ein komplexer Quellcode sein kann.
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
Wie lautet die Aufgabe?
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
Dafür einen Quellcode zu erstellen
4 Antworten
![](https://images.gutefrage.net/media/user/Hemo20/1713114731394_nmmslarge__149_0_276_276_522ab717587e26b3fc620d885149516d.jpg?v=1713114731000)
Hier eine Python Lösung! Von ChatGTP Ohne Ui
Dieses Skript definiert eine Funktion namens verteile_koerner, die die Körner gleichmäßig auf die Ecken des Territoriums verteilt und die übrig gebliebenen Körner im mittleren Feld ablegt. Du kannst die Startposition des Hamsters sowie die Anzahl der Körner im Maul des Hamsters ändern und die Funktion aufrufen, um das Ergebnis zu erhalten.
![- (Informatik, Quellcode)](https://images.gutefrage.net/media/fragen-antworten/bilder/541607031/0_big.jpg?v=1713117416000)
![](https://images.gutefrage.net/media/user/daCypher/1444744777_nmmslarge.jpg?v=1444744777000)
Der Code ist Quatsch. ChatGTP scheint nicht zu wissen, was der Hamstersimulator ist und wie er bedient wird. Schon alleine die erste Anweisung "anzahl_ecken = len(territorium)" macht keinen Sinn, weil das Territorium immer vier Ecken hat und ein zweidimensionales Array ist.
![](https://images.gutefrage.net/media/user/daCypher/1444744777_nmmslarge.jpg?v=1444744777000)
Ich denke mal, ihr habt so die grundlegende Bedienung in der Schule beigebracht gekriegt, oder? Also die Befehle vor(), linksUm() und gib() und auch Verzweigungen, wie if maulLeer():
Falls das Territorium immer 3x3 Felder groß ist, kannst du es einfach manuell ablaufen:
# Die Funktion getAnzahlKoerner() lässt sich nicht mit dem einfachen
# imperativen Hamster aufrufen, deshalb nehmen wir hier das Hamster-Objekt.
# Alternativ könnte man auch zählen, wie viele Körner man mit gib() hinlegen
# kann, bis maulLeer() wahr wird.
koerner_pro_ecke = int(Hamster.getStandardHamster().getAnzahlKoerner() / 4)
# Hamster einmal nach rechts drehen,
# damit man später immer Linkskurven laufen kann
linksUm()
linksUm()
linksUm()
# Körner auf die vier Ecken verteilen
for ecke in range(4):
vor()
vor()
linksUm()
for korn in range(koerner_pro_ecke):
gib()
# In die Mitte laufen und restliche Körner hinlegen
vor()
linksUm()
vor()
while not maulLeer():
gib()
![](https://images.gutefrage.net/media/user/cleanercode/1712487595293_nmmslarge__371_572_1203_1203_4eb87b925752e760436e518e01bae5c3.jpg?v=1712487595000)
numpy importieren, einen multidimensionalen Array erstellen und die Ecken entsprechend als nicht belegt markieren.
Könnte etwa so aussehen:
import numpy
spielfeld = numpy.array([
['', 'X', ''],
['X', 'M', 'X'],
['', 'X', '']
])
M ist die Mitte.
Die freien Felder die Ablagemöglichkeiten.
Über diesen Array musst du iterieren und die leeren Felder suchen.
Nochmal iterieren und prüfen, ob alle Ecken belegt sind. Falls ja, die Mitte mit den übrigen Körnern belegen.
Für die Körner brauchst du selbstverständlich eine Variable vom Typen int. Der Wert sollte größer als 4 betragen.
koerner: int = 6
Naja, auf den Rest der Lösung kommst du :)
Ich glaube an dich!
=====================================
Nachtrag: so viel zum Simulator.
![- (Informatik, Quellcode)](https://images.gutefrage.net/media/fragen-antworten/bilder/541611696/0_big.jpg?v=1713120294000)
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
Es tut mir leid, von vielen Begriffen die verwendet wurden, habe ich noch nie gehört :(
![](https://images.gutefrage.net/media/user/cleanercode/1712487595293_nmmslarge__371_572_1203_1203_4eb87b925752e760436e518e01bae5c3.jpg?v=1712487595000)
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
Also nicht besonders hohes, ich bin Klasse 10 und wir haben erst vor 1-2 Stunden damit angefangen, uns mit dem Hamstersimulator zu beschäftigen.
![](https://images.gutefrage.net/media/user/cleanercode/1712487595293_nmmslarge__371_572_1203_1203_4eb87b925752e760436e518e01bae5c3.jpg?v=1712487595000)
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/user/cleanercode/1712487595293_nmmslarge__371_572_1203_1203_4eb87b925752e760436e518e01bae5c3.jpg?v=1712487595000)
Na, das hättest du uns mitteilen müssen :D
Das ist ein Simulator. Die Befehle zum Laufen und Ablegen befinden sich bereits im System. So viel Programmieren musst du nicht.
Du musst nur die vorhandenen Befehle finden und damit ist die Aufgabe erledigt.
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
Ja, ich bin leider nicht in der Lage, den passenden Code dafür zu erstellen.
![](https://images.gutefrage.net/media/user/cleanercode/1712487595293_nmmslarge__371_572_1203_1203_4eb87b925752e760436e518e01bae5c3.jpg?v=1712487595000)
Habe meine Antwort aktualisiert und dir die Befehle aus der Doku hingeklatscht.
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
Ich weiß jetzt aber leider nicht, was die ganzen Befehle bewirken :( ich verstehe wirklich wenig von diesem kram.
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
Die Aufgabe ist so überhaupt nicht definiert, schon gar nicht im Zusammenhang mit Informatik. Außerdem ist "soll" das Gegenteil von "muss" (bitte merken). Bitte zeige mal die vollständige Aufgabe.
Es sieht gut aus, aber ich kann nicht glauben, dass der so lang sein muss oder?