数字拼图游戏

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

安徽新华学院计科软件测试方法和技术

课程设计任务书

一、设计题目:数字拼图游戏(出题人:於世芳)

说明:一个拼图游戏。

二、目的与要求

1.目的

培养学生综合利用JAVA语言进行程序设计的能力,主要是培养学生利用JAVA的标准控件进行应用程序设计的技能。

2.基本要求

⏹能够实现拼图功能。

⏹可以通过初始化任意次的重新游戏。

⏹游戏完成后做出相应提示.

3.创新要求

在基本要求达到后,可以参考其他拼图游戏,进行创新设计,创新方向提示如下:

★将数字换成图片。

★可以记录游戏者成绩并排行

★增加暂停功能或窗口最小化时暂停计时。

三、设计方法和基本原理

1.问题描述

程序界面见题图。

2.问题的解决方案

①设计程序界面

因为用的全是基本控件,界面设计没有什么难度,这里涉及到动态添加控件数组,可参见课本控件数组一节内容。

②编写代码

代码包括事件处理过程和功能函数,还有必要的声明。变量声明部分声明本程序所需要的变量和数组。

事件处理包括下面的主要事件:

Form_Load()

作一些初始化的工作。主要是设定初始等级,动态添加控件数组。

Private Static Sub cmdButton_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)

游戏运行。

cmd_Click( )

游戏初始化

其它功能的处理不再一一描述了

四、主要技术问题的描述

虽然界面操作有些复杂,但难点显然并不在于此。下面是初始化设置中的一段程序:package {

import flash.display.Sprite;

import flash.events.MouseEvent;

import flash.events.Event;

import flash.text.TextField;

//import mx.controls.Alert;

public class Main extends Sprite{

var arr:Array=new Array(1,2,3,4,5,6,7,8);

var ditu:Array=new Array(new Array(3),new Array(3),new Array(3));

var pailie:Array=new Array(new Array(0,0),new Array(40,0),new Array(80,0),

new Array(0,40),new Array(40,40),new Array(80,40),

new Array(0,80),new Array(40,80),new Array(80,80));

var rectObject:Array=new Array();

//

public function Main() {

// constructor code

init();

}

public function init():void{

var kuang:Sprite=new Sprite();

kuang.graphics.lineStyle(0,0x000000);

kuang.graphics.drawRect(0,0,120,120);

kuang.graphics.endFill();

kuang.x=200;

kuang.y=150;

addChild(kuang);

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

for(var a=0;a<3;a++){

ditu[i][a]=1;

}

}

for(var b=0;b<8;b++){

var arrindex:uint=Math.floor(Math.random()*arr.length);

var arrvalue:uint=arr[arrindex];

arr.splice(arrindex,1);

var pailieindex:uint=Math.floor(Math.random()*pailie.length);

var pailievalue:Array=pailie[pailieindex];

pailie.splice(pailieindex,1);

var rect:RectShape=new RectShape(arrvalue);

rect.x=pailievalue[0];

rect.y=pailievalue[1];

rect.X=rect.x/40;

rect.Y=rect.y /40;

ditu[rect.x /40][rect.y/40]=0;

rect.mouseChildren=false;

rect.buttonMode=true;

rect.addEventListener(MouseEvent.CLICK,test);

kuang.addChild(rect);

rectObject.push(rect);

}

}

public function test(evt:Event):void{

var zuo:uint = evt.target.X - 1;

var you:uint = evt.target.X + 1;

var shang:uint = evt.target.Y - 1;

var xia:uint = evt.target.Y + 1;

//trace("当前的方块号码="+evt.target.num_txt.text);

if (zuo != 4294967295 && ditu[zuo][evt.target.Y] == 1)//4294967295 ????

{

ditu[evt.target.X][evt.target.Y] = 1;

ditu[zuo][evt.target.Y] = 0;

evt.target.X = zuo;

evt.target.x -= 40;

}

else if (you !=3 &&ditu[you][evt.target.Y]==1)

{

相关文档
最新文档