您所在的位置: 首页 > 教程首页 > 媒体工具 > 连连看小游戏地图数据简单生成的AS代码

连连看小游戏地图数据简单生成的AS代码

来源:互联网 | 编辑:啤酒 | 时间:2013-07-16 20:33:14 | 阅读:16777215

比如连连看的数据生成。

比较简单,这里不包括判断是否一定有解的部分,只是一个随意生成地图(给定行,列,每种图片的生成个数),没有思路的可以参考一下,高手也可以指正。

  //生成地图的类

  package src.ww.llk.map

  {

      import mx.collections.ArrayCollection;


      public class MakeMap

      {

          private var mapParam:MapParam = null;

          private var types:ArrayCollection = null;

  //保证取得的数据不被重取

          private var flags:ArrayCollection = null;

          public function MakeMap(param:MapParam):void {

              mapParam = param;

              initData();

          }


          // 初始化必要的数据

          private function initData():void {

              types = new ArrayCollection();

              var typeNum:int = Math.floor(mapParam.cols*mapParam.rows/mapParam.numberPerType);

              for(var i:int=1;i<=typeNum;i++) {

                  for (var j:int=0;j

                      types.addItem(i);

                  }


              }



              var yushu:int = mapParam.cols*mapParam.rows - typeNum*mapParam.numberPerType;

              for (var yI:int = 0; yI

                  types.addItem(1);

              }

          }


  //随机生成地图

          public function make():Array {

              flags = new ArrayCollection();

              for(var i:int=0;i

                  flags.addItem(i);

              }

              var mapData:Array = new Array();

              var rowData:Array = null;

              var col:int = 0;


              rowData = new Array();

              rowData.push(0);

              for(col = 0;col

                  rowData.push(0);

              }

              rowData.push(0);

              mapData.push(rowData);

              for(var row:int = 0;row

                  rowData = new Array();

                  rowData.push(0);

                  for(col = 0;col

                      rowData.push(getType());

                  }

                  rowData.push(0);

                  mapData.push(rowData);

              }

              rowData = new Array();

              rowData.push(0);

              for(col = 0;col

                  rowData.push(0);

              }

              rowData.push(0);

              mapData.push(rowData);

              return mapData;

          }


          // 随机取得单个数据

          private function getType():int {

              var ran:int=-1;

              var ret:int = 0;

              ran = randomIndex();

              var index:int = int(flags.getItemAt(ran));

              flags.removeItemAt(ran);

              ret = int(types.getItemAt(index));

              return ret;

          }


          private function randomIndex():int {

              return Math.random() * (flags.length - 1);

          }

      }

  }

  参数类,就是一个bean,

  package src.ww.llk.map

  {

      public class MapParam

      {

          public var rows:Number=0;

          public var cols:Number=0;

          public var numberPerType:int=4;

      }

  }

  测试类:

              public function test():void {

                  var param:MapParam = new MapParam();

                  param.rows = 6;

                  param.cols = 6;

                  param.numberPerType = 4;

                  var maker:MakeMap = new MakeMap(param);

                  var map:Array = maker.make();

                  for each(var rowData:Array in map) {

                      var rowStr:String = "";

                      for each(var cell:int in rowData) {

                          rowStr += cell + " ";

                      }

                      trace(rowStr);

                  }

              }

运行结果:

  0 0 0 0 0 0 0 0

  0 3 3 1 1 7 6 0

  0 6 8 9 7 9 5 0

  0 2 4 4 4 1 7 0

  0 5 8 4 9 5 8 0

  0 2 6 2 3 1 7 0

  0 6 2 5 3 8 9 0

  0 0 0 0 0 0 0 0

BannerZest Pro Mac版 V4.0
BannerZest Pro Mac版 V4.0

类型:编程软件  大小:0MB  平台:

MAC

