数字魔方及数组概念

数字魔方(经典数据结构实例):
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<n; i++) {

matrix[i] = new Array();

for (var j = 0; j<n; j++) {

  matrix[i][j] = i*n+j;

}

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

for (var i =
0; i<n; i++) {

for (var j = 0; j<n; 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<n;
i++) {

for (j=0; j<n; 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<n; 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基理大师)

时间: 2024-07-28 14:52:32

数字魔方及数组概念的相关文章

[AS功能代码教程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:Numbe

求数字在排序数组中出现的次数

题目描述: 统计一个数字在排序数组中出现的次数. 输入: 每个测试案例包括两行: 第一行有1个整数n,表示数组的大小.1<=n <= 10^6. 第二行有n个整数,表示数组元素,每个元素均为int. 第三行有1个整数m,表示接下来有m次查询.1<=m<=10^3. 下面有m行,每行有一个整数k,表示要查询的数. 输出: 对应每个测试案例,有m行输出,每行1整数,表示数组中该数字出现的次数. 样例输入: 8 1 2 3 3 3 3 4 5 1 3 样例输出: 4 我做这道题,是先用二

如何求数字在排序数组中出现的次数

题目: 统计一个数字在排序数组中出现的次数. 通过折半查找, 找到首次出现的位置, 再找到末次出现的位置, 相减即可. 时间复杂度O(logn). 代码: /* * main.cpp * * Created on: 2014.6.12 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/ #include <stdio.h> #include <stdlib.h> #include <string.h> int GetFirstK

详解Lua中的数组概念知识

  这篇文章主要介绍了Lua中的数组概念知识,是Lua入门学习中的基础,需要的朋友可以参考下 数组是有序的对象的装置,它可以是包含含有多个行和列的行或多维阵列的集合的单个二维数组. 在Lua中,数组是使用索引表与整数实现的.数组的大小是不固定的,它可以增长基于我们需要受存储器限制. 一维数组 一维数组可以用一个简单的表结构来表示,可以初始化,使用一个简单的for循环读取.如下例子所示. 代码如下: array = {"Lua", "Tutorial"} for i=

visual studio 2010-如何用数组储存依次一串数的每个数字,如何数组中计数数字数

问题描述 如何用数组储存依次一串数的每个数字,如何数组中计数数字数 比如输入1010,怎么做让数组自动储存其中每个数,数组的数据类型应该是什么,然后如何统计数组里已经输了四个数?新手,谢谢. 解决方案 不用数组就可以了,我是用java的程序员,java中String,接收后,有自己的length属性,表示这个字符串有几个字符 解决方案二: 不用数组就可以了,我是用java的程序员,java中String,接收后,有自己的length属性,表示这个字符串有几个字符 解决方案三: #include

java连连看数字换图片数组越界问题

问题描述 java连连看数字换图片数组越界问题 Jbutton 按钮数字换成图片后,只有部分按钮有图片,有的按钮上的图片不能显示.提示说数组越界,但具体不知道怎么回事.按钮数组是6*5,存储按钮位置的数组是8*7,调用图片的代码private static Icon[] icons = new ImageIcon[6*5]; private static final String imgDir=""d:/shuiguo"";static{ try{ File dir

剑指offer系列之三十六:数字在排序数组中出现的次数

题目描述 统计一个数字在排序数组中出现的次数. 因为是排序数组,自然联想到二分查找算法,这样我们在二分的时候可能会获取多个相同的数字.就是说,中间那个位置的值可能刚好是统计的那个值,假设为k.那么k还有可能在前面或者后面出现,在这个基础上继续二分当然也是可以的,如果能够在使用二分查找算法的时候统计出第一个k和最后一个k出现的位置,那么k出现的次数自然就确定了.第一个k出现的位置,可以使用二分查找算法,如果中间位置的值刚好是k,那么继续比较中间位置前面位置的值是不是也是k,如果不是那么该中间位置就

《ADOBE PREMIERE PRO CS4标准培训教材》——第1章 数字视频基础知识 1.1 数字视频的基本概念

第1章 数字视频基础知识 学习要点 掌握数字视频的基本概念(包括帧速率.像素宽高比和色彩模式等) 掌握世界上通用的电视制式(包括NTSC和PAL),以及标清(SD)和高清(HD)的定义 掌握数字视频技术实际应用领域的相关知识(包括DVD和流媒体),及其发展方向 了解数字影视剪辑的基本理论,深入体会蒙太奇与剪辑的关系 1.1 数字视频的基本概念 从动画诞生的那时起,人们就不断探求一种能够存储.表现和传播动态画面信息的方式.在经历了电影和模拟信号电视之后,数字视频技术迅速发展起来,伴随着不断扩展的应

《ADOBE PREMIERE PRO CC标准培训教材》——1 数字视频基础知识 1.1 数字视频的基本概念

1 数字视频基础知识 学习要点 掌握数字视频的基本概念(包括帧速率.像素宽高比和色彩模式等) 掌握世界上通用的电视制式(包括NTSC和PAL),以及标清(SD).高清(HD)乃至2K和4K的定义 掌握数字视频技术实际应用领域的相关知识(包括DVD和流媒体)及其发展方向 了解数字影视剪辑的基本理论,深入体会蒙太奇与剪辑的关系 1.1 数字视频的基本概念 从动画诞生那时起,人们就不断探求一种能够存储.表现和传播动态画面信息的方式.在经历了电影和模拟信号电视之后,数字视频技术迅速发展起来,伴随着不断扩