Informatik Hamstersimulator?

Hemo20  14.04.2024, 19:46

Welche Sprache?

Mark113 
Beitragsersteller
 14.04.2024, 19:57

Glaube Python, aber denke, dass es nicht so ein komplexer Quellcode sein kann.

wunschname0302  14.04.2024, 19:47

Wie lautet die Aufgabe?

Mark113 
Beitragsersteller
 14.04.2024, 19:56

Dafür einen Quellcode zu erstellen

4 Antworten

Hier eine Python Lösung! Von ChatGTP Ohne Ui

Bild zum Beitrag

  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.

Woher ich das weiß:Hobby – Ich Code in meiner Freizeit viel(Python und C#)
 - (Informatik, Quellcode)

daCypher  15.04.2024, 11:02

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.

0
Mark113 
Beitragsersteller
 14.04.2024, 19:59

Es sieht gut aus, aber ich kann nicht glauben, dass der so lang sein muss oder?

0
Mark113 
Beitragsersteller
 14.04.2024, 20:00
@Hemo20

Klasse 10, sind erst vor kurzem mit dem Hamstersimulator eingestiegen.

0
Hemo20  14.04.2024, 20:03
@Mark113

Mit Py oder Java?

was habt ihr den schon gemacht?

0
Mark113 
Beitragsersteller
 14.04.2024, 22:23
@Hemo20

Kannst du mir nun helfen?

0
Hemo20  15.04.2024, 07:58
@Mark113

Dann frage den Lehrer du hast dich damit beschäftigt das ist das wichtigste

0

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()

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.

Bild zum Beitrag

 - (Informatik, Quellcode)

Mark113 
Beitragsersteller
 14.04.2024, 20:32

Es tut mir leid, von vielen Begriffen die verwendet wurden, habe ich noch nie gehört :(

0
Mark113 
Beitragsersteller
 14.04.2024, 20:34
@cleanercode

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.

0
cleanercode  14.04.2024, 20:41
@Mark113

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.

0
Mark113 
Beitragsersteller
 14.04.2024, 20:43
@cleanercode

Ja, ich bin leider nicht in der Lage, den passenden Code dafür zu erstellen.

0
Mark113 
Beitragsersteller
 14.04.2024, 20:46
@Mark113

Wir hatten auch schon den def: befehl gelernt, aber trotzdem bin ich nicht kompetent genug dafür.

0
cleanercode  14.04.2024, 20:46
@Mark113

Habe meine Antwort aktualisiert und dir die Befehle aus der Doku hingeklatscht.

0
Mark113 
Beitragsersteller
 14.04.2024, 20:52
@cleanercode

Ich weiß jetzt aber leider nicht, was die ganzen Befehle bewirken :( ich verstehe wirklich wenig von diesem kram.

0
Hemo20  14.04.2024, 21:11
@Hemo20

Sry habe n Fehler gemacht.

Wenn du das noch nicht kannst dann sag deinem Lehrer das dann werdet ihr das ja im Unterricht machen

0
Mark113 
Beitragsersteller
 14.04.2024, 21:16
@Hemo20

Wir hatten das eventuell, aber ich bin zu schlecht darin. Andere verstehen es ja möglicherweise schon.

1
Hemo20  14.04.2024, 21:17
@Mark113

Frag doch mal Freunde. Sag nicht das du zu schlecht bist!

1
Mark113 
Beitragsersteller
 14.04.2024, 21:21
@Hemo20

Ok, aber kann mir jemand vielleicht sagen, wie der Hamster in jeder Ecke ein Korn fallen lassen kann?

0
Mark113 
Beitragsersteller
 14.04.2024, 21:27
@Mark113

Problem ist, die meißten schlafen schon und ich muss das bis 0 Uhr abgegeben haben :(

0

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.