当前位置:文档之家› 魔板游戏Java课程设计报告

魔板游戏Java课程设计报告

魔板游戏Java课程设计报告
魔板游戏Java课程设计报告

Java 程序设计课程设计报告

( 2011 -- 2012 年度第 1 学期)

魔板游戏

专业 计算机科学与技术

学生姓名 班级 学

指导教师 完成日期

魔板游戏

目录

目录 (2)

1 概述 (1)

1.1 课程设计目的 (1)

1.2 课程设计内容 (1)

2 系统需求分析 (1)

2.1 系统目标 (1)

2.2 主体功能 (2)

2.3 开发环境 (2)

3 系统概要设计 (2)

3.1 系统的功能模块划分 (2)

3.2 系统流程图 (4)

4系统详细设计 (6)

5 测试 (7)

5.1 测试方案 (7)

5.2 测试结果 (7)

6 小结 (9)

参考文献 (11)

附录 (12)

附录1 源程序清单 (12)

附录1 1.1PUZZLEFRAME模块源程序 (12)

附录1.2 PUZZLEPAD模块源程序 (14)

附录1.3 SQUAREPOINT类模块源程序 (21)

Java程序设计课程设计报告

魔板游戏

1 概述

1.1 课程设计目的

本次课程设计是通过Java语言编制一个魔板游戏,它是一款经典的智力游戏。而Java语言是当今较为流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。这次课程设计,还有利于加深对Java课程的进一步了解,也可以巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使学生通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法。

1.2 课程设计内容

设计GUI界面的魔板游戏程序。

2 系统需求分析

2.1 系统目标

(1)设计一款经典的智力游戏,魔板游戏。魔板由3*3或4*4个格子组成。对于3*3魔板,在前8个格子里随即放置8个编号1-8的方块,最后一个格子是未放置方块的空格子;对于4*4的魔板,在前15格子里随即放置15编号1-15的方块,最后一个格子是未放置方块的空格子。

(2)用鼠标单击任何与空格子水平或垂直相邻的方块可以把该方块移入空格子,而当前方块移动之前所在的格子成为空格子。通过不断地移动方块可以将方块按数字顺序排好。

(3)魔板游戏也可以使用图像来代替数字。例如,对于4*4的魔板,将一幅图像分成4*4幅小图像,除去最后一幅小图像(图像的右下角),将其余各幅小图像打乱顺序后放在魔板方块上,最终目标是通过移动方块恢复原始图像(不包括图像的右下角)。

(4)魔板游戏分为两个级别,用户可以通过界面上提供的菜单来选择“初级”或“高级”两个级别。对于“初级”级别,魔板由3*3个格子组成;对于“高级”级别,魔板由4*4个格子组成

魔板游戏

2.2 主体功能

此魔板游戏是一个应用程序(Java Application),用户通过点击游戏界面上的按钮或菜单栏选项魔板游戏控制游戏的初级、高级、等来开始游戏。此游戏分散的图片或数字的移动规则是小方格会朝着空位置方向移动,玩家先在界面上选择图像玩法或数字玩法,然后通过鼠标左键点击菜单栏选项魔板游戏选择游戏的初级、高级,然后通过鼠标左键点击开始玩按钮图片或数字会自动随机的排列,用鼠标左键点击要移动的图片或数字,移动时,预备移往的图片或数字旁边必须有可供移往的空位置。魔板游戏菜单的功能是玩家在游戏中任何时候都可以点击进入设置游戏的等级,在两个单选按钮中,程序为玩家提供了图像玩法和数字玩法两种不同的风格,玩家可以根据自己喜好选择自己喜欢的图片或数字开始魔板游戏。

2.3 开发环境

操作系统:Microsoft Windows XP/7

开发工具:jdk1.6.0_22 、MyEclipse8.5

3 系统概要设计

3.1 系统的功能模块划分

在设计魔板游戏时,需要编写3个java源文件:PuzzleFrame.java、PuzzlePad.java、SquarePoint.java。

魔板游戏除了需要编写的上述3个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JMenuItem、JButton和JRadioButton等类,和一个图像文件。

3.1.2 PuzzleFrame.java类模块

PuzzleFrame类负责创建魔板游戏的主窗口,该类含有main方法,程序从该类开始。PuzzleFrame类的成员变量中有4种重要类型的对象:PuzzlePad、JmenuItem、JRadioButton和JButton。PuzzleFrame类的主要成员的作用将在后面的详细设计中阐述,PuzzleFrame类主要成员变量(属性)和主要方法如表1,2所示。

Java程序设计课程设计报告

成员变量描述变量类型名称

魔板

开始游戏的按钮选择玩法

选择级别

PuzzlePad

Jbutton

JradioButton

JmenuItem

PuzzlePad

开始

数字玩法,图像玩法

初级,高级

表1 PuzzleFrame.ja va主要成员变量(属性)

名称功能备注

PuzzleFrame actionPerformed main

创建程序主窗口

处理ActionEven t事件

程序开始运行的方法

构造方法

接口方法表2 PuzzleFrame.java主要方法

3.1.3 PuzzlePad.java类模块

PuzzlePad类创建的对象是PuzzleFrame类最重要的成员之一,代表“魔板”。该类的成员变量中有5种重要类型的对象:Point、Block和Image。PuzzlePad类类主要成员变量(属性)和主要方法如表3,4所示。

描述变量类型名称

魔板中的行数和列数魔板中方块的宽和高魔板中二维点数组魔板中而为方块数组模板可能用到的图像int

int

SquarePoint[][]

JButton

Image

rows,colums

width,height

point

block

image

表3 PuzzlePad.jav a主要成员变量(属性)

名称功能备注

PuzzlePad

随机排列数字随机排列图像paintComponent actionPerformed

创建魔板对象

随机排列魔板中方块上的数字

随机排列魔板中方块上的图像

绘制图像

处理ActionEvent事件

构造方法

接口方法表4 PuzzlePad.java主要方法

魔板游戏

3.1.4 SquarePoint.java类模块

SquarePoint类负责创建确定位置的对象,使用Point对象可以确定Block对象在PuzzlePad对象中的位置,即确定“方块”在“魔板”中的位置。SquarePoint.java 类主要成员变量(属性)和主要方法如表5,6所示。

描述变量类型名称

判断点上是否有方块

点上的方块对象JButton 有方块block

表5 SquarePoint.java主要成员变量(属性)名称功能备注

get有方块set有方块setBlock getBlock

创建“点”对象

判断点上是否有方块

设置点上是否有方块

在点上放置方块

获取点上的方块

构造方法表6 SquarePoint.java主要方法

3.2 系统流程图

根据对模板游戏的功能分析,设计得到魔板游戏总流程,如图1所示:

Java程序设计课程设计报告

图1 系统流程图

魔板游戏

4系统详细设计

由于我们要将这个游戏写成一个应用程序,所以首先要设计一下游戏的框架和菜单。

游戏的框架采用标准的Windows框架,在上面有标题栏、菜单栏,以方便玩家控制游戏。我们应该先做好这一部分。菜单栏包括魔板游戏。框架中间嵌入显示单选按钮和按钮。

然后,应该在一个面板上构建游戏的界面,将这个面板嵌入到游戏的大框架里。这样整个游戏的界面就出来了。

