Hey,
hier wurde ja gefragt, wie man Wege finden kann, wenn man bestimmte Maps und ihre Verbindungen zu anderen Maps kennt.
https://autoit.de/index.php?page=Thread&threadID=20124
Ich habe das mal umgesetzt:
[Blockierte Grafik: http://img163.imageshack.us/img163/483/unbenannt1yu.png]
[autoit]#include <Array.au3>
[/autoit][autoit][/autoit][autoit]Global $arr[1]
Global $maps[9][6] = [["a", "b", "c"], _
["b", "a", "t"], _
["c", "a", "f"], _
["h", "t", "k", "l"], _
["l", "h"], _
["f", "t", "c"], _
["k", "h", "t"], _
["t", "f", "h", "k", "z", "b"], _
["z", "t"]]
_ArrayDisplay($maps)
_rekursivewegsuche("a", "k")
$arr[0] = UBound($arr)
_ArrayDisplay($arr, "Alle Wege von A nach K")
Func _rekursivewegsuche($start, $ende, $bufferstr = '')
Local $string = ''
If StringInStr($bufferstr, $start) Then
Return
Else
$string = $bufferstr & $start & ';'
EndIf
Local $index = ''
$index = _getindex($start)
For $i = 1 To UBound($maps, 2) - 1
If $maps[$index][$i] = $ende Then
_ArrayAdd($arr, $string & $ende)
Else
If $maps[$index][$i] = '' Then
ExitLoop
Else
_rekursivewegsuche($maps[$index][$i], $ende, $string)
EndIf
EndIf
Next
EndFunc ;==>_rekursivewegsuche
Func _getindex($map)
Local $index = ''
For $i = 0 To UBound($maps) - 1
If $maps[$i][0] = $map Then
Return $i
EndIf
Next
EndFunc ;==>_getindex
Die Umsetzung ist bestimmt nicht sehr Effizient...
Kann wahrscheinlich auch keiner mehr brauchen, war aber ne coole Übung :).