Что нового

[Автоматизация] Оптимизация функции if

All2khoff

Продвинутый
Сообщения
376
Репутация
68
Предположительно есть код с бесконечным циклом.
Но нагромождение кучи функций If...EndIf несколько смущают.
Подскажите как оптимизировать код.
В этом примере всего 4 комбинации If...EndIf в оригинальном коде их местами десятки вложенных друг в друга.

Код:
$s = 1

While 1 = 1
   $pos = MouseGetPos()
   $x = $pos[0]
   $y = $pos[1]
   $s = Random(1,4,1)
   sfunc()
   WEnd

Func sfunc()
   If $s = 1 Then
	  $x = $x + Random(5,10,1)
	  $y = $y + Random(5,10,1)
	  MouseMove ( $x, $y)
   Else
      If $s = 2 Then
		 $x = $x - Random(5,10,1)
		 $y = $y + Random(5,10,1)
		 MouseMove ( $x, $y)
	  Else
		    If $s = 3 Then
			   $x = $x + Random(5,10,1)
			   $y = $y - Random(5,10,1)
			   MouseMove ( $x, $y)
			Else
			      If $s = 4 Then
					 $x = $x - Random(5,10,1)
					 $y = $y - Random(5,10,1)
					 
				  Else
   				  EndIf
			EndIf
	  EndIf
   EndIf
EndFunc


Заранее благодарен за советы или примеры кода.
 

Microteam

Осваивающий
Сообщения
74
Репутация
34
Код:
While 1 = 1
   $pos = MouseGetPos()
   $x = $pos[0]
   $y = $pos[1]
   $s = Random(1,4,1)
   sfunc()
   WEnd

Func sfunc()
Switch $s
Case 1
      $x = $x + Random(5,10,1)
      $y = $y + Random(5,10,1)
      MouseMove ( $x, $y)
Case 2
         $x = $x - Random(5,10,1)
         $y = $y + Random(5,10,1)
         MouseMove ( $x, $y)
Case 3
               $x = $x + Random(5,10,1)
               $y = $y - Random(5,10,1)
               MouseMove ( $x, $y)
Case 4
                     $x = $x - Random(5,10,1)
                     $y = $y - Random(5,10,1)
EndSwitch
EndFunc
 

AZJIO

Меценат
Меценат
Сообщения
2,892
Репутация
1,196
или так

Код:
Func sfunc()
	$rx = Random(5, 10, 1)
	$ry = Random(5, 10, 1)
	Switch Random(1, 4, 1)
		Case 1
			$x += $rx
			$y += $ry
		Case 2
			$x -= $rx
			$y += $ry
		Case 3
			$x += $rx
			$y -= $ry
		Case 4
			$x -= $rx
			$y -= $ry
	EndSwitch
EndFunc
 
Автор
All2khoff

All2khoff

Продвинутый
Сообщения
376
Репутация
68
Спасибо за советы тема решена.
 
Верх