一个随机算法
as3吧
全部回复
仅看楼主
level 1
魔本是神 楼主
很有用的
2012年12月23日 16点12分 1
level 1
魔本是神 楼主
package controls
{
import LiCode.basic.LcMath;
import flash.utils.getTimer; public class RandomReel
{
private static const REEL:Array =
[0,0,0,1,1,1,2,2,2,3,3,4,4,5,5,6,6,7,7,8,9,10];
private static const LEN:int = REEL.length;
/**
*
* function recall(Reel:Array):void
* @param Recall
*
*/
public function RandomReel(Recall:Function)
{
var reel:Array;
var c:int = 0;
var t:int = getTimer();
do
{
reel = spawnReel();
c++;
}while( checkReel( reel ) == false );
trace( "loop = " + c + " time = " + ( getTimer() - t ) + " reel = ["+ reel + "]" );
Recall( reel );
}
private function spawnReel():Array
{
var list:Array = LcMath.confuseRank( LEN );
var reel:Array = [];
for(var i:int=0;i<LEN;i++)
{
reel[i] = REEL[ list[ i ] ];
}
return reel;
}
private function checkReel(Reel:Array):Boolean
{
var lIdx:int = -1;
var hIdx:int = -1;
var sIdx:int = -1;
var lNum:int = 0;
var hNum:int = 0;
for(var i:int=0;i<LEN;i++)
{
var val:int = Reel[i];
if( val < 4 )
{
if( lIdx==i-1 )
{
if( lNum==2 )
{
return false;
}
else
{
lNum++;
}
}
else
{
lNum = 1;
}
lIdx = i;
}
else if( val < 8 )
{
if( hIdx==i-1 )
{
if( hNum==2 )
{
return false;
}
else
{
hNum++;
}
}
else
{
hNum = 1;
}
hIdx = i;
}
else
{
if( sIdx!=-1 && sIdx==i-3)
{
return false;
}
else
{
sIdx = i;
}
}
}
return true;
}
}
}
2012年12月23日 16点12分 2
level 8
用在什么地方?
2012年12月26日 00点12分 3
level 1
魔本是神 楼主
赌博
2012年12月26日 02点12分 4
1