Autohotkey 随机选择:未正确执行

Autohotkey 随机选择:未正确执行,autohotkey,Autohotkey,我的问题是随机选择两个选项中的一个 one(){ MouseMove, 306, 266 } two(){ MouseMove, 329, 378 } rand(){ random, rand, two(), one() return rand } 结果总是以1结尾。只有当数字可以作为参数值生成时,随机函数才起作用 试试这个: F1::rand() rand(){ Array := ["one", "two"] random, rand, 1, 2 return

我的问题是随机选择两个选项中的一个

one(){
MouseMove, 306, 266
}

two(){
MouseMove, 329, 378
}

rand(){
random, rand, two(), one()
return rand
}

结果总是以1结尾。只有当数字可以作为参数值生成时,随机函数才起作用

试试这个:

F1::rand()

rand(){
    Array := ["one", "two"]
    random, rand, 1, 2
    return Array[rand]()
}

one(){
MouseMove, 306, 266
}

two(){
MouseMove, 329, 378
}

只有当数字可以作为其参数的值生成时,随机函数才起作用

试试这个:

F1::rand()

rand(){
    Array := ["one", "two"]
    random, rand, 1, 2
    return Array[rand]()
}

one(){
MouseMove, 306, 266
}

two(){
MouseMove, 329, 378
}

你很接近。您没有为“随机数的最小值”和“最大值”设置正确的值。使用0和1,并通过三元运算符进行检查:

one(){
MouseMove, 306, 266
}

two(){
MouseMove, 329, 378
}

random, rand, 0, 1
if (rand = 0) ? one() : two()

编辑:对于@user3419297提示的任意函数列表:

one(){
MouseMove, 306, 266
}

two(){
MouseMove, 329, 378
}

another(){
MouseMove, 365, 437
}

more(){
MouseMove, 392, 403
}

Arr := ["one", "two", "another", "more"]
random, rand, 1, Arr.Length()
Arr[rand]()

很酷的东西

你很接近。您没有为“随机数的最小值”和“最大值”设置正确的值。使用0和1,并通过三元运算符进行检查:

one(){
MouseMove, 306, 266
}

two(){
MouseMove, 329, 378
}

random, rand, 0, 1
if (rand = 0) ? one() : two()

编辑:对于@user3419297提示的任意函数列表:

one(){
MouseMove, 306, 266
}

two(){
MouseMove, 329, 378
}

another(){
MouseMove, 365, 437
}

more(){
MouseMove, 392, 403
}

Arr := ["one", "two", "another", "more"]
random, rand, 1, Arr.Length()
Arr[rand]()

很酷的东西

一般来说,数组可以有任意数量的项,然后使用random、rand、1、Array.Length随机选取一项。美好的我将编辑我的答案以显示如何。一般来说,数组可以有任意数量的项,然后使用random、rand、1、Array.Length随机选取一项。美好的我将编辑我的答案以显示如何。