#include <Array.au3>
Opt("TrayIconDebug", 1)
#region Variablen
Global $SC_ARR_PLACES[65][5]
$SC_ARR_PLACES[0][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[0][1] = 5;			1. Nachbar von Feld 0
$SC_ARR_PLACES[0][2] = 20;			2. Nachbar von Feld 0
$SC_ARR_PLACES[0][3] = 10;			3. Nachbar von Feld 0
$SC_ARR_PLACES[0][4] = 15;			4. Nachbar von Feld 0
$SC_ARR_PLACES[1][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[1][1] = 51;			1. Nachbar von Feld 1
$SC_ARR_PLACES[1][2] = 64;			2. Nachbar von Feld 1
$SC_ARR_PLACES[1][3] = 52;			3. Nachbar von Feld 1
$SC_ARR_PLACES[1][4] = 9;			4. Nachbar von Feld 1
$SC_ARR_PLACES[2][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[2][1] = 34;			1. Nachbar von Feld 2
$SC_ARR_PLACES[2][2] = 33;			2. Nachbar von Feld 2
$SC_ARR_PLACES[2][3] = 62;			3. Nachbar von Feld 2
$SC_ARR_PLACES[2][4] = 14;			4. Nachbar von Feld 2
$SC_ARR_PLACES[3][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[3][1] = 19;			1. Nachbar von Feld 3
$SC_ARR_PLACES[3][2] = 42;			2. Nachbar von Feld 3
$SC_ARR_PLACES[3][3] = 43;			3. Nachbar von Feld 3
$SC_ARR_PLACES[3][4] = 63;			4. Nachbar von Feld 3
$SC_ARR_PLACES[4][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[4][1] = 25;			1. Nachbar von Feld 4
$SC_ARR_PLACES[4][2] = 24;			2. Nachbar von Feld 4
$SC_ARR_PLACES[4][3] = 61;			3. Nachbar von Feld 4
$SC_ARR_PLACES[4][4] = 60;			4. Nachbar von Feld 4
$SC_ARR_PLACES[5][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[5][1] = 0;			1. Nachbar von Feld 5
$SC_ARR_PLACES[5][2] = 6;			2. Nachbar von Feld 5
$SC_ARR_PLACES[6][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[6][1] = 5;			1. Nachbar von Feld 6
$SC_ARR_PLACES[6][2] = 7;			2. Nachbar von Feld 6
$SC_ARR_PLACES[7][0] = "SAVE";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[7][1] = 6;			1. Nachbar von Feld 7
$SC_ARR_PLACES[7][2] = 8;			2. Nachbar von Feld 7
$SC_ARR_PLACES[8][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[8][1] = 7;			1. Nachbar von Feld 8
$SC_ARR_PLACES[8][2] = 9;			2. Nachbar von Feld 8
$SC_ARR_PLACES[9][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[9][1] = 1;			1. Nachbar von Feld 9
$SC_ARR_PLACES[9][2] = 8;			2. Nachbar von Feld 9
$SC_ARR_PLACES[10][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[10][1] = 0;			1. Nachbar von Feld 10
$SC_ARR_PLACES[10][2] = 11;			2. Nachbar von Feld 10
$SC_ARR_PLACES[11][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[11][1] = 10;			1. Nachbar von Feld 11
$SC_ARR_PLACES[11][2] = 12;			2. Nachbar von Feld 11
$SC_ARR_PLACES[12][0] = "SAVE";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[12][1] = 11;			1. Nachbar von Feld 12
$SC_ARR_PLACES[12][2] = 13;			2. Nachbar von Feld 12
$SC_ARR_PLACES[13][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[13][1] = 12;			1. Nachbar von Feld 13
$SC_ARR_PLACES[13][2] = 14;			2. Nachbar von Feld 13
$SC_ARR_PLACES[14][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[14][1] = 2;			1. Nachbar von Feld 14
$SC_ARR_PLACES[14][2] = 13;			2. Nachbar von Feld 14
$SC_ARR_PLACES[15][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[15][1] = 0;			1. Nachbar von Feld 15
$SC_ARR_PLACES[15][2] = 16;			2. Nachbar von Feld 15
$SC_ARR_PLACES[16][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[16][1] = 17;			1. Nachbar von Feld 16
$SC_ARR_PLACES[16][2] = 15;			2. Nachbar von Feld 16
$SC_ARR_PLACES[17][0] = "SAVE";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[17][1] = 16;			1. Nachbar von Feld 17
$SC_ARR_PLACES[17][2] = 18;			2. Nachbar von Feld 17
$SC_ARR_PLACES[18][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[18][1] = 17;			1. Nachbar von Feld 18
$SC_ARR_PLACES[18][2] = 19;			2. Nachbar von Feld 18
$SC_ARR_PLACES[19][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[19][1] = 18;			1. Nachbar von Feld 19
$SC_ARR_PLACES[19][2] = 3;			2. Nachbar von Feld 19
$SC_ARR_PLACES[20][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[20][1] = 0;			1. Nachbar von Feld 20
$SC_ARR_PLACES[20][2] = 21;			2. Nachbar von Feld 20
$SC_ARR_PLACES[21][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[21][1] = 20;			1. Nachbar von Feld 21
$SC_ARR_PLACES[21][2] = 22;			2. Nachbar von Feld 21
$SC_ARR_PLACES[22][0] = "SAVE";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[22][1] = 21;			1. Nachbar von Feld 22
$SC_ARR_PLACES[22][2] = 23;			2. Nachbar von Feld 22
$SC_ARR_PLACES[23][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[23][1] = 22;			1. Nachbar von Feld 23
$SC_ARR_PLACES[23][2] = 24;			2. Nachbar von Feld 23
$SC_ARR_PLACES[24][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[24][1] = 4;			1. Nachbar von Feld 24
$SC_ARR_PLACES[24][2] = 23;			2. Nachbar von Feld 24
$SC_ARR_PLACES[25][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[25][1] = 4;			1. Nachbar von Feld 25
$SC_ARR_PLACES[25][2] = 26;			2. Nachbar von Feld 25
$SC_ARR_PLACES[26][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[26][1] = 25;			1. Nachbar von Feld 26
$SC_ARR_PLACES[26][2] = 27;			2. Nachbar von Feld 26
$SC_ARR_PLACES[27][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[27][1] = 26;			1. Nachbar von Feld 27
$SC_ARR_PLACES[27][2] = 28;			2. Nachbar von Feld 27
$SC_ARR_PLACES[28][0] = "SAVE";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[28][1] = 27;			1. Nachbar von Feld 28
$SC_ARR_PLACES[28][2] = 29;			2. Nachbar von Feld 28
$SC_ARR_PLACES[29][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[29][1] = 28;			1. Nachbar von Feld 29
$SC_ARR_PLACES[29][2] = 30;			2. Nachbar von Feld 29
$SC_ARR_PLACES[30][0] = "SAVE";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[30][1] = 29;			1. Nachbar von Feld 30
$SC_ARR_PLACES[30][2] = 31;			2. Nachbar von Feld 30
$SC_ARR_PLACES[31][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[31][1] = 32;			1. Nachbar von Feld 31
$SC_ARR_PLACES[31][2] = 30;			2. Nachbar von Feld 31
$SC_ARR_PLACES[32][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[32][1] = 33;			1. Nachbar von Feld 32
$SC_ARR_PLACES[32][2] = 31;			2. Nachbar von Feld 32
$SC_ARR_PLACES[33][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[33][1] = 32;			1. Nachbar von Feld 33
$SC_ARR_PLACES[33][2] = 2;			2. Nachbar von Feld 33
$SC_ARR_PLACES[34][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[34][1] = 35;			1. Nachbar von Feld 34
$SC_ARR_PLACES[34][2] = 2;			2. Nachbar von Feld 34
$SC_ARR_PLACES[35][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[35][1] = 34;			1. Nachbar von Feld 35
$SC_ARR_PLACES[35][2] = 36;			2. Nachbar von Feld 35
$SC_ARR_PLACES[36][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[36][1] = 35;			1. Nachbar von Feld 36
$SC_ARR_PLACES[36][2] = 37;			2. Nachbar von Feld 36
$SC_ARR_PLACES[37][0] = "SAVE";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[37][1] = 38;			1. Nachbar von Feld 37
$SC_ARR_PLACES[37][2] = 36;			2. Nachbar von Feld 37
$SC_ARR_PLACES[38][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[38][1] = 39;			1. Nachbar von Feld 38
$SC_ARR_PLACES[38][2] = 37;			2. Nachbar von Feld 38
$SC_ARR_PLACES[39][0] = "SAVE";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[39][1] = 38;			1. Nachbar von Feld 39
$SC_ARR_PLACES[39][2] = 40;			2. Nachbar von Feld 39
$SC_ARR_PLACES[40][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[40][1] = 39;			1. Nachbar von Feld 40
$SC_ARR_PLACES[40][2] = 41;			2. Nachbar von Feld 40
$SC_ARR_PLACES[41][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[41][1] = 42;			1. Nachbar von Feld 41
$SC_ARR_PLACES[41][2] = 40;			2. Nachbar von Feld 41
$SC_ARR_PLACES[42][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[42][1] = 3;			1. Nachbar von Feld 42
$SC_ARR_PLACES[42][2] = 41;			2. Nachbar von Feld 42
$SC_ARR_PLACES[43][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[43][1] = 3;			1. Nachbar von Feld 43
$SC_ARR_PLACES[43][2] = 44;			2. Nachbar von Feld 43
$SC_ARR_PLACES[44][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[44][1] = 43;			1. Nachbar von Feld 44
$SC_ARR_PLACES[44][2] = 45;			2. Nachbar von Feld 44
$SC_ARR_PLACES[45][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[45][1] = 46;			1. Nachbar von Feld 45
$SC_ARR_PLACES[45][2] = 44;			2. Nachbar von Feld 45
$SC_ARR_PLACES[46][0] = "SAVE";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[46][1] = 47;			1. Nachbar von Feld 46
$SC_ARR_PLACES[46][2] = 45;			2. Nachbar von Feld 46
$SC_ARR_PLACES[47][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[47][1] = 48;			1. Nachbar von Feld 47
$SC_ARR_PLACES[47][2] = 46;			2. Nachbar von Feld 47
$SC_ARR_PLACES[48][0] = "SAVE";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[48][1] = 49;			1. Nachbar von Feld 48
$SC_ARR_PLACES[48][2] = 47;			2. Nachbar von Feld 48
$SC_ARR_PLACES[49][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[49][1] = 50;			1. Nachbar von Feld 49
$SC_ARR_PLACES[49][2] = 48;			2. Nachbar von Feld 49
$SC_ARR_PLACES[50][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[50][1] = 51;			1. Nachbar von Feld 50
$SC_ARR_PLACES[50][2] = 49;			2. Nachbar von Feld 50
$SC_ARR_PLACES[51][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[51][1] = 50;			1. Nachbar von Feld 51
$SC_ARR_PLACES[51][2] = 1;			2. Nachbar von Feld 51
$SC_ARR_PLACES[52][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[52][1] = 1;			1. Nachbar von Feld 52
$SC_ARR_PLACES[52][2] = 53;			2. Nachbar von Feld 52
$SC_ARR_PLACES[53][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[53][1] = 54;			1. Nachbar von Feld 53
$SC_ARR_PLACES[53][2] = 52;			2. Nachbar von Feld 53
$SC_ARR_PLACES[54][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[54][1] = 55;			1. Nachbar von Feld 54
$SC_ARR_PLACES[54][2] = 53;			2. Nachbar von Feld 54
$SC_ARR_PLACES[55][0] = "SAVE";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[55][1] = 54;			1. Nachbar von Feld 55
$SC_ARR_PLACES[55][2] = 56;			2. Nachbar von Feld 55
$SC_ARR_PLACES[56][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[56][1] = 55;			1. Nachbar von Feld 56
$SC_ARR_PLACES[56][2] = 57;			2. Nachbar von Feld 56
$SC_ARR_PLACES[57][0] = "SAVE";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[57][1] = 58;			1. Nachbar von Feld 57
$SC_ARR_PLACES[57][2] = 56;			2. Nachbar von Feld 57
$SC_ARR_PLACES[58][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[58][1] = 59;			1. Nachbar von Feld 58
$SC_ARR_PLACES[58][2] = 57;			2. Nachbar von Feld 58
$SC_ARR_PLACES[59][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[59][1] = 58;			1. Nachbar von Feld 59
$SC_ARR_PLACES[59][2] = 60;			2. Nachbar von Feld 59
$SC_ARR_PLACES[60][0] = "GRASS";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[60][1] = 4;			1. Nachbar von Feld 60
$SC_ARR_PLACES[60][2] = 59;			2. Nachbar von Feld 60
$SC_ARR_PLACES[61][0] = "HOME2";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[61][1] = 4;			1. Nachbar von Feld 61
$SC_ARR_PLACES[62][0] = "HOME1";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[62][1] = 2;			1. Nachbar von Feld 62
$SC_ARR_PLACES[63][0] = "HOME2";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[63][1] = 3;			1. Nachbar von Feld 63
$SC_ARR_PLACES[64][0] = "HOME1";	Dieser Wert ist irrelevant
$SC_ARR_PLACES[64][1] = 1;			1. Nachbar von Feld 64
Global $SC_ARR_DIFFERENCEBETWPLACES[65][65]
#EndRegion Variablen




$hTi = TimerInit()
_SC_DifferenceBetweenPlaces()
ConsoleWrite(TimerDiff($hTi) &"ms"& @CRLF)
_ArrayDisplay($SC_ARR_DIFFERENCEBETWPLACES)

Func _SC_DifferenceBetweenPlaces()
	Local $i, $j, $k
	For $i = 0 To 64
		For $j = 0 To 64
			;Hier wird das Array erstmal voll mit 100ern geschrieben
			$SC_ARR_DIFFERENCEBETWPLACES[$i][$j] = 100
		Next
		;Diff = die Entferung der Felder
		Local $iDiff = 0
		;ToDo = Die felder, die noch übrig sind
		Local $iToDo = 64
		;Setzte das Array bei [i][i] auf 0, da dort die Entfernung ja 0 beträgt ;)
		$SC_ARR_DIFFERENCEBETWPLACES[$i][$i] = 0
		;Solange etwas zu tun ist
		While $iToDo > 0
			For $j = 0 To 64
				;Am anfang ist iDiff = 0 und SC_ARR_DIFFERENCEBETWPLACES[i][i] auch 0, dann gehts halt weiter
				If $SC_ARR_DIFFERENCEBETWPLACES[$i][$j] = $iDiff Then
					For $k = 1 To 4
						;SC_ARR_PLACES[$j][$k] geben bis zu 4 Nachbarsfelder aus (z.B. von Feld 0 ist es 5, 10, 15 und 20)
						If String($SC_ARR_PLACES[$j][$k]) <> '' Then
							;Wenn = 100, also noch nicht behandelt, setze die Differenz der beiden Felder auf iDiff
							If $SC_ARR_DIFFERENCEBETWPLACES[$i][$SC_ARR_PLACES[$j][$k]] = 100 Then
								$SC_ARR_DIFFERENCEBETWPLACES[$i][$SC_ARR_PLACES[$j][$k]] = $iDiff + 1
								$iToDo = $iToDo - 1
							EndIf
						EndIf
					Next
				EndIf
			Next
			;Differenze += 1
			$iDiff = $iDiff + 1
		WEnd
	Next
EndFunc   ;==>_SC_DifferenceBetweenPlaces