根据上一篇文章的代码,我们生成了合乎bingo卡片规范的数字。
但是,出现了一个新的问题即生成的文字会出现重复的情况。为了避免出现重复的情况出现,我们采用了do...while和数组的方式来重复生成数字,直到所有数字不重复为止。
代码如下:
window.οnlοad=newCard;
var usedNum = new Array(76);
function newCard(){
for(var i=0;i<24;i++)
{
setSquare(i);
}
}
function setSquare(thissquare){
var colPlace=new Array(0,1,2,3,4,0,1,2,3,4,0,1,3,4,0,1,2,3,4,0,1,2,3,4);
do{
var newNums=getNewNum()+1+colPlace[thissquare]*15;
}
while(usedNum[newNums]);
usedNum[newNums]=true;
document.getElementById("square"+thissquare).innerHTML=newNums;
}
function getNewNum() {
return Math.floor(Math.random() * 15);
}
到这里,我们就生成了一个完整的bingo卡片。快去试试效果吧!