谁能帮我解释一下 这个扑克牌代码
<script>
var array1=new Array(55);
Array.prototype.Random=function() {
for(var i=1;i <this.length;i++){
var rnd=Math.floor(Math.random()*(i+0.99999))
this[i]=this[rnd];//不太明白
this[rnd]=i;//不太明白
}
return this;
}
document.write(array1.Random())
</script>
------解决方案--------------------1。看为明白可以多看几遍
2。乱用prototype
3。上面代码洗出来的是55张牌,其中有一张白牌
附:
<html>
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 ">
<title> JK:支持民族工业,尽量少买X货 </title>
</head>
<body>
<pre>
洗牌算法:
部分代码来自:
http://community.csdn.net/Expert/topic/3858/3858964.xml?temp=.5909693
fason的回贴。
</pre>
<script language= "JavaScript ">
<!--
function getRandomArray(m,n) //得到m张牌里的n张牌 (m> =n> 0)
{
if(n==null || n==m )
return getRandomPlayCard(m);
var array1=new Array(m);
for(var i=0;i <m;i++)
array1[i]=i;
var m2=m-0.00001;
for(var i=0;i <n;i++)
{
var rnd=Math.floor(Math.random()*m2);
var swap=array1[i];array1[i]=array1[rnd];array1[rnd]=swap;
}
return(array1.slice(0,n));
}
function getRandomPlayCard(m) //洗牌
{
var array1=new Array(m);
for(var i=0;i <m;i++){
var rnd=Math.floor(Math.random()*(i+0.99999))
array1[i]=array1[rnd];
array1[rnd]=i;
}
return array1;
}
document.write(getRandomPlayCard(100)+ " <br> <br> "+getRandomArray(100,5));
-->
</script>
</body>
</html>