Что нового

Создание нескольких циклов

micgelly

Новичок
Сообщения
5
Репутация
0
Помогите пожалуйста разобраться. Я занимался программированием ооочень давно и знания в голове остались на уровне BASIC. :(

Как в AutoIt написать следующее:

Требуется контролировать несколько прямоугольных областей экрана и в соответствии в изменениями выполнять разные действия.

Код:
; 1. Старт первого (основного) цикла
While
      If PixelSearch ( left, top, right, bottom, color ) Then  
(переход в 2, выполнение и возврат сюда. Не в начало первого цикла, а именно сюда )
     If PixelSearch ( left, top, right, bottom, color ) Then  
         (переход в 3, выполнение и возврат сюда. Не в начало первого цикла, а именно сюда )
     If PixelSearch ( left, top, right, bottom, color ) Then  
          (переход в 4 выполнение и возврат сюда. Не в начало первого цикла, а именно сюда )
     EndIf 
     If PixelGetColor (значение)  Then  
          (переход в 5, но уже без возврата)
     EndIf 
;Возврат в 1 
WEnd

; 2. Старт второго цикла
While
     If (значение) Then 
          (куча разных действий)
     EndIf 
     If (значение) Then (возврат в первый цикл)
     EndIf 
WEnd

; 3. Старт третьего цикла
While
     If (значение) Then 
          (куча разных действий)
     EndIf 
     If (значение) Then (возврат в первый цикл)
     EndIf 
WEnd


; 4. Старт четвертого цикла
While
     If (значение) Then 
          (куча разных действий)
     EndIf 
     If (значение) Then (возврат в первый цикл)
     EndIf 
WEnd

;5 
(продолжение работы программы)


Правда насколько я понял у While вроде должно быть значение...

В BASIC это решалось очень просто. Во первых была нумерация строк и можно было всегда выполнение отправить в нужное место, а во вторых были операторы GoSub и GoTo.


В BASIC это выглядело бы так:

10 If ... Then GoSub 60
20 If ... Then GoSub 80
30 If ... Then GoSub 100
40 If ... Then GoTo 120
50 GoTo 10
60 If ... Then ...
70 Return
80 If ... Then ...
90 Return
100 If ... Then ...
110 Return
120 End

Помогите пожалуйста...
 

rusreg79

Продвинутый
Сообщения
159
Репутация
57
Код:
; 1. Старт первого (основного) цикла
While 1
	If PixelSearch(left, top, right, bottom, color) Then
		name1();	(переход в 2, выполнение и возврат сюда. Не в начало первого цикла, а именно сюда )
	EndIf
	If PixelSearch(left, top, right, bottom, color) Then
		name2();(переход в 3, выполнение и возврат сюда. Не в начало первого цикла, а именно сюда )
	EndIf
	If PixelSearch(left, top, right, bottom, color) Then
		name3();(переход в 4 выполнение и возврат сюда. Не в начало первого цикла, а именно сюда )
	EndIf
	If PixelGetColor(значение) Then
		name4()
	EndIf
	;Возврат в 1
WEnd

; 2. Старт второго цикла
Func name1()
	While 1
		If (значение) Then
			; (куча разных действий)
			ExitLoop;Завершает выполнение циклов While
			Return;немедленно прекращает выполнение текущей Func

		EndIf
		If (значение) Then
			;(возврат в первый цикл)
		EndIf
	WEnd
EndFunc   ;==>name1


; 3. Старт третьего цикла
Func name2()
	While 1
		If (значение) Then
			; (куча разных действий)
		EndIf
		If (значение) Then
			;(возврат в первый цикл)
		EndIf
	WEnd
EndFunc   ;==>name2



; 4. Старт четвертого цикла
Func name3()
	While 1
		If (значение) Then
			; (куча разных действий)
		EndIf
		If (значение) Then
			;(возврат в первый цикл)
		EndIf
	WEnd
EndFunc   ;==>name3


;5
Func name4()
	; (куча разных действий)
	;(возврат в первый цикл)
EndFunc   ;==>name4
 
Верх