数字魔方及数组概念

作者:袖梨 2022-07-02

数字魔方(经典数据结构实例):
1.本游戏的玩法,均在本FLASH中一一介绍了,博客中不再重复:
下载地址:
http://www.flashempire.com/myfe/upload/flash/142/1410014_1195878655.swf
2.编程序的基本原则就是这个游戏玩法的原则即:
1)第一行中间是1;

2)向右1格;向上1格;

3)上边出界,去下边;

4)右边出界,去左边;
5)
没数占着,就填数;

6)有数占着,坐屁股下。

3.下面是矩阵计算的程序:
var n:Number =
5;
//矩阵的行列数为n*n;

var matrix:Array = new
Array();
//因为AS中不能直接调用二维数组,所以我们先申请一个一维数组;


for (var i = 0;
i
matrix[i] = new Array();

for (var j = 0; j
  matrix[i][j] = i*n+j;

}

}
//上面这些代码的作用:把一维数组变为二维数组(算是一段功能代码);

for (var i =
0; i
for (var j = 0; j
  matrix[i][j] = 0;

}

}
//二维数组初始化,使matrix中的每个元素都为0;


var movei:Number = 0;

var movej:Number = int(n/2);

matrix[movei][movej] =
1;
//这里完成了总体原则的第一步[第一行中间是1];

var counter:Number =
2;
//计数器,准备放入下一个数2

for (i=0; i i++) {

for (j=0; j
  tempi = movei--;

  tempj =
movej++;
  //总体原则第2步[向右1格;向上1格]


  if (movei<0) {

   movei =
n-1;
   //总体原则第3步[上边出界,去下边]


  }

  if (movej>n-1) {

   movej =
0;
   //总体原则第4步[右边出界,去左边]


  }

  if (matrix[movei][movej] == 0)
{

   matrix[movei][movej]
=
counter++;
   //总体原则第5步[没数占着,就填数]


  } else {

   movei =
tempi+1;

   movej =
tempj;

   matrix[movei][movej]
=
counter++;
   //总体原则第6步[有数占着,坐屁股下]


  }

}

}
//------------最后输出矩阵看看一看--------------


for (i=0; i
trace(matrix[i]);

}




Flash充电1:在AS中数组的下标和C语言一样,都是从0开始的。
下面看一个实例:
var
myarray:Array=["CAT","DOG","PIG","BIRD","MONKEY"];


trace(myarray[3]);
//测试后显示BIRD



Flash充电2:在数据结构中还有两种概念,一个是堆栈,一个是队列。
在AS中这两个概念同样也是用数组来完成的。
堆栈(后进先出):
1.出栈:
pop():提取最后一个元素后,删除该元素
var
myarray:Array=["CAT","DOG","PIG","BIRD","MONKEY"];
trace(myarray.pop())
//显示MONKEY,后删除最后一个元素"MONKEY"
2.入栈:
push():在最后一个元素后,插入一个元素
var
myarray:Array=["CAT","DOG","PIG","BIRD","MONKEY"];
myarray.push("FISH")
trace(myarray)
//显示CAT,DOG,PIG,BIRD,MONKEY,FISH,在最后一个元素后面加一个"FISH"

队列(先进先出):
shift():提取第一个元素后,删除该元素
var
myarray:Array=["CAT","DOG","PIG","BIRD","MONKEY"];
trace(myarray.shift())
//显示CAT,并删除第一个元素"CAT"

Flash充电3:数组常用操作。
var
myarray:Array=["CAT","DOG","PIG","BIRD","MONKEY"];
trace(myarray.length)
//显示5,获取数组长度;
trace(myarray.join("+"));
//显示CAT+DOG+PIG+BIRD+MONKEY,把数组间用"+"连接,当然也可设为其它符号
trace(myarray.reverse());
//显示MONKEY,BIRD,PIG,DOG,CAT,数组倒排序

教程到此结束
QQ:147461195(FL基理大师)

相关文章

精彩推荐