下面这个函数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++编写骰子程序、微信里面摇骰子怎么玩等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)