对菜单以及界面上的控制按钮进行响应,并相应地来控制游戏。这时我们需要添加对菜单和按钮的事件响应方法。

在游戏面板构建好这后,我们应该让游戏能够玩起来,这一部分主要是编写一些算法,用来控制游戏。这里我们还应该增加对鼠标事件的响应,让玩家用鼠标控制游戏。

为了实现魔板游戏的所有需求,设计应分为三个部分:首先需要设计此魔板游戏的的界面以及其框架布局。魔板游戏的基本框架从上由下依次是、菜单栏、游戏操作主界面。菜单栏包含了魔板游戏一个菜单选项,并对各个菜单项以及界面上的小方格控制按钮进行事件响应,相应地来成功控制魔板游戏中的有关操作。其次则需设计魔板游戏的“拼图”功能设计,需要设计在主界面中加载大图片并将其分割到9个或16个小方格里,在设置方格为按钮事件响应,然后编写算法控制小方格的移动,移动方向总是朝没有图案的空方格上移动,同时还需要在游戏中设置预览功能,让玩家在游戏的任何时候都能预览他们要完成的拼图。

魔板游戏的程序由三个类构成,其中类PuzzleFrame包含main()方法,另外两个类中PuzzlePad中则含五个方法:方法PuzzlePad ()、方法actionPerformed ()、方法随机排列数字()、方法随机排列图像()和方法paintComponent ();另一个类SquarePoint

类中则包含了一个方法SquarePoint(int x,int y)

此魔板游戏由三个类实现所有设计需求。第一个类PuzzleFrame定义了一个main()方法,创建了PuzzleFrame类实例,设置了程序的入口同时也设置了魔板游戏的Windows窗口主界面的菜单栏以及主界面分散按钮上的各个连接。

第二个类SquarePoint 包含了一个SquarePoint(int x,int y)方法,这个方法控制主界面上分散的小图片受到鼠标的按钮响应后图片的移动,它控制小图片往

Java程序设计课程设计报告

没有图片的空位置移动。

第三个类PuzzlePad中则含五个方法:方法PuzzlePad ()添加图片和设置小方格的布局;方法actionPerformed ()实现小方格的移动规则;方法随机排列数字()和方法随机排列图像()实现点击开始玩按钮时,随机产生一个图片和数字的排列; 方法paintComponent ()实现小方格中黑色小方格功能实现。

5测试

5.1 测试方案

打开eclipse运行环境,把包导入到eclipse中,打开主类PuzzleFrame编译运行结果如下图所示:

5.2 测试结果

图2 3*3魔板游戏数字玩法

魔板游戏

图3 4*4魔板游戏数字玩法

图4 3*3魔板游戏图像玩法

Java程序设计课程设计报告

图5 4*4魔板游戏图像玩法

6 小结

这次我做的课题是“模板游戏”,通过这次的课程设计,我不仅拓宽了自己的知识面,还在实践过程中巩固和加深了自己所学的理论知识,使自己的技术素质和实践能力有了进一步的提高,同时我的专业水平也有了很大的进步。

同时,在软件开发方面也累积了不少经验,对java的知识重要性的认识更深了。通过设计过程的锻炼,自己分析问题和解决问题的能力都得到了锻炼和提高,完善了自己的知识结构,加深了对所学知识的理解。

这次课程设计完成后,体会颇多,在学与做的过程中,取长补短,不断学习新的知识,吸取经验,达到进步的目的在技术上我也遇到了好多难题,好多东西都是第一次接触,我必需不断上网查询或去图书馆借书来研读,幸而经过努力,我虽不能很好的运用我所学的相关知识到实际开发中来,但是最终我还是按自己所预定的

魔板游戏

设计要求完成了流程的各个步骤,基本实现了我的电话簿管理工具需求的相关功能。

还有在这次设计中,我深刻感受到了面向对象语言中类库的强大功能,掌握了运用Java中的类实现某些基本功能,并学会了自己查询使用类的方法,为以后的面向对象语言的自学奠定了基础。同时,我也感受到了网络通信中服务器和客户相互通信的特点,加深了对网络通信知识的理解,对多线程和图像显示的了解,拓宽了我们的知识面。

通过几天努力,这次课程设计圆满的结束了,在这个过程中,我学到了很多的知识,在以后的学习中,我会更加努力的学好专业知识,并将所学知识用于实践当中去,以便牢固掌握知识。

Java程序设计课程设计报告

参考文献

[1]耿祥义,张跃平.Java2实用教程(第三版)[M] . 北京:清华大学出版社, 2006

[2]耿祥义.Java课程设计(第三版)[M] . 北京:清华大学出版社, 2004

[3]张跃平.Java2实用教程实验指导与习题解答(第三版)[M]. 北京:清华大学出版社, 2004

[4]陆光义.Java游戏编程导学.北京:清华大学大学出版社,2004

[5]张广彬,高红蕊,张永宝.Java课程设计案例精编[M].北京:清华大学出版,2006.

魔板游戏

附录

附录1 源程序清单

附录1 1.1PuzzleFrame模块源程序

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class PuzzleFrame extends JFrame implements ActionListener {

PuzzlePad puzzlePad;

JButton 开始;

JMenuBar bar;

JMenu fileMenu;

JMenuItem 初级,高级;

JRadioButton 数字玩法,图像玩法;

ButtonGroup group=null;

Container con=null;

public PuzzleFrame()

{

bar=new JMenuBar();

fileMenu=new JMenu("魔板游戏");

初级=new JMenuItem("初级");

高级=new JMenuItem("高级");

fileMenu.add(初级);

fileMenu.add(高级);

bar.add(fileMenu);

setJMenuBar(bar);

初级.addActionListener(this);

高级.addActionListener(this);

开始=new JButton("开始玩");

开始.addActionListener(this);

group=new ButtonGroup();

Java程序设计课程设计报告

数字玩法=new JRadioButton("数字玩法",true);

图像玩法=new JRadioButton("图像玩法",false);

group.add(数字玩法);

group.add(图像玩法);

puzzlePad=new PuzzlePad(3,3,50,50);

con=getContentPane();

con.add(puzzlePad,BorderLayout.CENTER);

JPanel pNorth=new JPanel();

pNorth.add(数字玩法);

pNorth.add(图像玩法);

pNorth.add(开始);

con.add(pNorth,BorderLayout.NORTH);

con.validate();

addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

setVisible(true);

setBounds(100,50,440,360);

validate();

}

public void actionPerformed(ActionEvent e)

{ if(e.getSource()==开始)

{

if(数字玩法.isSelected())

{

puzzlePad.随机排列数字();

}

else if(图像玩法.isSelected())

{

puzzlePad.随机排列图像();

魔板游戏

}

}

else if(e.getSource()==初级)

{

con.remove(puzzlePad);

puzzlePad=new PuzzlePad(3,3,50,50);

con.add(puzzlePad,BorderLayout.CENTER);

con.validate();

this.validate();

}

else if(e.getSource()==高级)

{

con.remove(puzzlePad);

puzzlePad=new PuzzlePad(4,4,50,50);

con.add(puzzlePad,BorderLayout.CENTER);

con.validate();

this.validate();

}

}

public static void main(String args[])

{

new PuzzleFrame();

}

}

附录1.2 PuzzlePad模块源程序

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.border.*;

