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

更新时间:2020-09-19 来源:企业管理范文 点击:

【www.feic31.com--企业管理范文】

比如连连看的数据生成。

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

  //生成地图的类

  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

本文来源:http://www.feic31.com/qiyewenhua/74331.html

为您推荐

flash player_FLASH绘制逼真土豆

本教程中我们用Flash 8的绘图功能描绘一幅精致的矢量图像——逼真土豆。步骤简单易操作,而且效果非常棒。  首先让我们先看一下制作完成之后的效果,如图1所示。第一步:创建虚拟[db:cate]

2020-09-19 08:28:43   flash动画   flash是什么软件  

flash教你制作网站|FLASH教你制作卡通MM眨眼睛动画

前些天看到一张可爱的卡通娃娃图,发现其线条很简明,就画了个大家一起练习~开始开始,今天不说废话了~先来看下最后效果:打开Flash,新建一个空白的Flash文档。首先来画帽子~选择线条工具,先在场景中[db:cate]

2020-09-19 08:28:43   用flash制作动画   flash怎么制作动画  

用flash制作动画|FLASH制作悠闲来喝茶

一、打开Flash,新建一个空白文档,设置下背景色,我这里设置的是绿色,你可以根据你的喜好去设置哈~ 然后按CTRL+F8新建一个影片剪辑,命名为茶。二、开始画茶杯(因为刚新建影片剪辑了,所以这会应该[db:cate]

2020-09-19 08:28:43   flash怎么制作动画  

flash player|FLASH底片特效的制作

在AS3中显示对象都有一个transform属性,设置这个属性可以改变显示对象的大小,旋转,颜色等特性 transform属性还有它自已的属性, 其中的colorTransform属性就可以改变显示对[db:cate]

2020-09-19 08:28:43   flash动画   flash是什么软件  

ppt绘图功能_FLASH绘图功能制作奶瓶标志

随着flash的发展,现在已经到了CS3的时代,而且对于AS的支持一带比一带强,可是大家(特别是新手)可能会忽略了一点,其实flash最开始是用来做动画的软件,他也有一定的绘图能力,因此为大家收集了不[db:cate]

2020-09-19 08:28:43