首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批量骰子游戏

批量骰子游戏
EN

Stack Overflow用户
提问于 2015-01-15 15:41:32
回答 3查看 1.7K关注 0票数 0

我正在批量开发一个骰子游戏。唯一缺少的是最重要的部分!我不知道如何做一个随机数发生器,它生成一个介于1-6之间的数字!有什么帮助吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-15 15:54:04

下面的代码将%roll%设置为从1到6的随机数(含1)。

代码语言:javascript
复制
set /a roll=(%random% %% 6) + 1

它使用%random%,它给出从0到32767的随机数,然后使用模算子使其范围从0到5.1,然后添加1到6。

请注意,这并不是完全随机的,但它应该足够满足您的需要。因为32767不是完全可以被6整除的,所以滚动1和2会有一分钟的偏差(但是这个偏差会很小,不会被注意到)。

票数 4
EN

Stack Overflow用户

发布于 2020-03-19 15:16:00

试试这个,你可以通过添加更好的动画或更多的骰子来提高。

代码语言:javascript
复制
@echo off&&setlocal enabledelayedexpansion
title Dice or Die
::by BR4Z1L14N N00B
color 0f

:INICIO
::throwing the die
set/a dd=%random% %%6 +1
::------------------------------------------------
::die rolling time |range: 13~26| change down here for longer or shorter roll
set/a mov=%random% %%13 +13
::------------------------------------------------
set movlim=0
set anim=0

::here the die is rolling, then for the up face there's 4 possibillities for the next face
:GIRO
call :loading
set/a movlim=%movlim%+1
    if %movlim% equ %mov% goto FIM
        if %dd% equ 1 set pos0=4&&set pos1=6&&set pos2=2&&set pos3=3&&goto setDD
        if %dd% equ 2 set pos0=1&&set pos1=6&&set pos2=5&&set pos3=3&&goto setDD
        if %dd% equ 3 set pos0=1&&set pos1=2&&set pos2=5&&set pos3=4&&goto setDD
        if %dd% equ 4 set pos0=1&&set pos1=3&&set pos2=5&&set pos3=6&&goto setDD
        if %dd% equ 5 set pos0=4&&set pos1=3&&set pos2=2&&set pos3=6&&goto setDD
        if %dd% equ 6 set pos0=4&&set pos1=5&&set pos2=2&&set pos3=1&&goto setDD

:FIM
cls
echo.
echo/ %dd%
pause>nul
set dd=
set mov=
set xlado=
goto INICIO

:setDD
set/a xlado=%random% %%4
set dd=!pos%xlado%!
goto GIRO

:loading
set load=
set delay=0
set rollx=ó
:loopd
set/a delay=%delay%+1
::------------------------------------------------
::animation speed, |delay 30| change down here to get faster or slower
    if %delay% neq 30 goto loopd
::------------------------------------------------
if %anim% equ 0 set roll=-&&set anim=1&&goto prx
if %anim% equ 1 set roll=\&&set anim=2&&goto prx
if %anim% equ 2 set roll=%rollx:~1,1%&&set anim=3&&goto prx
if %anim% equ 3 set roll=/&&set anim=0&&goto prx
:prx
set load=%load%%roll%
cls
echo.
echo/ %load%
exit/b
票数 0
EN

Stack Overflow用户

发布于 2019-01-20 06:00:21

代码语言:javascript
复制
:random_1
Set /a roll=%random%
If %roll%==gtr goto random_1
If %roll%==lss goto random_1
If %roll%==1 goto next_step

诸若此类

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27967214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档