import java.util.Vector;

import java.awt.image.*;

public class PuzzlePad extends JPanel implements ActionListener {

int rows ,colums;

Java程序设计课程设计报告 int width,height;

SquarePoint point[][];

JButton block[][];

Vector vector;

int leftX=50,leftY=50;

Image image=null;

Toolkit tool=null;

MediaTracker mt;

int 图像的宽,图像的高;

Image blockImage[];

boolean 画图像=true;

public PuzzlePad(int r,int c,int w,int h)

{

setLayout(null);

vector=new Vector();

rows=r;

colums=c;

width=w;

height=h;

tool=getToolkit();

try

{

image=tool.createImage("猴子.jpg"); mt.addImage(image,1);

mt.waitForAll();

}

catch(Exception e)

{

}

block=new JButton[rows][colums];

point=new SquarePoint[rows][colums];

for(int i=0;i

{

魔板游戏

for(int j=0;j

{

if((i==rows-1)&&(j==colums-1))

{

}

else

{

block[i][j]=new JButton();

block[i][j].setSize(width,height);

block[i][j].addActionListener(this);

vector.add(block[i][j]);

}

}

}

for(int i=0;i

{

for(int j=0;j

{

point[i][j]=new SquarePoint(50+j*width,50+i*height); if((i==rows-1)&&(j==colums-1))

{

}

else

{

point[i][j].setBlock(block[i][j],this);

}

}

}

}

public void actionPerformed(ActionEvent e)

{

JButton button=(JButton)e.getSource();

int x=button.getBounds().x;

Java程序设计课程设计报告

int y=button.getBounds().y;

int m=0,n=0;

for(int i=0;i

{

for(int j=0;j

{

if(point[i][j].getX()==x&&point[i][j].getY()==y) {

m=i;

n=j;

}

}

}

int 上=Math.max(0,m-1);

int 下=Math.min(rows-1,m+1);

int 左=Math.max(0,n-1);

int 右=Math.min(colums-1,n+1);

if(point[上][n].get有方块()==false)

{

point[上][n].setBlock(button,this);

point[m][n].set有方块(false);

}

else if(point[下][n].get有方块()==false)

{

point[下][n].setBlock(button,this);

point[m][n].set有方块(false);

}

else if(point[m][左].get有方块()==false)

{

point[m][左].setBlock(button,this);

point[m][n].set有方块(false);

魔板游戏

}

else if(point[m][右].get有方块()==false)

{

point[m][右].setBlock(button,this);

point[m][n].set有方块(false);

}

}

public void 随机排列数字()

{

vector.removeAllElements();

for(int i=0;i

{

for(int j=0;j

{

if((i==rows-1)&&(j==colums-1))

{

}

else

{

vector.add(block[i][j]);

}

}

}

int i=1;

while(vector.size()>0)

{

int n=(int)(Math.random()*vector.size());

JButton b=(JButton)vector.elementAt(n);

b.setText(""+i);

b.setIcon(null);

b.setBorder(BorderFactory.createLineBorder(Color.blue,1)); vector.remove(n);

i++;

}

魔板游戏_java课设_含可运行程序文件

系统的流程图如图2所示。 图2 魔板游戏系统流程图 2.3.2 总体设计 (1)PuzzleGame.java(主类) PuzzleGame类负责创建魔板游戏的主窗口,该类含有main方法,程序从该类开始执行。PuzzleGame雷的成员变量中有4种重要类型的对象:PuzzlePad、JMenu、JRadioButton和JButton。PuzzleGame类的主要成员的作用将在后面的详细设计中阐

述,PuzzleGame类创建的窗口以及其中的主要成员对象如图3所示。 图3 PuzzleGame窗口及主要的成员对象 (2)PuzzlePad.java PuzzlePad类创建的对象是PuzzleGame类最重要的成员之一,代表“魔板”。该类的成员变量中有5种重要类型的对象:Point、Block、HandleMovee、HandleImage 和Image。PuzzlePad类的主要成员的作用将在后面的详细设计中阐述。 (3)Block.java Block类是JTextField的一个子类创建的对象是PuzzlePad类的重要成员之一,用来表示“魔板”中的“方块”。 (4)Point.java Point类负责创建确定位置的对象,使用Point对象可以确定Block对象在PuzzlePad对象中的位置,即确定“方块”在“魔板”中的位置。 (5)HandleImage.java HandleImage类所创建的对象负责将一幅图像分成若干个小图像。 (6)HandleMove.java HandleMove类所创建的对象负责处理鼠标事件。

digitPlay和imagePlay是JRadioButton创建的属于同一选择组中的单选框,名字依次为“数字玩法”,“图像玩法”。同一时刻,digitPlay和imagePlay中只能有一个处于选中状态。 startButton是JButton创建的按钮对象,名字为“开始”。startButton将当前窗口注册为自己的ActionEvent事件监视器。 image是Image声明的对象。 Tool是Toolkit对象,负责创建image对象。 ②方法 PuzzleGame()构造方法,负责完成窗口的初始化操作。 actionPerformed(ActionEvent)方法是PuzzleGame类实现ActionListener接口中的方法。PuzzleGame类创建的窗口是菜单中的菜单项、单选框以及按钮上的ActionEvent事件监视器。如果用户选中oneGrade或twoGrade菜单项时actionPerformed (ActionEvent)方法所执行的操作分别让puzzlePad对象将自己的级别设置为以及或二级。如果用户选中newImage或defaultImage菜单项时,actionPerformed(ActionEvent)方法所执行的操作就是分别改变image对象。当用户单击start按钮后,如果单选框disPlay处于被选中状态,那么actionPerformed (ActionEvent)方法所执行的操作就是让puzzlePad对象使用数字魔板,如果单选框imagePlay被选中时,那么actionPerformed (ActionEvent)方法所执行的操作就是让puzzlePad对象使用图像魔板。 (2)PuzzlePad类 效果图:PuzzlePad创建的魔板对象效果如图7所示。 (a)数字魔板(b)图像魔板 图7 PuzzlePad创建的魔板对象 UML图:PuzzlePad类是javax.swing包中JPanel容器的子类,所创建的对象:puzzlePad是PuzzleGame类中最重要的成员之一,作为一个容器添加到PuzzleGame

贪吃蛇游戏课程设计实验报告全解

辽宁科技大学课程设计说明书 设计题目:基于C#的贪吃蛇游戏 学院、系:装备制造学院 专业班级:计算机科学与技术 学生姓名:叶佳佳 指导教师:丁宁 成绩: 2015年12月12日

目录 一、概述 (1) 1、用C#实现该设计的方法 (1) 2、贪吃蛇游戏说明 (1) 二、实验目的及设计要求 (1) 1、实验目的 (1) 2、实验要求 (2) 三、课程设计具体实现 (2) 1、概要设计 (2) 1.1、设计思想 (2) 1.2、主模块实现 (2) 1.3、主函数流程图 (4) 2、详细设计 (5) 2.1、设计思想 (5) 2.2、具体模块实现: (5) 四、调试过程及运行结果 (10) 1、调试过程 (10) 2、实验结果 (11) 五、实验心得 (12) 六、参考资料 (13) 七、附录:源代码 (13)

一、概述 1、用C#实现该设计的方法 首先应该了解设计要求,然后按照功能设计出实际模块,每个模块都要完成特定的功能,要实现模块间的高内聚,低耦合。设计模块是一个相当重要的环节,模块的数量不宜太多,也不宜太少,要是每个模块都能比较简单的转换成流程图。模块设计完成后,就该给每个模块绘制流程图。流程图要尽可能的简单且容易理解,多使用中文,补一些过长的代码,增加理解难度。此外,流程图应容易转换成代码。 根据流程图编写好代码后在WindowsXP操作系统,https://www.doczj.com/doc/7113137713.html,2008开发环境下进行运行测试,检查错误,最终设计出可行的程序。 2、贪吃蛇游戏说明 游戏操作要尽可能的简单,界面要尽可能的美观。 编写程序实现贪吃蛇游戏,贪吃蛇游戏是一个深受人们喜欢的游戏:一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表示食物被吃掉,这时蛇的身体长一节,同时计10分;接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁、障碍物或身体交叉(蛇头撞到自己的身体),则游戏结束。游戏结束时输出相应得分。 具体要求有以下几点: (1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理; (2)系统设计要实用,采用模块化程序设计方法,编程简练、可用,功能全面; (3)说明书、流程图要清楚; 二、实验目的及设计要求 1、实验目的 .NET课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对VC#.NET技术的理解和掌握; 提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质; 培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新 1

扫雷的课程设计报告

西安文理学院信息工程学院课程设计报告 设计名称:数据结构课程设计 设计题目:实现一个N*M的扫雷游戏 学生学号:1402130407 专业班级:软件13级四班 学生姓名:樊秀琳 学生成绩: 指导教师(职称):谢巧玲(讲师) 课题工作时间:2015.6.22 至2015.7.3

说明: 1、报告中的任务书、进度表由指导教师在课程设计开始前填写并发给每个 学生。 2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。 3、所有学生必须参加课程设计的答辩环节,凡不参加答辩者,其成绩一律 按不及格处理。答辩由指导教师实施。 4、报告正文字数一般应不少于3000字,也可由指导教师根据本门综合设 计的情况另行规定。 5、平时表现成绩低于6分的学生,取消答辩资格,其本项综合设计成绩按 不及格处理。

信息工程学院课程设计任务书 指导教师:院长: 日期:2015年6月22日

信息工程学院课程设计进度安排表 学生姓名:樊秀琳学号:1402130407 专业:软件工程班级:13级四班 指导教师签名: 2014年6月22日

成绩评定表 学生姓名:樊秀琳学号:1402130407 专业:软件工程班级:13级四班

摘要 摘要: 扫雷游戏是Windows操作系统自带的一款小游戏,在过去的几年里,Windows操作系统历经数次换代更新,变得越来越庞大、复杂,功能也越来越强大,但是这款小游戏依然保持原来的容貌,可见这款小游戏受到越来越多人的喜爱。扫雷游戏是比较经典的一款小游戏,实现它的方法很多,可以用很多不同算法设计和语言实现,如C,C++,VB,JAVA等。我利用eclipse编写了与它功能相似的扫雷游戏,寓学于乐。 程序的功能是随机生成地雷数,通过鼠标操作玩游戏,不接受键盘,按任意键结束程序。单击屏幕上的笑脸可以重新开始游戏。所有地雷标出后胜利,当鼠标左键单击到地雷时提示游戏失败。其功能类似于Windows操作系统自带的扫雷游戏。论文首先介绍了进行该游戏课程设计的目的,然后是任务描述和设计的相关要求,最后是最重要的需求分析和设计方案。重点介绍了在游戏过程中各事件的处理,其中又以鼠标事件和清除未靠近地雷区方块这两方面最为最要,鼠标事件是利用鼠标所发出的信息了解用户的意图,进而做出相对应的动作。清除未靠近地雷区的方块较为复杂。 关键词:算法设计;事件;Eclipse

C#面向对象课程设计--拼图游戏

《C#程序设计》课程设计 题目:拼图游戏 专业:计算机科学与技术 学号: 姓名: 指导老师: 完成日期: 2012/12/26

《C#课程设计》评分标准 题目:拼图游戏专业:计算机科学与技术学号:姓名:

目录 1 前言 (4) 2 需求分析 (4) 2.1要求 (4) 2.2任务 (4) 2.3运行环境 (4) 2.4开发工具 (4) 3 概要设计与详细设计 (5) 3.1系统流程图 (5) 3.2结构功能图 (5) 4 编码与实现 (6) 4.1编码分析 (6) 4.2具体代码实现(附源代码) (9) 5 课程设计总结 (18) 参考文献 (19)

1.前言 拼图游戏一款非常经典的小游戏,因为它比较简单有趣,无论老少都比较适合。拼图的设计对每一个C#语言设计者进行语言提高和进阶都是一个很好的锻炼机会。拼图游戏的设计比较复杂,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。因此,如何设计和开发好这个拼图游戏,对于提高C#开发水平和系统的设计能力有极大的帮助。在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。一个3×3的魔板,有一个格子是空的,其他格子随机放置1-8共8个编号的方块,通过单击任意一个与空格子相邻的方块可以把该方块移入空格子,不断的移动方块,直到方块按照图片的原来的顺序排好。 2 需求分析 2.1要求 (1)用C#语言实现程序设计; (2)利用PictureBox控件来实现图片的移动 (3)超过200步提示重新来 (4)界面友好(良好的人机互交),程序要有注释。 2.2任务 (1)制作流程图 (2)编写代码; (3)程序分析与调试。 2.3运行环境 (1)WINDOWS2000/XP/win7系统 (2)TurboC2.0编译环境 2.4开发工具 C#语言

《游戏设计》课程设计指导书

《游戏设计》课程设计指导书 编写:蔺广逢 适用于:数字媒体专业 2011.12

游戏设计课程设计任务书 设计时间:1周学分数:1.0 执笔人:范彩霞编写日期:2008年10月 一、课程设计目的 游戏设计课程设计是数字媒体技术专业必修的实践环节。本课程设计是《游戏设计》课程实践环节的深化和延续。通过该实践环节的训练,使学生能够更加全面和系统的掌握游戏设计的体系结构。通过对所做游戏的故事梗概、游戏类型以及设计制作过程中所涉及的相关技术的学习和掌握,提高学生的实践能力以及团队协作能力,为在计算机游戏设计这一领域进行深入研究做准备。 二、课程设计的内容与要求 本课程设计通过分组来进行,每组3~4人。对每一个组,都必须设计和实现一个完整的游戏,游戏的类型不限,软件运行环境限为Microsoft Windows,硬件平台限为PC。在每组进行游戏设计之前必须提供游戏文档说明,包括游戏的故事情节、游戏的类型、游戏界面的设计等。每组设计的游戏不一定是原创的,但绝不能抄袭已有的游戏。 每组设计的游戏需要有较为完整的情节,要求能体现以下的基本技术:提供使用键盘或鼠标控制视点的朝向和运动的功能;在游戏中至少有一个人物是三维的,并且能产生相应的动画。必须在某个场景中有配音或者背景音乐;最好能在某一个画面中体现一些特效技术;必须能实时或者准实时运行。 游戏设计完成后对自己所做的游戏进行短评,包括:游戏中的哪一部分是最得意的?对最初的游戏设计作了哪些修改,为什么?在这个游戏项目的实践中获得的经验和教训是什么?如果有更多的时间下一步会怎么做? 三、课程设计的报告(论文、作业)的要求 课程设计报告是课程设计过程的整理和总结。因此,编写课程设计报告是课程设计阶段的一个重要组成部分。课程设计报告的内容和要求根据设计内容而定,对于本课程设计,主要应包括以下内容: 封面:封面上应标明“游戏设计课程设计”报告、专业、姓名、学号与时间等; 课程设计报告内容主要包括: (1)课程设计的目的;

《c语言课程设计报告--小游戏“石头剪子布”》

《C语言课程设计》报告题目:石头剪子布 班级: 学号: 姓名: 指导教师: 成绩:

目录: 一、选题背景...................................................................................................................... - 2 - 二、设计思路...................................................................................................................... - 2 - 三、主要问题的解决方法及关键技术.............................................................................. - 3 - 四、程序流程图.................................................................................................................. - 3 - 五、源程序清单.................................................................................................................. - 6 - 六、程序运行结果.............................................................................................................. - 8 - 七、设计总结...................................................................................................................... - 9 - 八、教师评语.................................................................................................................... - 10 - 一、选题背景 通过一个学期的C语言课程的学习,《C语言程序设计》课程已结束,根据学校课程学习的安排,要进行一周的C语言实习,自己动手编写游戏和系统。根据老师布置的设计任务书,按照学委的安排,根据个人的能力及意愿,我选择了设计一格小游戏:石头剪子布。 实验准备:做游戏前,首先,自己详细看了《C语言程序设计》(教科书),理解了相关函数的用法和作用;另外,上网查询了很多相关资料,还有找了很多相关的游戏设计的代码,都详细的看了一遍,加深了对C语言以及相关内容进一步理解。根据实际情况设计出一款比较理想的小游戏。 设计题目的要求: ①游戏要设置开始,结束操作控制 ②游戏要有时间提示即相关结果的提示语 ③游戏要能自动判断输赢,并显示最终比赛结果 二、设计思路 系统功能模块图: 输入:计算机随机输入选择,用户输入选择,并将数据储存。 计算:根据计算机和用户的选择,计算大小,并判断输赢,计算用户的胜负率,并储存。 输出:根据用户的输入,将用户的游戏结果显示在屏幕上。

动画与游戏设计-课程设计报告

《动画与游戏开发》 课程报告 学号:111102020103 姓名:张慧 专业班级:11级计科本01班 日期:2013-12-9

电子信息工程学院 目录 一、课程内容及应用领域 1.1基于DirectX的粒子系统 (3) 1.1.1 粒子系统简介 (3) 1.1.2广告板技术 (3) 1.1.3粒子系统的基本原理 (3) 1.2粒子系统的应用领域 (3) 二、课程内容的难点、疑点 2.1课程要点 (4) 2.2课程难点 (4) 2.3课程疑点 (4) 三、实例开发 3.1实例题目及说明 (4) 3.2关键技术 (5) 3.2.1系统完成的四部曲 (5) 3.2.2星光粒子结构构成技术 (5) 3.2.3 MyPaint()绘图函数 (5) 3.3开发过程 (9) 3.3.1案例所需背景图 (10) 3.3.2程序部分代码 (10) 3.3.3运行结果截图 (15)

3.4总结..........................................................17四、谈谈自己对课程内容的掌握程度

一、课程内容及应用领域 1.课程内容:基于DirectX的粒子系统 相关内容简介: (1)粒子系统简介 粒子系统是三维图形编程领域中用于实现特殊效果的一种非常重要的技术.该技术是由Reeves于1983年首次提出来的.通过粒子系统可以使用非常简单的粒子来构造复杂的物体,它为模拟动态的不规则物体,提供了强有力的技术手段。一般情况下,粒子的几何特征十分简单,可以用一个像素或一个小的多边形来表示.如果给出了粒子中心点的坐标和粒子大小,不难计算出绘制粒子所需要的四个顶点的位置坐标. (2)广告板技术 由于通常使用平面图形而不是立体图形表示一个粒子,所以需要使用的粒子四边形始终面向观察者.这就要使用广告板技术.广告板技术的原理是,在渲染一个多边形时,首先根据观察方向构造一个旋转矩阵,利用该矩阵旋转多边形使其面向观察者,如果观察方向不断变化,就要不断旋转多边形. (3)粒子系统的基本原理 粒子通常都是一个带有纹理的四边形。我们通过这个使用了纹理映射的四边形,可以认为粒子实际上是一个很小的网格模型,只不过是纹理赋予了它特殊的外表罢了。绘制粒子就如果绘制多边形一样简单,因为一个粒子说白了就是一个可改变大小并映射了纹理的四边形罢了。 粒子系统由大量的粒子构成,粒子是一种微小的物体,每个粒子都具有一定的属性,如位置、大小以及纹理,可能还需要颜色、透明度、运动速度、加速度、生命期等属性。我们可以把粒子想象成颗粒状的物体,如雪花,雨滴,沙尘,烟雾等特殊的事物。又比如游戏中的

C程序课程设计报告(扫雷游戏)

C程序设计 扫雷游戏 一、设计题目:扫雷游戏 二、设计目的 1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。 2.培养学生综合运用所学知识独立完成课题的能力。 3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。 4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基

本素质。 5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。 6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。 三、设计要求 1.汪洋和孔维亮组成设计小组。小组成员分工协作完成。要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。 2.查阅相关资料,自学具体课题中涉及到的新知识。 3.采用结构化、模块化程序设计方法,功能要完善,界面要美观。 4.按要求写出课程设计报告,并于设计结束后1周内提交。 一概述 1)掌握数组指针的概念及其应用 2)培养团结合作精神 2. 课程设计的要求 要求我们有扎实的C语言知识,以及良好的编程习惯,能够熟练的应用循环,有毅力,还要求我们有较强的合作精神,善于总结。同时还要求我们自学C语言作图部分知识。在必要时还要上网查相关资料。 3.课程设计的主要设计思想 扫雷游戏主要用了一个10行10列的二维数组,刚开始利用random随机布雷。 每一个程序最主要的是算法。扫雷游戏算法的重点是一开始统计好每个格子周围有多少雷,当鼠标左键点在格子上时做出判断,如果周围8个格子有雷则显示出雷数,如果没有雷则显示空白格(在四个角的格子显示周围3个格子,其它边缘的格子显示周围5个的状态),我们在主函数中用两个for语句来判断周围雷数。我们还加了鼠标处理函数。 如果格子上有雷则调用函FailExitGame(),显示“Fail!”,游戏结束。若所有的雷都标出,且所有的格子都处理过,则调用函数ExitGame(),显示“OK,Good!”,游戏结束。游戏结束后,按任意键出去。

魔板游戏(内含源代码)

XX学院计算机科学与技术系 实验报告 课程名称程序设计基础实验(2) 实验项目应用系统的面向对象设计与分析 实验类型综合性实验 完成人 所在班级 指导教师 完成日期2009年11月 30 日

目录 一、实验报告简表 (02) 二、设计内容与要求 (02) 1、设计内容 2、设计要求 三、总体设计 (03) 1、需求分析 2、功能描述 3、设计工具与运行环境 4、类及类间关系描述 四、详细设计 (05) 1、类图 2、源代码 五、实例运行及应用效果 (20) 1、魔板游戏界面 2、测试游戏及输出结果 六、体会与总结 (24)

实验报告正文 一.实验报告简表 实验课题名称魔板游戏 综合性实验项目应用系统的面向对象设计与分析 服务课程程序设计基础实验(2) 实验小组组长 指导教师 参与实验人员及其在实验课题中承担的主要任务(包括组长) 学号小组成员姓名班级在实验课题中的主要作用 二.设计内容与要求 1、设计内容: 用面向对象的Java程序设计语言开发设计GUI界面的魔板游戏程序。 2、设计要求:

(1)、魔板由3*3或4*4的方格组成,其中一个格子是空的。对于3*3的魔板,其他格子里随机放置8个编号为0-7的方块;对于4*4的魔板,其他格子里随即放置15个编号为0-14的方块,如果是n*n的方格原理相同。 (2)、用鼠标单击任何与格子相邻的方块可以把该方块移入空格子。通过不断地移动方块,可以将方块一行一行按数字顺序依次排序。 (3)、魔板游戏也可以使用图像来代替数字,对于3*3的魔板,将图像分成3*3个方块,打乱顺序后,放入魔板,并将其中一个方格置为空。最终目标是通过移动方块来恢复为原始图像。4*4的魔板与3*3的方法相似。 三.总体设计 1、需求分析: 魔板游戏就是大家以前常玩的拼板游戏!就是将一幅完整的图片分成小块,打乱顺序,再拼好,并且只能将图块和临界的空格交换位置。用最短的时间和最省的步骤将图形拼好,此玩法虽然简单,但特别考验智力,魔板游戏与魔方游戏相似属于益智游戏。 此项目我们需要通过面向对象的Java程序设计来实现,游戏设计中需要用到GUI图形界面的设计,产生随机数生成打乱的图片,各种事件(动作事件、鼠标事件和窗口事件等)的响应和处理等面向对象的知识来实现游戏的各项功能。

unity3d游戏课程设计报告

游戏程序设计课程报告 课程: Unity3D课程设计题目:探索迷宫 班级: 学号: 姓名:

日期:2014.12 一、摘要 1 UNITY游戏是一种新型的IT引擎。我们研究主要内容是UNITY游戏设计方法。指以游戏客户端软件为信息交互窗口的旨在实现娱乐、休闲、交流和取得虚拟成就的具有可持续性的个体性单人游戏。 本报告主要讲述了这个小游戏的设计思路及初步使用Unity3D软件 的感受和总结。设计过程中,首先建立自己想要的模型,然后在此基础上进行需求迭代,详细设计时不断地修正和完善,经过测试阶段反复调试和验证,最终形成达到设计要求的小游戏。 基于UNITY基础,构建了一个益智游戏风格的游戏,并有主角与关卡、游戏逻辑、游戏环境界面等设计,使得玩家可以在场景中进行寻找神龛的冒险游戏。 本游戏的控制很简单,及用键盘的W ASD及SPACE五个控制人物的上下左右跳跃五个方向,用户根据自己的战略方式选择寻找油桶点亮煤油灯然后寻找神龛。

二、概述 《UNITY游戏程序设计》这一课程以大作业形式进行考核,能更好地锻炼学生综合运用本课程所授知识的能力。大作业主要内容为设计完成面向某一主题内容的游戏演示程序。 自选游戏主题,并根据所选定的主题内容设计一个典型的游戏场景及玩家逻辑,其中包含主角与关卡,游戏逻辑,游戏环境界面与交2 互过程等的设计;开发完成与设计相符的游戏Demo。 要求使用Unity3D游戏开发软件实现上述游戏Demo。 三、具体要求 1、每人单独完成,特殊可由多人合作完成。 2、游戏主题自拟。 3、根据所设游戏主题、场景及玩家逻辑,实现完成相应的游戏Demo,并撰写设计开发报告。 四、设计主题 基于视频教程“平衡球”的基础,构建了一个益智游戏风格的游戏,并有主角与关卡(一关)、游戏逻辑(触碰油桶、神龛)、游戏环境界面(通道)等设计,使得玩家可以在场景轨道中进行吃油桶、神龛的冒险游戏。 五、设计思路 本游戏以几个环环相扣的通道作为人物运动的轨迹,在通道上分

游戏开发课程设计报告模版-扫雷游戏报告(定稿)

中原工学院信息商务学院 课程设计报告 2016~2017学年第一学期 课程游戏开发课程设计 课程设计名称扫雷游戏 学生姓名*** 学号***** 专业班级数媒141 指导教师郑全录 2016年12月

目录 第一章设计内容及要求 (1) 1.1 扫雷游戏的基本要求 (1) 1.2 游戏需要实现的主要功能 (1) 第二章需求分析 (2) 2.1扫雷游戏界面设计 (2) 2.2 雷区的设计 (2) 2.3 音效的设计 (3) 2.4 扫雷英雄榜的设计 (3) 第三章总体设计 (5) 3.1 总体功能图 (5) 3.2 总体流程图 (5) 第四章主要功能设计流程 (6) 4.1 雷区设计流程图 (6) 4.2 音效设计流程图 (6) 4.3 英雄榜设计流程图 (7) 第五章主要功能设计流程 (8) 5.1 类之间关系图 (8) 5.2程序运行效果图 (8) 5.2.1 游戏登录界面 (8) 5.2.2游戏菜单界面 (9) 5.2.3游戏运行界面 (10) 5.2.4游戏英雄榜界面 (12) 第六章总结 (13) 参考文献 (14) 附录 (15)

第一章设计内容及要求 1.1扫雷游戏的基本要求 当前各种游戏层出不穷,因为游戏的开发成本非常大,所以游戏的开发具有一定的风险性,但是一些小游戏的开发成本具有成本小,编写简单的优势,所以这些小游戏在游戏开发中也占有一席之地。在这类小游戏中包括益智类游戏,它以画面精美、游戏方法简单等特点得到大家的认可。成为人们在工作之余不可或缺的好伙伴。针对这种情况我选择了扫雷游戏该课题作为我的课程题目。 Windows XP和Windows 7系统提供的扫雷游戏是一个很有趣的游戏。本次课程设计的主要任务是使用JA V A语言编写一个与其类似的扫雷游戏。具体要求如下: 1、扫雷游戏分为初级、中级和高级三个级别,同时扫雷英雄榜存储每个级别的最好成绩,即挖出全部的地雷且用时最少者。单击游戏菜单可以选择“初级”、“中级”和“高级”或“查看英雄版”。 2、选择级别后将出现相应级别的扫雷区域,这时用户使用鼠标左键单击雷区中任何一个方块便启动了计时器。 3、用户要揭开某个方块,可单击它。若所揭方块下有雷,用户便输了这一局,若所揭方块下没有雷,则显示一个数字,该数字代表此方块周围的8个方块中共有多少颗雷。 4、如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),窗口左上角的雷数计数器将会减少一个。 5、扫雷胜利后(用时最少者),程序弹出保存成绩的对话框。 6、用户如果遇到疑问的方块,可以勾选游戏菜单下的标记选项卡(或者用快捷键Alt+G然后点击M)即可标记该可疑方块,此时双击右键并可出现“?”标记。另有颜色选项,当用户选中该项时,游戏将以最低图像像素来显示。 7、如果用户需要使用提示声,可选中声音选项,此时将听到计时的咔嗒声。当用户点中雷时,将有爆炸声产生;胜利时,将有凯旋的旋律播放,此时企鹅出现欢悦表情。 1.2游戏需要实现的主要功能 1、用户可以自定义级别并且可以任意输入雷数; 2、具有计时功能,既显示用户完成所有扫雷任务所需要的时间; 3、自动保存扫雷英雄榜。

2012面向对象java版课程设计报告

课程设计 课程设计任务书

II 一、设计目的() 二、总体设计 三、关键技术() 四、程序流程 () 五、主要源代码 总体设计 在设计魔板游戏时,需要编写7java 源文件:、 PuzzlePad.java 、Point.java 、Block.java 、HandleImage.java 、VerifySuccess.java 和HandleMove.java 。 魔板游戏除了需要编写的上述7个java 源文件所给出的类外,还需要java 系 提供的一些重要的类,如JMenuItem 、JButton 、和JRadioButton 等类。魔板游戏所用到的一些重要的类以及之间的组合关系如图所示。 1.PuzzleGame.java (主类) PuzzleGame.java 类负责创建魔板游戏的主窗口,该类含有main 方法,程序从该类开始执行。PuzzleGame.java 类的成员变量中有4种重要类型的对象:PuzzlePad 、JMenu 、JRadioButton 和JButton 。 2.PuzzlePad.java PuzzlePad 类创建的对象是PuzzleGame 类最重要的成员之一,代表“魔板”。 该类的成员变量中雨5种重要类型的对象:Point 、Block 、HandleMove 、HandleImage 和Image 。 3.Block.java Block 类是JTextField 的一个子类,创建的对象是PuzzlePad 类的重要成员之一用来表示“魔板”中的“方块”。 4.Point.java

Point类负责创建确定位置的对象,使用Point对象可以确定Block对象在PuzzlePad对象中的位置,即确定“方块”在“魔板”中的位置。 5.HandleImage.java HandleImage类所创建的对象负责将一幅图像分成若干个小图像。 6.HandleMove.java HandleMove类所创建的对象负责处理鼠标事件。 7.VerifySuccess.java VerifySuccess类所创建的对象负责验证用户是否按要求成功排列魔板中的方块。 三、关键技术 四、程序流程

(完整word版)JAVA课程设计--扫雷游戏

合肥学院 计算机科学与技术系 课程设计报告 2009~2010学年第二学期 课程Java语言与应用 课程设计名称扫雷游戏 学生姓名胡远远 学号0604031005 专业班级07网络工程一班 指导教师许强张贯虹

2010年09月 1.设计内容及要求 1.1 扫雷游戏的基本要求 Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。具体要求如下:(1)选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。 (2)用户要揭开某个方块,可单击它。若所揭方块下有雷,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。 (3) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。 (4)扫雷胜利后,显示游戏胜利。 (5) 用户可以右击空格,可以选择标记为“旗帜”、“问号”或者返回成空格。 1.2 需实现的主要功能 (1)用户点击笑脸实现复位操作。 调用repaint()和validate()函数对界面进行重置以及刷新操作(2)可以显示用户完全扫雷成功所花时间。 文本框TF记录扫雷成功所花的时间 (3)在失败和胜利后跳出失败或胜利的文本框 JoptionPane 该类用来调出对话框并提示胜利 2.需求分析 2.1 扫雷棋盘的布局设计 系统的整体布局为:CardLayout布局, 采用了文本框、按钮、面板、框架…等组件,菜单主要有run按钮笑脸和哭脸,按钮的功能是重新开始新的游戏。

大学课程设计报告小小打字游戏设计-课程设计报告

2016-2017学年第一学期 《Windows程序设计》 课程设计报告 题目:小小打字游戏设计 专业: 班级: 姓名: 指导教师: 成绩: 二0一六年十一月十五日

目录 1 设计内容及要求 (1) 1.1 设计内容 (1) 1.2 系统功能 (1) 1.3 信息存储功能 (1) 2 系统设计 (1) 2.1 数据库设计 (1) 2.1.1 GameUser表 (1) 2.1.2 GameInfo表 (2) 2.2 游戏系统设计 (2) 2.2.1 程序项目设计 (2) 2.2.2 功能模块设计 (2) 3 C#系统实现 (5) 3.1 类图 (5) 3.2 核心代码 (6) 3.3 MySqlConn类 (10) 3.4 MainForm类 (11) 3.5 菜单事件 (12) 3.6 窗体键盘事件 (13) 3.7 MyRandom类 (15) 3.8 Program类 (16) 4 总结 (17) 4.1 收获 (17) 4.2 反思 (17) 5 参考文献: (18)

1 设计内容及要求 1.1 设计内容 软件名称:小小打字游戏 需求分析:使用VS2010开发环境,用C#语言编写一个打字游戏,游戏界面随机出现下落的A到Z的26个字母,当用户按下相应的键,游戏屏幕上正在下落的字母就会被消除,游戏分数将相应增加。 1.2 系统功能 (1)、登录功能:启动软件,出现登录界面,用户输入账号密码,正确后方可进入游戏; (2)、注册功能:不存在的用户,可以注册; (3)、软件互斥:通过创建互斥变量,使打字游戏软件只能单独开启一个; (4)、游戏控制:按F1开启游戏,F2暂停游戏,F3继续游戏,F4使用游戏积分兑换生命值; (5)、游戏显示:游戏窗口随机下落颜色不定的A到Z 26个字母,并根据游戏得分实时增加字母下落的速度; (6)、游戏操作:按下键盘上的A-Z 26个字母键,游戏窗口上正在下落的对应字母被消除,并使游戏分数增加1; (7)、数据保存和清除:使用数据库保存用户的游戏数据,并可调用数据库数据显示在游戏界面上显示,管理员账号可以清除游戏数据记录; (8)、游戏界面信息显示:显示相应的游戏状态信息,暂停游戏提示,结束游戏提示以及游戏排名。 1.3 信息存储功能 需要存储的信息: (1)游戏分数、(2) 游戏等级、 (3) 用户、 (4)密码、(5)游戏开始时间、(6)游戏结束时间。 2 系统设计 2.1 数据库设计 2.1.1 GameUser表 表1 GameUser表

扫雷小游戏课程设计

西安科技大学 软件工程课程设计报告 题目:扫雷游戏开发 班级:计科0901班 学号: xxxxxxxxxxxx 姓名: xxxxxxx 电话:xxxxxxxxxxxxx

2012年7月 目录 1 绪论 (3) 1.1 选题目的及意义 (3) 1.2 系统概述 (3) 2 可行性研究报告 (4) 3 需求规格说明书 (5) 4 总体设计说明书 (6) 5详细设计说明书 (7) 6 系统实现 (16) 6.1 开发环境 (16) 6.2 关键技术 (16) 6.3 运行结果 (16) 7测试分析报告 (17) 8心得体会 (19) 参考文献

1.绪论 1.1选题目的及意义 随着现在生活节奏的加快,人们在工作学习之余需要一个轻松娱乐的放松环境。因此我编写此软件的目的,一方面作为初学者来了解java环境下的小程序开发,另一方面使用户能在娱乐休闲的同时拓展思维能力。扫雷是单人计算机游戏。游戏的用户界面由小方格组成的战场构成。当游戏开始时,计算机将固定的地雷数随机的放到战场的方格。此游戏还允许玩家指定战场中的地雷数。 参考Windows 操作系统提供的扫雷游戏,改进扫雷游戏程序,增加以下功能:在主界面中添加一个菜单栏,菜单栏中包括游戏和帮助两个菜单,其中游戏菜单中设置初级、中级、高级、自定义、声音、扫雷英雄榜这几个菜单项,帮助菜单中设置游戏规则和制作人员两个菜单项。 背景说明: a.软件名称:扫雷 b.用户:所有扫雷游戏爱好者 1.2 系统概述 1.2.1扫雷游戏的基本要求 Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。具体要求如下: (1) 扫雷游戏分为初级、中级和高级三个级别。单击游戏菜单可以选择“初级”、“中级”和“高级”。 (2) 选择级别后将出现相应级别的扫雷区域,这时用户使用鼠标左键单击‘“开始”便启动计时器。 (3) 用户要揭开某个方块,可左键单击它。若所揭方块下有雷,用户便输了这一局,若所揭方块下无雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。 (4) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。 (5)当用户点中雷时,将有“你输了”的提示出现,胜利时,将有“你赢了”的提示出现。 1.2.2 需实现的主要功能 用户可以自定义级别并且可以任意输入雷数; 具有计时功能,即显示用户完成移动盘子所花费的时间。

快速配对游戏_课程设计报告

Visual Basic 课程设计报告 所属课程名称:Visual Basic程序设计 课程设计题目:快速配对游戏 课程设计难度:两星 课程设计时间:2012.2.27 ~ 4.18 学号:9121091601XX 姓名:XXX 南京理工大学机械工程学院 二〇一三年X月

一、程序功能 (1)运行程序,显示如图1的开始界面,图片均为“背对”用户。单击“开始”按钮,图片显示1.5秒(如图2,图片均随机安排),然后翻过去。用户使用鼠标将图片翻起,如果连续 单击的两个图片内容相同则会保持显示状态;如果两图片不同,两张图片0.5秒后自动翻 过去。用户凭记忆在尽量短的时间内将8对图片全部“翻起”,游戏完成。 图1 图2 (2)从用户第一次单击图片是,程序开始计时(以秒为单位),并在窗口的右上角显示已用时间。 没击中一对图片,窗口中显示一个“笑脸”图标,否则显示一个“严肃的脸”图标(见图 3)。 图3 (3)程序自动记录前三个最短完成时间,在游戏结束时一图4所示的消息框显示所用的时间,

并请玩家输入名字。单击“排行榜”按钮时可以弹出“排行榜”窗体,如图5所示,显示 前三名所用的时间。 图4 图5 (4)在游戏中,窗口的“开始”和“排行榜”按钮成无效态,游戏完成后,“开始”按钮变为“重来”,单击该按钮可以从头再来一局。 二、课程设计的详细设计 游戏主界面:(1)窗体的顶部要放置“开始”、“排行榜”和“退出”按钮。在放置一个两个重合的图像控件用来显示游戏中的“笑脸”和“严肃的脸”。再放置一个标签控件来显 示用户所用的时间。加入三个定时器控件“Timershow”、“Timercompare”和 “Timercounter”分别来控制展示图片的时间、点击不同图片后图片的展示时 间和记录玩家的所用时间。 (2)窗体的中部放置16个图像框控件数组“”来放置游戏中的图片。和一个放置“背面”图片的图像框控件“Imageback” 在案安排游戏使用图片时使用的是随机函数Rnd随机的将“Imagepicture()” 的Index值赋给数组,然后将这些选中的图片的“Picture”属性赋给“Imageshow ()” 图像框达到随机安排图片的目的。 (3)窗体的下部放置31个图像框控件“Imagepicture()”来放置31种不同的候选图片。 排行榜窗体:(1)加入12个标签控件用来显示“排行榜”。“LabelWanjia()”控件组显示玩家姓名,“LabelChengji()”控件组显示玩家成绩。 (2)添加“返回”按钮,单击按钮时返回游戏主界面。 游戏加载时将“chengji”文件中的已存入的成绩和玩家姓名加载到“排行榜”窗体的相应位置上。 在游戏完成时用消息框提示你的成绩,如果你的成绩进入前三名则可以再“Inputbox”里面输入自己的姓名。 在游戏程序结束时将“排行榜”窗体上的内容存入成绩文件中。 全程序中使用控件数组和数组使程序的编写简单、明了。

java扫雷游戏课程设计报告

Java课程设计报告 姓名 号学 系院 级班 业专 1.设计内容及要求 1.1 扫雷游戏的基本要求 Windows 2000/XP系统提供的扫雷游戏是一个很有趣的游戏。本章的课程设计使用Java语言编写一个与其类似的扫雷游戏。具体要求如下: (1) 扫雷游戏分为初级、中级和高级三个级别,扫雷英雄榜存储每个级别的最好成绩,即挖出全部的地雷且用时最少者。单击游戏菜单可以选择“初级”、“中级”和“高级”或“查看英雄版”。 (2) 选择级别后将出现相应级别的扫雷区域,这是用户使用鼠标左键单击雷区中任何一个方块便启动计时器。 (3) 用户要揭开某个方块,可单击它。若所揭方块下有泪,用户便输了这一局,若所揭方块下五雷,则显示一个数字,该数字代表方块的周围的8个方块中共有多少颗雷。. (4) 如果用户认为某个方块下埋着雷,单击右键可以在方块上标识一个用户认为

是雷的图标,即给出一个扫雷标记。用户每标记出一个扫雷标记(无论用户的标记是否正确),程序将显示的剩余雷数减少一个。 (5) 扫雷胜利后(用时最少者),程序弹出保存成绩的对话框。 (6)用户可以选择标记疑问的方块,用可以勾选游戏菜单下的标记(或者用快捷键alt+G 然后M)即可,此时双击右键并可出现“?”标记。另有颜色选项,当用户勾选此项时,游戏将以最低图像像素来显示。 (7)如果用户需要即使提示声,并可选中声音选项,此时将听到计时的卡塔声。当用户点中雷时,将有爆炸声产生,胜利时,将有凯旋的旋律播放,此时企鹅出现欢悦表情。 1.2 需实现的主要功能 (1)用户可以自定义级别并且可以任意输入雷数; (2)具有计时功能,即显示用户完成移动盘子所花费的时间; (3)用户可以选择是否有音效; (4)自动保存扫雷英雄榜; 2.需求分析 2.1 扫雷棋盘的布局设计 系统的整体布局为:CardLayout布局, 采用了菜单、按钮、面板…等组件,菜单主要包括开始,选择级别,标记,扫雷英雄榜,退出,按钮的功能是重新开始新的游戏。 2.2 雷区的设计 MineArea类是javax.swing包中Jpanel容器的子类,实现了ActionListener 和MouseListener接口,所创建的对象:mineArea是MineGame类中最重要的成员之一,作为一个容器添加到MineGame窗口的中心。标明MineArea类的主要成 图2-1 MineArea类的UML图

相关主题
文本预览
相关文档 最新文档