Что нового

Как прочитать значения переменных - рандомно ?

dr.room

Новичок
Сообщения
283
Репутация
0
Версия AutoIt:
AutoIt v3.3.14.2
Описание:
Всем привет
Не знаю как решить задачу с простыми условиями :stars:
Есть группа переменных, чьи значения нужно прочитать рандомно и вывести прочитанное значение в Msgbox (для подтверждения)
Пример
Код:
Local $i1=1, $i2=2, $i2=3

Примечания:
Спасибо за помощь
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Код:
Local $i1=1, $i2=2, $i3=3

; вариант 1
$val = Eval("i" & Random(1, 3, 1))
MsgBox(0, "", $val)

; вариант 2
Dim $ar[] = [$i1, $i2, $i3]
$val = $ar[Random(0, UBound($ar) - 1, 1)]
MsgBox(0, "", $val)
 
Автор
D

dr.room

Новичок
Сообщения
283
Репутация
0
Спасибо большое InnI
Как реализовать с небольшими уточнениям по условиям, не подскажете?
  • Перебор должен включать считывание и вывод последовательно в Msgbox всех значений переменных, без исключения, что есть всех - но в рандомном порядке
  • Перебор должен исключать дублирование считываемых и выводимых значений
 
Автор
D

dr.room

Новичок
Сообщения
283
Репутация
0
Спасибо Alofa
Пока не очень получается пример адаптировать даже
Здесь отдает значение =1. Видимо все ок - но это не совсем то что искал
Код:
#include <Array.au3>
Local $aArray_Base[10] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

While -1
$i = _ArrayShuffle ($aArray_Base)
MsgBox (262208,"","Текущее значение равно " & @CRLF & $i & @CRLF & "")
Sleep(1000)

	WEnd

А здесь - ошибка
Код:
#include <Array.au3>

Local $aArray_Base[10] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

While -1
$i = _ArrayShuffle ( ByRef $aArray_Base [, $iStart_Row = 0[,$iEnd_Row = 9 ])
MsgBox (262208,"","Текущее значение равно " & @CRLF & $i & @CRLF & "")
Sleep(1000)
	WEnd

Что делать, что делать.... :stars:
 

Khaibit

Осваивающий
Сообщения
103
Репутация
25
Код:
#include <Array.au3>
Local $aArray_Base[10] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
_ArrayShuffle($aArray_Base)
_ArrayDisplay($aArray_Base)
For $i = 0 To UBound($aArray_Base) - 1
	MsgBox(262208, "", "Текущее значение равно " & @CRLF & $aArray_Base[$i] & @CRLF & "")
	Sleep(1000)
Next
 
Автор
D

dr.room

Новичок
Сообщения
283
Репутация
0
Всем спасибо
Эх жалко константы не поддерживаются - не помню где читал как эту проблем решить...
Код:
#include <Array.au3>
Const $tab0=0, $tab1=1, $tab2=2,  $tab3=3, $tab4=4, $tab5=5, $tab6=6, $tab7=7, $tab8=8, $tab4=9
Local $aArray_Base[10] = [$tab0,$tab1, $tab2, $tab3, $tab4, $tab5, $tab6, $tab7, $tab8, $tab4]
_ArrayShuffle($aArray_Base)
_ArrayDisplay($aArray_Base) 
For $i = 0 To UBound($aArray_Base) - 1
    MsgBox(262208, "", "Текущее значение равно " & @CRLF & $aArray_Base[$i] & @CRLF & "",2)
    Sleep(1000)
Next

Но переменные поддерживаются - буду пока их использовать.. Еще раз спасибо,Khaibit! Очень помогли.
Код:
#include <Array.au3>
Local $tab0=0, $tab1=1, $tab2=2,  $tab3=3, $tab4=4, $tab5=5, $tab6=6, $tab7=7, $tab8=8, $tab4=9
 
Верх