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

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

《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#语言

3 概要设计与详细设计

3.1系统流程图

如图3.1

图3.1系统流程图

3.2功能结构图

如图3.2所示。

图3.2功能结构图

这个游戏主要分为四个模块,分别是游戏开始、游戏复位、游戏结束和游戏退出。这四个摸块的功能各不一样,游戏开始的模块就不用多介绍了,我们在这里主要说说重新开始的模块,如果玩家对自己本次的成绩不满意,可以通过重新开始模块来重完游戏

4 编码与实现

4.1分析说明

游戏开始:界面如图4-1

图4-1

在程序开头定义变量,实例化数组;代码如下图

游戏进行中:

当游戏运行的时候,桌面上会出现图上的图形界面。有一个文本框和一个图形界面。其过点击鼠标移动图片,游戏就正式开始,且此游戏是通过计算鼠标点击的次数,而不是计算时间,所以玩游戏的人可以有充分的时间考虑。游戏中见图4-2

图4-2

左右图片对照方便有游戏的进行,左下角有显示有戏进行的步数,复位时直接把右边的图相应的赋给左边,代码实现如下图:

这里从第一个到第九个PictureBox都有相应赋值和命令这里只截取Box1的图片对应的代码

游戏时本段代码主要运用的c#知识是二维数组和if`~else语句,通过判断box1

游戏复位:

如果觉得自己的成绩不够好,可以选择复位重新开始。复位时直接把右边的图相应的赋给左边,复位后效果和刚开始一样。代码实现如下

游戏完成:

当玩家在200步以完成拼图则提示"恭喜你已经完成拼图!"如图4-3 ;否则将提玩家重新来过如图4-4

图4-4

4.2具体代码实现

附源代码

using System;

using System.Collections.Generic; using ponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace拼图游戏2

{

public partial class Form1 : Form

{

public static int aa;

public static int bb;

private System.Windows.Forms.PictureBox[,] t;

public Form1()

{

InitializeComponent();

}

//实例化数组

private void Form1_Load(object sender, EventArgs e)

{

t = new PictureBox[3, 3]{{pictureBox1 ,pictureBox2 ,pictureBox3 }, {pictureBox4 ,pictureBox5 ,pictureBox6 },

{pictureBox7 ,pictureBox8 ,pictureBox9 }

};

for (int i = 0; i <= 2; i++)

{

for (int j = 0; j <= 2; j++)

{

t[i, j].Enabled = false;

}

}

}

//图片的移动

private void pictureBox1_Click(object sender, EventArgs e)

{

bb++;

label2.Text = bb.ToString();

if (pictureBox2.Image == null)

{

pictureBox2.Image = pictureBox1.Image;

pictureBox1.Image = null;

}

else if (pictureBox4.Image == null)

{

相关文档
最新文档