rendered paste body#include <Array.au3>
Dim $grid[11][11][2]
For $y = -5 to 5 step 1
For $x = -5 to 5 step 1
$grid[$x + 5][$y + 5][0] = Sqrt((Abs($x)^2) + (Abs($y)^2))
Next
Next
Dim $CurrentDistance[1]
$CurrentDistance[0] = _ArrayMin($grid)
$Index = 0
While ($x > 10) And ($y > 10)
For $y = 0 to UBound($grid, 1) - 1
For $x = 0 To UBound($grid, 2) - 1
If $grid[$x][$y][0] < $CurrentDistance[$Index] Then
For $Index = $Index To 0 Step - 1
If $CurrentDistance[$Index] = $grid[$x][$y][0] Then
$grid[$x][$y][1] = $Index
ContinueLoop 2
EndIf
Next
ExitLoop 2
ElseIf $grid[$x][$y][0] = $CurrentDistance[$Index] Then
$grid[$x][$y][1] = $Index
ElseIf $grid[$x][$y][0] > $CurrentDistance[$Index] Then
For $Index = $Index To UBound($CurrentDistance) - 1
If $CurrentDistance[$Index] = $grid[$x][$y][0] Then
$grid[$x][$y][1] = $Index
ContinueLoop 2
EndIf
Next
ReDim $CurrentDistance[UBound($CurrentDistance) + 1]
$Index = $Index + 1
$grid[$x][$y][1] = $Index
Else
MsgBox(0, "Euclidean Distance model", "Wtf??")
Exit
EndIf
Next
Next
Wend
Dim $String = "Euclidean Distance by rank:" & @CRLF & @CRLF
For $z = 0 To 1
For $y = 0 To UBound($grid, 1) - 1
For $x = 0 To UBound($grid, 2) - 1
$String = $String & $grid[$x][$y][$z] & " "
Next
$String = $String & @CRLF & @CRLF
Next
$String = "Euclidean Distances:" & @CRLF & @CRLF
Next
MsgBox(0, "Euclidean Distance Model:", $String)
Exit