你可能感兴趣的内容

  • 暴风影音加速播放方法教程
    暴风影音加速播放方法教程
    有的小伙伴在使用暴风影音看电视的时候,看到不喜欢的片段,想要跳过去,就可以使用暴风影音加速播放功能。那么,暴风影音怎么加速播放?今天,飞翔铭月给大家带来暴风影音加速播放教程,希望可以帮助大家。

    媒体工具

    2018-07-23

  • 暴风影音avi文件不能播放解决办法​
    暴风影音avi文件不能播放解决办法​
    在使用暴风影音来观看影片的时候,发现AVI文件的视频不能播放,这是怎么回事?下面飞翔铭月就为大家带来了暴风影音avi文件不能播的解决方法。

    媒体工具

    2018-07-23

  • 小米投屏神器使用方法教程
    小米投屏神器使用方法教程
    小米投屏神器怎么使用?很多小伙伴们都还不知道,下面52z飞翔下载小编为大家整理了小米投屏神器使用方法教程,一起来看看吧。

    媒体工具

    2018-07-11

  • 巧影视频分身制作教程
    巧影视频分身制作教程
    巧影app是一款专业媒体视频剪辑器,最近看见抖音有很多小伙伴都在玩“分身术”,大家都在问抖音分身术怎么拍?其实抖音中的分身术视频都是通过巧影app剪辑上传到抖音的,想知道巧影分身视频怎么拍?一起跟飞翔铭月来看一下巧影分身教程吧。

    媒体工具

    2018-05-30

  • 爱奇艺投屏电视设置方法教程
    爱奇艺投屏电视设置方法教程
    爱奇艺投屏电视怎么设置?很多小伙伴们都还不知道,下面52z飞翔下载小编为大家整理了爱奇艺投屏电视设置方法教程,一起来看看吧。

    媒体工具

    2018-05-25

  • qsv格式转换mp4格式图文教程
    qsv格式转换mp4格式图文教程
    很多朋友都有遇到过QSV视频文件无法打开的情况吧。今天本文主要分享一下QSV文件怎么打开,另外如果需要手机、电脑都可以轻松打开qsv文件,则还需要将QSV文件转换成MP4格式就可以了,下面具体来看看。

    媒体工具

    2018-05-14

  • 《暴风转码》翻转视频方法教程
    《暴风转码》翻转视频方法教程
    暴风转码是一款非常实用的视频转码软件,不过一些朋友使用暴风转码后发现图像被倒置了,这个时候怎么办?下面由52z飞翔小编为你带来《暴风转码》翻转视频方法教程,希望能帮助到你

    媒体工具

    2017-12-19

  • 西瓜视频登录方法详细教程
    西瓜视频登录方法详细教程
    西瓜视频是由头今日条视频更改以后的名称,不少用户还不清楚西瓜视频怎么登录?下面就和52z飞翔网小编一起来看看西瓜视频登录方法详细介绍吧!

    媒体工具

    2017-11-02

  • 步兵社区怎么注册 步兵社区账号密码分享
    步兵社区怎么注册 步兵社区账号密码分享
    步兵社区入口——是一款全新的福利看片播放神器,无需充值就可以体验vip待遇,账号密码已绿色,在线播放,还有更多的离线服务,更多的资源等你来,一键搜索!带你轻松免费观看最新伦理大片,一键下载缓存,给你高清流畅观影体验!

    媒体工具

    2017-11-02

  • 爱奇艺账号可以同时登陆吗 爱奇艺会员最多几个人使用
    爱奇艺账号可以同时登陆吗 爱奇艺会员最多几个人使用
    爱奇艺会员最多几个人使用?爱奇艺会员有一个家庭成员的设置这个可以让自己的家庭成员一起使用这个会员,浏览历史也能够不同,这个是其黄金会员的一个特权,那么如何共享呢,下面52z飞翔网小编将为大家讲解一下教程希望大家满意。

    媒体工具

    2017-05-27

热门游戏

下载声明 | 法律声明 | 版权声明 | 友情链接 | 发布软件 | 最新更新

本站为非盈利性网站,不接受任何广告。本站所有资源均由网友上传,如有侵权,请发邮件至 [email protected]

晋ICP备2024046785号-1