我需要帮助制作一个随机数生成器,有点像掷骰子,比如说如果你掷出 3 或以上,你就会得到一些东西,或者如果你掷出 3 以下,你什么也不会得到,这就是我正在尝试做的,所以我不知道我哪里做错了,但没有人真正以我需要的方式解释它,他们进入细节,我需要的只是对代码进行修复,所以:
if /a num=%random% %%100 +1 = 1-10 goto AHtrees
我所需要的只是它将我发送到游戏的新部分,但现在它不起作用并且有故障等等,我知道:
1-10 goto AHtrees
是错误的,应该如下:
%num% = > 10 goto AHtrees
但我也不确定这是否正确所以请帮忙......
答案1
@Blue Lynx 也需要看一下set /a
。
Set /a num=%random% %%100 +1
if %num% GEQ 10 Goto AHtrees
作为一项小小的奖励,从长远来看,随机性似乎会产生相当均匀的分布。
:: Roll-Dice.cmd ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
Set /A Rolls=100000, Max=6
Echo:%date% %time% Rolls:%Rolls% Max:%Max%
For /L %%N in (1,1,%Rolls%) Do Set /a num=!random!%%Max+1,Arr[!num!]+=1
Set Arr
Echo:%date% %time%
> Roll-Dice.cmd
2016-11-02 19:56:58,29 Rolls:100000 Max:6
Arr[1]=16630
Arr[2]=16593
Arr[3]=16787
Arr[4]=16549
Arr[5]=16648
Arr[6]=16793
2016-11-02 19:57:09,89