AS3.0 扑克牌乱序排列法洗牌

package
{

    /*
     *@ClassName:package::PokerMain
     *@Intro:这是一个初始化1-52扑克牌,然后进行乱序排列进行洗牌;
     *@Author:非若
     *@Date:2015.07.22
     *@LanguageVersion:ActionScript 3.0
     *
     */
    import flash.display.Sprite;

    public class PokerMain extends Sprite
    {
        //设置扑克牌总数
        private var NUM:Number = 52;

        public function PokerMain()
        {
            //扑克洗牌:
            init_Shuffle();
        }
        private function init_Shuffle():void
        {
            var temp:Object = null;
            var _pokers:Vector.<Object >  = get_Poker();

            for (var m:uint=0; m<NUM; m++)
            {
                var n:uint = Math.random() * NUM;
                temp = _pokers[m];
                _pokers[m] = _pokers[n];
                _pokers[n] = temp;
                trace(m+"--:--"+_pokers[m].name+"<|>"+_pokers[m].style);
            }
        }
        private function get_Poker():Vector.<Object >
        {
            //创建扑克牌对象池
            var POKER:Vector.<Object>=new Vector.<Object>();
            var _name:String = "";
            var _style:String = "";

            for (var r:uint=0; r<NUM; r++)
            {
                var Poker:Object = {name:null,style:null};
                var n:uint=uint((r-0.3)/4);
                var m:uint=uint((r-1)%4);

                switch (m)
                {
                    case 0 :
                        {
                            _style = "红桃";

                        };
                        break;
                    case 1 :
                        {
                            _style = "黑桃";

                        };
                        break;
                    case 2 :
                        {
                            _style = "方块";

                        };
                        break;
                    case 3 :
                        {
                            _style = "梅花";

                        };
                        break;
                    default :
                        {
                            _style = "未知";

                        };
                        break;
                }

                switch (n)
                {
                    case 0 :
                        _name = "K";
                        break;
                    case 1 :
                        _name = "A";
                        break;
                    case 11 :
                        _name = "J";
                        break;
                    case 12 :
                        _name = "Q";
                        break;
                    default :
                        _name = String(n);
                        break;
                }
                Poker.name = _name;
                Poker.style = _style;
                POKER.push(Poker);
            }
            return POKER;
        }

    }

}
时间: 2024-12-28 17:39:57

AS3.0 扑克牌乱序排列法洗牌的相关文章

Shell脚本实现乱序排列文件内容的多种方法(洗牌问题)

洗牌问题:洗一副扑克,有什么好办法?既能洗得均匀,又能洗得快?即相对于一个文件来说怎样高效率的实现乱序排列? ChinaUnix 确实是 Shell 高手云集的地方,只要你想得到的问题,到那里基本上都能找到答案.r2007给出了一个取巧的方法,利用 Shell 的 $RANDOM 变量给原文件的每一行加上随机的行号然后根据这个随机行号进行排序,再把临时加上去的行号给过滤掉,这样操作之后得到的新文件就相当于被随机“洗”了一次: while read i;do echo "$i $RANDOM&qu

10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。

题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数.内存限制为 2G.只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存). 关于中位数:数据排序后,位置在最中间的数值.即将数据分成两部分,一部分大于该数值,一部分小于该数值.中位数的位置:当样本数为奇数时,中位数=(N+1)/2 ; 当样本数为偶数时,中位数为N/2与1+N/2的均值(那么10G个数的中位数,就第5G大的数与第5G+1大的数的均值了). 分析:明显是一道工

在一个文件中有10G个整数,乱序排列,要求找出中位数

 题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数.内存限制为 2G.只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存). 关于中位数:数据排序后,位置在最中间的数值.即将数据分成两部分,一部分大于该数值,一部分小于该数值.中位数的位置:当样本数为奇数时,中位数=(N+1)/2 ; 当样本数为偶数时,中位数为N/2与1+N/2的均值(那么10G个数的中位数,就第5G大的数与第5G+1大的数的均值了). 分析:明显是一道

shuf乱序排列

如何从文件中随即选取1000行内容呢?我们可以使用shuf命令 shuf [file] | head -n 1000 其中,shuf会读取file中的内容,并生成乱序的排列,进而使用head命令,取出前1000行 shuf乱序排列

js数组乱序输出 数组乱序排列

网上看的数组乱序输出,要么不合实际,要么代码繁琐.自己试了下,希望能给大家带来帮助. 重要思想也是Math.random*arr.length随机下标,然后删除取到的元素,继续随机下标. //将数组乱序输出 var arr = [1,2,3,4,5,6,7,8,9,10]; var newArr = []; for(var i=0; i<arr.length; i++){ var index = Math.floor(Math.random()*arr.length);//随机下标 newArr

从10G个数中找到中数在一个文件中有10G个整数,乱序排列,要求找出中位数。内存限制为2G

不妨假设10G个整数是64bit的.2G内存可以存放256M个64bit整数.我们可以将64bit的整数空间平均分成256M个取值范围,用2G的内存对每个取值范围内出现整数个数进行统计.这样遍历一边10G整数后,我们便知道中数在那个范围内出现,以及这个范围内总共出现了多少个整数.如果中数所在范围出现的整数比较少,我们就可以对这个范围内的整数进行排序,找到中数.如果这个范围还可以采用同样的方法将此范围再次分成多个更小的范围(256M-228,所以最多需要3次就可以将此范围缩小到1,也就找到了中数)

shell实现洗牌随机

洗牌问题: 洗一副扑克,有什么好办法?既能洗得均匀,又能洗得快?即相对于一个文件来说怎样 高效率的实现乱序排列? 关于洗牌问题,其实已经有了一个很好的shell解法,这里另外给三个基于AWK的方法, 有错误之处还请不吝指出. 方法一穷举: 类似于穷举法,构造一个散列来记录已经打印行出现行的次数,如果出现次数多于一 次则不进行处理,这样可以防止重复,但缺点是加大了系统的开销. awk -v N=`sed -n '$=' data` ' BEGIN{ FS="\n"; RS="&

1965: [Ahoi2005]SHUFFLE 洗牌

1965: [Ahoi2005]SHUFFLE 洗牌 Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 408  Solved: 240[Submit][Status][Discuss] Description 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度过相当长的一段时间,小联提议用扑克牌打发长途旅行中的无聊时间.玩了几局之后,大家觉得单纯玩扑克

bzoj1965 [Ahoi2005]SHUFFLE 洗牌

Description 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动. 由于Samuel星球相当遥远,科学家们要在飞船中度过相当长的一段时间,小联提议用扑克牌打发长途旅行中的无聊时间.玩了几局之后,大家觉得单纯玩扑克牌对于像他们这样的高智商人才来说太简单了.有人提出了扑克牌的一种新的玩法. 对于扑克牌的一次洗牌是这样定义的,将一叠N(N为偶数)张扑克牌平均分成上下两叠,取下面一叠的第一张作为新的一叠的第一张,然后取上面一叠的第一张作为新的一叠