国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 辦公 > Flash > 正文

flash 連連看小游戲地圖數據簡單生成的AS代碼

2020-07-17 13:06:16
字體:
來源:轉載
供稿:網友

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


復制代碼
代碼如下:
//生成地圖的類
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

以上就是flash 連連看小游戲地圖數據簡單生成的AS代碼,謝謝大家閱讀!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嵊州市| 巴东县| 城步| 齐齐哈尔市| 贺兰县| 高台县| 舒城县| 巍山| 疏附县| 临夏县| 仁化县| 西峡县| 鸡西市| 牟定县| 利川市| 钟山县| 鲁甸县| 交城县| 蓬安县| 道真| 共和县| 奎屯市| 盐津县| 邛崃市| 千阳县| 剑川县| 宜城市| 自贡市| 马鞍山市| 金门县| 铁力市| 吉木萨尔县| 宁波市| 南和县| 贵南县| 莒南县| 石首市| 永善县| 抚顺市| 大同市| 台南市|