Код: AutoIt [Выделить]
For $i=16 To 13 Step -1
;~ Ваш код
Next
Dim $myArray1[4]=[6,11,12,13]
Dim $myArray2[10]=[1,2,3,4,5,6,7,8,9,10]
Dim $myArray3[4]=[6,14,15,16]
$newArray[7]=[16, 15, 14, 6, 11, 12, 13]
#Include <Array.au3>
Const $N = 17
Dim $GrafLink[$N][$N] = [ _
[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], _
[1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0], _
[0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0], _
[0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0], _
[0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0], _
[0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0], _
[0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,0,0], _
[0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0], _
[0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0], _
[0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0], _
[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0], _
[0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0], _
[0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0], _
[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0], _
[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0], _
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1], _
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]]
$start = 16
$finish = 13
$planka = _budmo(String($start),$finish)
MsgBox(0, "путь", "от " & $start & " до " & $finish & " путь " & $planka)
Func _budmo($way, $go_to)
$way_array = StringSplit($way, ",", 2)
If $way_array[UBound($way_array)-1] = $go_to Then Return $way
$Res = ""
For $i=0 to $N-1
If $Res <> "" Then ExitLoop
If _ArraySearch($way_array, $i) <> -1 Then ContinueLoop
If $GrafLink[$way_array[UBound($way_array)-1]][$i] = 1 Then $Res = _budmo($way & "," & $i, $go_to)
Next
Return $Res
EndFunc
#Include <Array.au3>
Dim $papiroska[17][17] = [[0], [1,2],[2,1,3],[2,2,4],[2,3,5],[2,4,6],[4,5,7,11,14],[2,6,8],[2,7,9],[2,8,10],[1,9],[2,6,12],[2,11,13],[1,12],[2,6,15],[2,14,16],[1,15]]
$start = 16
$finish = 13
$kaplya_necotina = _zatyazhka(String($start),$finish)
MsgBox(0, "путь", "от " & $start & " до " & $finish & " путь " & $kaplya_necotina )
Func _zatyazhka($way, $go_to)
$way_array = StringSplit($way, ",", 2)
$poslednya_papiroska = $way_array[UBound($way_array)-1]
If $poslednya_papiroska = $go_to Then Return $way
$Res = ""
For $i=1 to $papiroska[$poslednya_papiroska][0]
If $Res <> "" Then ExitLoop
$pyyyh = $papiroska[$poslednya_papiroska][$i]
If _ArraySearch($way_array, $pyyyh) <> -1 Then ContinueLoop
$Res = _zatyazhka($way & "," & $pyyyh, $go_to)
Next
Return $Res
EndFunc
Dim $GrafLink[$N][$N] = [ _
[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], _
[1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0], _
[0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0], _
[0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0], _
[0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0], _
[0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0], _
[0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,0,0], _
[0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0], _
[0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0], _
[0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0], _
[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0], _
[0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0], _
[0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0], _
[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0], _
[0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0], _
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1], _
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]]
Dim $papiroska[17][17] = [[0],[2],[1,3],[2,4],[3,5],[4,6],[5,7,11,14],[6,8],[7,9],[8,10],[9],[6,12],[11,13],[12],[6,15],[14,16],[15]]
UBound($papiroska[$i])
Dim $papiroska[17][17] = [[0], [1,2],[2,1,3],[2,2,4],[2,3,5],[2,4,6],[4,5,7,11,14],[2,6,8],[2,7,9],[2,8,10],[1,9],[2,6,12],[2,11,13],[1,12],[2,6,15],[2,14,16],[1,15]]
Func _zatyazhka($way, $go_to)
$way_array = StringSplit($way, ",", 2) ; разбить пройденный путь на вершины
$poslednya_papiroska = $way_array[UBound($way_array)-1] ; взять последнюю пройденную вершину
If $poslednya_papiroska = $go_to Then Return $way ; если последняя пройденная вершина = пункт назначения, то ура!
$Res = ""
For $i=1 to $papiroska[$poslednya_papiroska][0] ; перебираем возможные переходы из последней вершины
If $Res <> "" Then ExitLoop ; если в процессе перебора результат уже найден, то прервать перебор вариантов
$pyyyh = $papiroska[$poslednya_papiroska][$i] ; перебираем возможные переходы из последней вершины
If _ArraySearch($way_array, $pyyyh) <> -1 Then ContinueLoop ; если переход на вершину, которая уже есть в пройденном пути, то пропускаем такой вариант
$Res = _zatyazhka($way & "," & $pyyyh, $go_to) ; Р Е К У Р С И Я
Next
Return $Res
EndFunc
Есть такой старый анекдотстранно что в переменных выпивки не нашлось