用户名: 密码: 验证码: 注册           网站地图 高级搜索 RSS订阅 收藏本站
山东十七地市站长联盟信息: 济南 青岛 淄博 枣庄 东营 烟台 潍坊 济宁 泰安 威海 日照 莱芜 临沂 德州 聊城 滨州 菏泽      
您的位置:主页>设计在线>网页设计>

游戏中牌类取出顺子的算法

[ 来源: | 作者: | 更新日期:2007-11-30 16:07:38 | 评论 0 条 | 我要投稿 ]
//一直忙啊,都好长时间没写BLOG了,今天刚写到一个自动从一套牌中取出顺子的算法就贴上来吧。
//以下用斗地主作为例子: 把代码贴到FLASH中导出即可看到效果,只限FLASH8  AS2版本
散牌组 = [[17, 4], [12, 3], [15, 0], [14, 2], [14, 3], [10, 3], [5, 3], [11, 3], [12, 1], [3, 0], [8, 0], [15, 3], [6, 3], [13, 1], [14, 1], [7, 2], [4, 3], [10, 1], [15, 2]];
散牌组.sortOn(0, 1 | 16);
顺子牌组 = new Array();
//建立调试点数
调试点数 = new Array();
for (var i = 0; i<散牌组.length; i++) {
    调试点数.push(散牌组[i][0]);
}
trace("原牌组="+调试点数);
for (var i = 0; i<散牌组.length-5; i++) {
    //用来记录合格的编号
    var 编号数组 = new Array();
    //追加值用来判断如果成对的跳跃判断数
    var 跳跃值 = 0;
    for (var j = 0; j<散牌组.length-i; j++) {
        //trace(散牌组[i+j][0]+"=="+(散牌组[i+j+1][0]-1+跳跃值)+" 跳跃值="+跳跃值); 字串9
        if (散牌组[i+j][0]+跳跃值 == 散牌组[i+j+1][0]+跳跃值 && 散牌组[i+j+1][0]<=15) {
            跳跃值++;
        } else if (散牌组[i+j][0]+跳跃值 == 散牌组[i+j+1][0]-1+跳跃值 && 散牌组[i+j+1][0]<=15) {
            编号数组.push(i+j);
        } else {
            break;
        }
    }
    if (编号数组.length>=5) {
        var 临时牌组 = new Array();
        var 减编号 = 0;
        for (var j = 0; j<编号数组.length; j++) {
            var 删除值 = 散牌组.splice(编号数组[j]-减编号, 1);

字串9


            减编号++;
            临时牌组.push(删除值[0]);
        }
        顺子牌组.push(临时牌组);
        i = 0;
    }
}
trace("抽取的组队数="+顺子牌组.length);
trace("=============处理取牌后的结果=========");
for (var n = 0; n<顺子牌组.length; n++) {
    调试点数 = new Array();
    for (var i = 0; i<顺子牌组[n].length; i++) {
        调试点数.push(顺子牌组[n][i][0]);
    }
    trace("顺子牌组"+n+"="+调试点数);
}
调试点数 = new Array();
for (var i = 0; i<散牌组.length; i++) {
    调试点数.push(散牌组[i][0]);
}
trace("抽取后剩下的散牌="+调试点数);
Tags:算法 取出 游戏 var 调试 点数 跳跃 编号 顺子 for .length
您的评论
用户名:新注册) 密码: 匿名评论 [所有评论]

·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为