Что нового

[Массивы] Перебор значений массива

Alkantel

Новичок
Сообщения
45
Репутация
1
Добрый день! Прошу знающих помочь разобраться с кодом.
Есть массив 3х3. Работаю с ячейками 1, 3, 5, 7, 9, то есть с диагоналями. Во всех ячейках находятся единицы. И с каждым подходом добавляем 1 к текущему значению в 9й клетке. Когда значение в 9й клетке достигает 10, то добавляем 1 к значению 7й клетки, когда там значение будет 10, то добавляем 1 к значению в 5й клетке и так, пока 10 не будет везде.
Так вот, проблема в том, что когда в 9й клетке уже 10, то 1 добавляется к значению 5й клетки, а когда в 5й клетке значение 10, то 1 добавляется к значению 7й клетки. Не понимаю почему так.
Код:
#include<Array.au3>

Global $Array[3][3] = [[1, 1, 1], [1, 1, 1], [1, 1, 1]]
Global $1 = 1
Global $3 = 1
Global $5 = 1
Global $7 = 1
Global $9 = 1

While $9 <= 10
   $Array[2][2] = $9
   If $9 = 10 Then
	  Switch $Array
	  Case $Array[2][2] = 10 And $Array[2][0] <> 10 And $Array[1][1] <> 10 And $Array[0][2] <> 10 And $Array[0][0] <> 10
		 $7 = $7 + 1
		 $Array[2][0] = $7
		 $9 = 0
	  Case $Array[2][2] = 10 And $Array[2][0] = 10 And $Array[1][1] <> 10 And $Array[0][2] <> 10 And $Array[0][0] <> 10
		 $5 = $5 + 1
		 $Array[1][1] = $5
		 $9 = 0
	  Case $Array[2][2] = 10 And $Array[2][0] = 10 And $Array[1][1] = 10 And $Array[0][2] <> 10 And $Array[0][0] <> 10
		 $3 = $3 + 1
		 $Array[0][2] = $3
		 $9 = 0
	  Case $Array[2][2] = 10 And $Array[2][0] = 10 And $Array[1][1] = 10 And $Array[0][2] = 10 And $Array[0][0] <> 10
		 $1 = $1 + 1
		 $Array[0][0] = $1
		 $9 = 0
	  Case $Array[2][2] = 10 And $Array[2][0] = 10 And $Array[1][1] = 10 And $Array[0][2] = 10 And $Array[0][0] = 10
		 MsgBox(4096, "Result", "Все по 10")
		 Exit
	  EndSwitch
   EndIf
   $9 = $9 + 1
   _ArrayDisplay($Array)
WEnd

Уже весь мозг сломал :wall_brake:
 

InnI

AutoIT Гуру
Сообщения
4 238
Репутация
1 123
Замените Switch на Select.
 
Автор
Alkantel

Alkantel

Новичок
Сообщения
45
Репутация
1
Спасибо. Как все прсто оказывается =)
Я эту конструкцию не применял ни разу =/
 
Верх