如何写一个 Javascript 骰子程式

如何写一个 Javascript 骰子程式,第1张

下面这个函数kkk,参数:

m: 几个骰子

n: 是投多少计统计

f: 多少面的骰子

返回的是数组:从小到大记录了,各点子出现的数量,

kkk=function(m=2,n=5000,f=6){

var i,j,t,no,to=[];

no=mf-m+1;

for(i=0;i<no;i++){

to[i]=0;

}

for(i=0;i<n;i++){

t=0;

for(j=0;j<m;j++){

t+=Mathfloor(Mathrandom()f);

}

to[t]+=1;

}

for(i=0;i<no;i++){

consolelog(m+'个骰子投'+n+'次,点数为'+(i+m)+'出现的次数为:'+to[i]+',出现概率为:'+(to[i]/n)) ;

}

return to;

}

rand()%6+1

rand()是一个生成随机数的函数

%6就是说6个面随机选一个,所以要模6

模6之后得到的是0-5,要变回1-6,所以要+1

关于rand()的实现的问题,可以参考一下百度百科

有以下步骤:

1、打开一个聊天窗口,并且点击输入框旁边的那个加号图标选择表情。

2、进入表情后,选择自定义表情,你就会看到上面有一个骰子的表情。

3、点击筛子,骰子就会扔出去,骰子点数为随机数字,不可人为 *** 作。

骰子(tóuzi),古代中国民间娱乐用来投掷的博具。早在战国时期就有。通常作为桌上游戏的小道具,最常见的骰子是六面骰,它是一颗正立方体,上面分别有一到六个孔(或数字),其相对两面之数字和必为七。中国的骰子习惯在一点和四点漆上红色。骰子是容易制作和取得的乱数产生器。骰经常会被错误念成shǎi。骰子是中国民间比较流行的娱乐工具。

#include <iostream>#include <cstdlib>enum GameStatus{WIN,LOSE,PLAYING};//计算并输出和数int rollDice(){ int die1 = 1 + rand() % 6; int die2 = 1 + rand() % 6; int sum = die1 + die2;

printf("player rolled %d + %d = %d\n", die1, die2, sum); return sum;

}int main(){ int sum, myPoint;

GameStatus status;

unsigned seed; //int rollDice();

scanf_s("%d", &seed);//输入随机数种子

srand(seed);//将种子传递给rand()

sum = rollDice();//第一轮投色子、计算和数

switch (sum){ case 7: case 11:

status = WIN; break;//和为7或11则为胜

case 2: case 3: case 12:

status = LOSE; break; default://其他情况尚无结果,状态为PLAYING

status = PLAYING;

myPoint = sum;

printf("point is %d\n", myPoint); break;

} while (status == PLAYING){ sum = rollDice(); if (sum == myPoint){

status = WIN;

} else if (sum == 7){

status = LOSE;

}

} //当状态不为PLAYING时循环结束,输出游戏结果

if (status == WIN){

printf("win!\n");

} else{

printf("lose!\n");

}

system("pause"); return 0;

}

对于微信骰子可以通过一定的技巧来摇出想要的点数。首先,摇骰子的时候要轻轻的掷出骰子,掷出的力度要和掷得的点数高低成正比,如果想要掷出一个高点数,就要用力;另外,要保持投掷骰子的距离,投掷距离越近,得到的点数也就越低;最后,可以使用旋转翻滚的方式,通过变化骰子的旋转角度就能够控制点数,可以让骰子上某个特定的面朝上。如果把这些技巧掌握好,就可以更容易的掷出想要的点数。

MATLAB 程序如下,最终收敛到0508左右

NumIterations = 10000;              %实验次数

NumWins = 0;                        %已经赢了的次数

NumWinsVec = zeros(1, NumIterations);

for ii = 1:NumIterations

points = sum(randi(6, 1, 2));     %掷2颗骰子,算总数

switch points

case {3, 11}                    %如果是3, 11点

NumWins = NumWins + 1;        %赢的次数加1

case {4, 5, 6, 8, 9, 10}        %如果是4,5,6,8,9,10点

flag = false;                 %初始化flag,flag==true时本轮结束

while ~flag

newPoints = sum(randi(6, 1, 2)); %掷2颗骰子,算总数

switch newPoints

case 7                     %如果新的点数是7

NumWins = NumWins + 1;   %赢的次数加1

flag = true;             %本轮结束

case points                %如果新的点数等于本轮第一次的点数

flag = true;             %本轮结束(赢的次数不变)

end

end

end

NumWinsVec(ii) = NumWins;          %记下本轮结束后总共赢的次数

end

WinPrecentage = NumWinsVec / (1:NumIterations); %全部结束后算概率

figure; plot(1:NumIterations, WinPrecentage);    %画图

以上就是关于如何写一个 Javascript 骰子程式全部的内容,包括:如何写一个 Javascript 骰子程式、用C++编写骰子程序、微信里面摇骰子怎么玩等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9848529.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存