参考:
DiceClass
原作者:
hexagonstar : http://www.hexagonstar.com/
详情:
http://bbs.actionscript3.cn/thread-2044-1-1.html
程序结构:
Dice+ArrayUtil+NumberUtil,全静态类
个人评论:
NumberUtil内数值方面的是最值得借鉴的部分。
由于目前本人Dice 需要应用于DND System中,所以改变了下结构和随机算法(目的在于工厂化生产Dice,以及Dice随机分布算法抽出方便以后采用不同的随机分布算法。)
- //系统结构伪码
- Dice implements IDice;
- RandomSystem implements IRandomSystem
- Random48 extends RandomSystem;
- interface IRandomSystem {
- function random(min:Number, max:Number):Number;
- function randomByRound(min:Number, max:Number,round:int):Array;
- }
- interface IDice {
- function get sided():int;
- function roll(round:int, randomSystem:IRandomSystem):DiceArrayList;
- function toString():String
- }
- class DiceArrayList extends com.xintend.as3.dnd.core.ArrayCollection {
- public function DiceArrayList(data:Array ) {
- }
- public function get average():int { }
- public function get max():int { }
- public function get min():int { }
- public function get sum():int { }
- protected function verifyInt():void {}
- }
(测试类):
- package {
- import com.xintend.as3.dnd.base.dice.Dice;
- import com.xintend.as3.dnd.util.Random48;
- import com.xintend.as3.dnd.util.RandomSystem;
- import flash.display.Sprite;
- public class Main extends Sprite {
- public function Main(){
- var d1:Dice = new Dice(4);
- trace(d1.roll(100,new Random48()))
- trace(d1.roll(100,new RandomSystem()))
- }
- }
- }
测试图(结构在output窗口):
再次感谢hexagonstar.com开源的DiceClass中的48位线性同余算法