麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 辦公 > Flash > 正文

[FLASH基礎教程合集一]連連看小游戲地圖數據簡單生成的AS代碼

2020-01-28 14:00:51
字體:
來源:轉載
供稿:網友

  比如連連看的數據生成。

  比較簡單,這里不包括判斷是否一定有解的部分,只是一個隨意生成地圖(給定行,列,每種圖片的生成個數),沒有思路的可以參考一下,高手也可以指正。

  //生成地圖的類

  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<mapParam.numberPerType;j++) {

                      types.addItem(i);

                  }

                 

              }

             

             

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

              for (var yI:int = 0; yI<yushu;yI++) {

                  types.addItem(1);

              }

          }

         

  //隨機生成地圖

          public function make():Array {

              flags = new ArrayCollection();

              for(var i:int=0;i<types.length;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<mapParam.cols;col++){

                  rowData.push(0);

              }

              rowData.push(0);

              mapData.push(rowData);

              for(var row:int = 0;row<mapParam.rows;row++){

                  rowData = new Array();

                  rowData.push(0);

                  for(col = 0;col<mapParam.cols;col++){

                      rowData.push(getType());

                  }

                  rowData.push(0);

                  mapData.push(rowData);

              }

              rowData = new Array();

              rowData.push(0);

              for(col = 0;col<mapParam.cols;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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成年人高清视频在线观看 | 国产免费成人 | 欧美粗暴analvideos | 26uuu成人人网图片 | 国产精品99久久久久久久女警 | 19禁国产精品福利视频 | 国产中出在线观看 | 91看片免费版 | 欧美18xxxx | 亚洲99| 深夜福利视频免费观看 | 可以免费看av | 亚洲一区久久 | 姑娘第四集免费看视频 | 久久久大片 | 369看片你懂的小视频在线观看 | 成人 日韩| lutube成人福利在线观看污 | 加勒比色综合 | 黄色网址在线播放 | 黄色毛片视频在线观看 | 久久99久久99免费视频 | 久久精品无码一区二区三区 | 久久欧美亚洲另类专区91大神 | 康妮卡特欧美精品一区 | 性生活视频一级 | 一区二区三区欧美在线观看 | 欧美一级不卡视频 | 毛片视频免费观看 | 成人wxx视频免费 | 国产伦乱视频 | 在线视频 欧美日韩 | 国产精品视频一区二区三区综合 | 午夜激情视频免费 | 久久国产精品电影 | 国产一级爱c视频 | 精品国产91久久久久久浪潮蜜月 | 欧美日本在线播放 | 大胆在线日本aⅴ免费视频 美国黄色毛片女人性生活片 | 国产精品久久久久久久久岛 | 国产精品91在线 |