1 (изменено: Sekotka, 2015-03-21 15:35:47)

Тема: AHK: По random

Простой вопрос от новичка.

Нужно совершить в определенной зависимости клики.

Как вместо, где берется произвольное число от 0 до 4.

Random, C1, 0, 4

получить random, где выбирается один из вариантов, допустим

0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4  

чтобы 0 и 1 встречался чаще остальных?

Спасибо.

2

Re: AHK: По random

Пока пост не оформите по правилам, никто вам не ответит. Оформление см. в закреплённой теме раздела.

3

Re: AHK: По random

YMP пишет:

Пока пост не оформите по правилам, никто вам не ответит. Оформление см. в закреплённой теме раздела.

Прошу извинить. Поправил.

4 (изменено: Irbis, 2015-03-21 16:10:55)

Re: AHK: По random

Arr:=[0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4]
Loop 5
   MsgBox % Rand(Arr)
Return

Rand(Arr) {
   Random, x, 1, Arr.MaxIndex()
   Return Arr[x]
}

5 (изменено: Sekotka, 2015-03-21 16:29:04)

Re: AHK: По random

Irbis пишет:
Arr:=[0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4]
Loop 5
   MsgBox % Rand(Arr)
Return

Rand(Arr) {
   Random, x, 1, Arr.MaxIndex()
   Return Arr[x]
}

Спасибо, а для новичка подскажите пожалуйста, какая переменная отвечает за итоговое значение? В моем примере это C1, а у вас?

6 (изменено: Irbis, 2015-03-21 16:33:12)

Re: AHK: По random

Какую присвоите, такая и будет.

С1 := Rand(Arr)

При ответе предыдущий пост цитировать не нужно.

7

Re: AHK: По random

Спасибо большое!

8 (изменено: serzh82saratov, 2015-03-28 12:15:42)

Re: AHK: По random

У меня с 3 раза выдало 2 четвёрки, и 2 тройки. Фактически вероятно выпадение 5 четвёрок из 5.

res := Rand("0|0|0|1|1|1|2|2|3|4")
Loop % 5
   MsgBox % res[A_Index]
Return

Rand(Str) {
   Sort, Str, Random D|
   Return StrSplit(Str, "|")
}

Или лучше так:


1::
    p =
    Loop 30
        p .= Rand()
    ToolTip % p
    Return

Rand(reset=0) {
    Static Str := "0|0|0|1|1|1|2|2|3|4", i := 10, Arr  
    If (i = 10 || reset)
    {
        Sort, Str, Random D|
        Arr := StrSplit(Str, "|"), i := 0
    }
    Return Arr[++i]
}  
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui