Hallo,
Ich hatte die Idee ein Programm zu schreiben, welches ein Labyrinth simuliert, und möchte nun dazu ein „intelligentes“ Programm schreiben welches aus dem Labyrinth raus findet.
Ich möchte die abgelaufene Strecke als 2DArray speichern. Also Anfangsposition ist dann $Pos[0][0] ($Pos[X][Y]) da die Figur aber auch nach oben links laufen soll, müsste der X und Y Wert negativ werden, wo ich aber Probleme mit dem Array bekommen, weil der $Pos[-3][-3] Array ist Error.
Hat jemand eine Lösung?
Liebe Grüße.
Koordinatenkreutz - Negativer Array
-
- [ gelöst ]
-
kloklo -
16. November 2009 um 20:40 -
Geschlossen -
Erledigt
-
-
Die Lsung ganz einfach: Setze den 0-Punkt in die Linke obere Ecke, dann hast du nur positive Werte

-
ähm mach doch einfach ein array[1][2]
und in array[1][0] = x-Koordinate
array[1][1] = y-Koordinate -
Ich möchte aber, dass das Programm auch Links oben suchen kann ob da der Ausgang ist =P
-----------------------------------------------------------------------
Edit1: Schnitzel -> Ich möchte aber aller Abgelaufenden Fälder speichern also z.B. $Pos[3][3] = True, $Pos[3][2] = False , usw. -
Ich möchte aber, dass das Programm auch Links oben suchen kann ob da der Ausgang ist =P
Die Lösung ganz einfach: Setze den 0-Punkt in die Linke obere Ecke, dann hast du nur positive Werte

Wenn du das Labyrinth simulierst, weißt du doch, wie groß es ist und damit kannst du den Nullpunkt so setzen, damit du keine negativen Werte brauchst
-
Jaja, das ist mir kla. Nur weißt du wenn du in einem Labyrinth ausgesetzt wirst wie groß es ist und wo du bist? Wenn ich aber auf keine andere Lösung komme werde ich es so machen =P
-
Zitat
Jaja, das ist mir kla
scheint nicht so^^. Oben links ist der Nullpunkt, damit alle Koordinaten positiv werden beim Laufen in egal welche Richtung. Dein Standort ist bei x=2^16 y=2^16 für den schlechtesten Fall, Ausgang ist oben links und du bist unten rechts oder umgekehrt. Dann muss dein Labyrinth ganz schön gross sein, wenn du da aus dem Zahlenbereich rausläufst (Maximum bis 2^32)
-
Ich möchte aber, dass das Programm auch Links oben suchen kann ob da der Ausgang ist =P
joa und wo is das problem?
dann schreibste halt in array[2][0] und array[2][1] die nächste position, und immer in array[3][0] und array[3][1]
dann steht in array[Ubound(array) - 1][0] immer die aktuelle x und in array[Ubound(array) - 1][0] immer die aktuelle y koordinate
des array könnte halt ziemlich groß werden wenn du alle positionen speichern willst... -
Zitat
array könnte halt ziemlich groß werden wenn du alle positionen speichern willst...
das kommt auf die "Logik" des Lösungsweges an. Selbstverständlich könnte man versuchen, über einen pathfinder-Algorithmus alle Positionen innerhalb des Labyrinths zu erreichen....irgendwann hat man dann zwangsläufig den Ausgang gefunden....
Ansätze gibt es viele, aber dafür müssen vorher die äusseren Bedingungen definiert werden.
Ob man Markierungen setzen und/oder Karten vom bisher zurückgelegten Weg machen kann unterscheidet sich doch gewaltig vom Fall "in einer stockdunklen Höhle nackt aus der Bewusstlosigkeit aufgewacht". -
joa wär wahrscheinlich echt das beste wenn man das konzept außenrum wüsste.
es ist wohl nicht sinnvoll über details zu reden wenn man die groben gegebenheiten nicht kennt -
- Offizieller Beitrag
Wäre das nicht eine Aufgabe für ein µIT?
Zufälliges Labyrinth erstellen und das Script muss dann möglichst schnell hinausfinden. -
lustig wärs schon. die sache mit dem Precompiler wird ja wohl eh nichts.
Stilgar hat ja zufällig den wettbewerb schon so gut wie gelöst bevor er angefangen hat. -
Andy: Danke, habs jetzt aber so gelößt das man am Anfang seine Position einmal übermittelt bekommt =P...
@All: Vielen Dank =).