Hallo
Ich würde gerne mal wissen, wie man so ein Navigationssystem programmiert. Bei der aktuellen Informatik-Olympiade der Schweiz gibt es gerade eine solche Aufgabe - Aber ich mach nicht mit.
Ich habe ein Labyrinth, welches so aussieht:
xxxxxxxxxxxxx.xxxxxx
xxxxxx...........xxx
xxxxxx.xxxxxx.xx.xxx
xxxxx..xxxxxx....xxx
xxxx...xxKxxxxxxxxxx
xxxxx.......xxxxxxxx
xxxxxxxxxxx.xxxxxxxx
xxxxxxxxxxx........x
xxxxxxxxxxxxxxxxxxxx
K ist Karl. Er ist in einem Labyrinth gefangen, und will raus. Er kennt das Labyrinth nicht, hat aber einen Plan davon, welcher aber so gross ist, dass er nicht selber verfolgen kann, wo er ist. Daher wäre ein Programm gescheiter.
Die Lösung wäre für den menschen einfach, aber wie bringe ich es dem PC bei? Wie schaffe ich es in einer C-ähnlichen Sprache - z.B. PHP, den Ausgang zu finden, oder simpler: Wie schaffe ich es in einem freien Raum, ohne Gegenstände/Hindernisse von Koordinate A zu B zu kommen? Naja, jetzt ist mir etwas gerade eingefallen: Das wäre relativ einfach *gg*.
Koordinate A: 50/47
Koordinate B: 13/87
Weg: -37 links, 40 runter
Trotzdem bleibt die Frage: Wie schaffe ich es, das gleiche in einem Labyrinth zu machen?
1. Aus Text - Array bilden
Ihr glaubt es nicht, aber es war schwer. Ja, ich wusste nicht, wie ich explode mit leerem Delimiter machen kann. Naja, jetzt funzt es, aber Frage 3.: Wie finde ich heraus, in welcher Dimension sich Karl befindet?
Karl wäre jetzt bei $array[4][9] zu finden, aber wie finde ich [4][9] heraus? Suchen wäre zu ressurcenfressend
Ich würde gerne mal wissen, wie man so ein Navigationssystem programmiert. Bei der aktuellen Informatik-Olympiade der Schweiz gibt es gerade eine solche Aufgabe - Aber ich mach nicht mit.
Ich habe ein Labyrinth, welches so aussieht:
xxxxxxxxxxxxx.xxxxxx
xxxxxx...........xxx
xxxxxx.xxxxxx.xx.xxx
xxxxx..xxxxxx....xxx
xxxx...xxKxxxxxxxxxx
xxxxx.......xxxxxxxx
xxxxxxxxxxx.xxxxxxxx
xxxxxxxxxxx........x
xxxxxxxxxxxxxxxxxxxx
K ist Karl. Er ist in einem Labyrinth gefangen, und will raus. Er kennt das Labyrinth nicht, hat aber einen Plan davon, welcher aber so gross ist, dass er nicht selber verfolgen kann, wo er ist. Daher wäre ein Programm gescheiter.
Die Lösung wäre für den menschen einfach, aber wie bringe ich es dem PC bei? Wie schaffe ich es in einer C-ähnlichen Sprache - z.B. PHP, den Ausgang zu finden, oder simpler: Wie schaffe ich es in einem freien Raum, ohne Gegenstände/Hindernisse von Koordinate A zu B zu kommen? Naja, jetzt ist mir etwas gerade eingefallen: Das wäre relativ einfach *gg*.
Koordinate A: 50/47
Koordinate B: 13/87
Weg: -37 links, 40 runter
Trotzdem bleibt die Frage: Wie schaffe ich es, das gleiche in einem Labyrinth zu machen?
1. Aus Text - Array bilden
Ihr glaubt es nicht, aber es war schwer. Ja, ich wusste nicht, wie ich explode mit leerem Delimiter machen kann. Naja, jetzt funzt es, aber Frage 3.: Wie finde ich heraus, in welcher Dimension sich Karl befindet?
PHP:
function makearray($lab)
{
$y = explode("\n", $lab);
foreach($y as $zeile)
{
$x = array();
for($t = 0; $t < strlen($zeile); $t++)
{
$x[] = $zeile[$t];
}
foreach($x as $spalte)
{
if($spalte == "W")
{
$wert[] = "1";
} elseif($spalte == "L") {
$wert[] = "0";
} elseif($spalte == "K") {
$wert[] = "9";
}
}
$labarray[] = $wert;
unset($wert);
}
return $labarray;
}
Karl wäre jetzt bei $array[4][9] zu finden, aber wie finde ich [4][9] heraus? Suchen wäre zu ressurcenfressend
Zuletzt bearbeitet: