C#面向对象课程设计拼图游戏Word文档格式.docx
- 文档编号:22538020
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:25
- 大小:771.82KB
C#面向对象课程设计拼图游戏Word文档格式.docx
《C#面向对象课程设计拼图游戏Word文档格式.docx》由会员分享,可在线阅读,更多相关《C#面向对象课程设计拼图游戏Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
报告能够反映设计思路,并介绍系统功能
报告内容比较完整,思路比较清晰,语句比较通顺
报告内容完整,用语准确,能够反映系统开发过程
前台
开发工具
(10分)
能够使用开发工具的基本操作完成系统的开发
能够熟练地运用开发工具来实现较全面的功能
对开发工具熟悉,能够灵活使用各类控件和语句完成系统开发
能够熟练掌握多种开发工具,并能够独立解决较复杂的编程问题。
应用到多种数据库对象。
系统功能
(25分)
能够完成数据的输入输出和基本查询功能
除了基本信息管理功能外,还可以完成比较复杂的数据查询和数据编辑功能
能够方便地完成数据操作功能
具有较复杂的数据管理功能
系统
界面设计
(20分)
具有一般的Window窗口界面
功能比较全,操作也比较方便
界面美观,功能全面,操作方便
界面美观,功能设计有创新
教师签字:
成绩:
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具体代码实现
附源代码
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
namespace拼图游戏2
{
publicpartialclassForm1:
Form
{
publicstaticintaa;
publicstaticintbb;
privateSystem.Windows.Forms.PictureBox[,]t;
publicForm1()
InitializeComponent();
}
//实例化数组
privatevoidForm1_Load(objectsender,EventArgse)
t=newPictureBox[3,3]{{pictureBox1,pictureBox2,pictureBox3},
{pictureBox4,pictureBox5,pictureBox6},
{pictureBox7,pictureBox8,pictureBox9}
};
for(inti=0;
i<
=2;
i++)
for(intj=0;
j<
j++)
t[i,j].Enabled=false;
}
//图片的移动
privatevoidpictureBox1_Click(objectsender,EventArgse)
bb++;
label2.Text=bb.ToString();
if(pictureBox2.Image==null)
pictureBox2.Image=pictureBox1.Image;
pictureBox1.Image=null;
elseif(pictureBox4.Image==null)
pictureBox4.Image=pictureBox1.Image;
privatevoidpictureBox2_Click(objectsender,EventArgse)
if(pictureBox1.Image==null)
pictureBox1.Image=pictureBox2.Image;
pictureBox2.Image=null;
elseif(pictureBox3.Image==null)
pictureBox3.Image=pictureBox2.Image;
elseif(pictureBox5.Image==null)
pictureBox5.Image=pictureBox2.Image;
privatevoidpictureBox3_Click(objectsender,EventArgse)
pictureBox2.Image=pictureBox3.Image;
pictureBox3.Image=null;
elseif(pictureBox6.Image==null)
pictureBox6.Image=pictureBox3.Image;
privatevoidpictureBox4_Click(objectsender,EventArgse)
pictureBox1.Image=pictureBox4.Image;
pictureBox4.Image=null;
pictureBox5.Image=pictureBox4.Image;
elseif(pictureBox7.Image==null)
pictureBox7.Image=pictureBox4.Image;
privatevoidpictureBox5_Click(objectsender,EventArgse)
pictureBox2.Image=pictureBox5.Image;
pictureBox5.Image=null;
pictureBox4.Image=pictureBox5.Image;
pictureBox6.Image=pictureBox5.Image;
elseif(pictureBox8.Image==null)
pictureBox8.Image=pictureBox5.Image;
privatevoidpictureBox6_Click(objectsender,EventArgse)
if(pictureBox5.Image==null)
pictureBox5.Image=pictureBox6.Image;
pictureBox6.Image=null;
pictureBox3.Image=pictureBox6.Image;
elseif(pictureBox9.Image==null)
pictureBox9.Image=pictureBox6.Image;
privatevoidpictureBox7_Click(objectsender,EventArgse)
if(pictureBox4.Image==null)
pictureBox4.Image=pictureBox7.Image;
pictureBox7.Image=null;
pictureBox8.Image=pictureBox7.Image;
privatevoidpictureBox8_Click(objectsender,EventArgse)
pictureBox5.Image=pictureBox8.Image;
pictureBox8.Image=null;
pictureBox7.Image=pictureBox8.Image;
pictureBox9.Image=pictureBox8.Image;
privatevoidpictureBox9_Click(objectsender,EventArgse)
if(pictureBox6.Image==null)
pictureBox6.Image=pictureBox9.Image;
pictureBox9.Image=null;
pictureBox8.Image=pictureBox9.Image;
//设置游戏最大步数
privatevoidlabel2_TextChanged(objectsender,EventArgse)
try
if(int.Parse(label2.Text)>
=200)
MessageBox.Show("
你已经超过了游戏所限定的最大步数,欢迎再来!
"
注意"
MessageBoxButtons.OK,MessageBoxIcon.Information);
catch{}
privatevoidbutton1_Click(objectsender,EventArgse)
button2.Enabled=true;
aa=aa+1;
for(intm=0;
m<
m++)
{
for(intn=0;
n<
n++)
t[m,n].Enabled=true;
ss:
switch(aa)//对图片进行随机的分割
case1:
Clipboard.SetImage(pictureBox1.Image);
pictureBox1.Image=pictureBox5.Image;
pictureBox5.Image=Clipboard.GetImage();
Clipboard.Clear();
Clipboard.SetImage(pictureBox2.Image);
pictureBox2.Image=pictureBox4.Image;
pictureBox4.Image=Clipboard.GetImage();
Clipboard.SetImage(pictureBox3.Image);
pictureBox3.Image=pictureBox8.Image;
pictureBox8.Image=Clipboard.GetImage();
button1.Enabled=false;
break;
case2:
pictureBox1.Image=pictureBox6.Image;
pictureBox6.Image=Clipboard.GetImage();
pictureBox2.Image=pictureBox8.Image;
pictureBox3.Image=pictureBox5.Image;
case3:
Clipboard.SetImage(pictureBox4.Image);
pictureBox4.Image=pictureBox6.Image;
case4:
pictureBox1.Image=pictureBox8.Image;
Clipboard.SetImage(pictureBox6.Image);
pictureBox9.Image=Clipboard.GetImage();
default:
aa=1;
gotoss;
//对数组赋值
privatevoidbutton2_Click(objectsender,EventArgse)
pictureBox1.Image=pictureBox10.Image;
pictureBox2.Image=pictureBox12.Image;
pictureBox3.Image=pictureBox15.Image;
pictureBox4.Image=pictureBox13.Image;
pictureBox5.Image=pictureBox14.Image;
pictureBox6.Image=pictureBox16.Image;
pictureBox7.Image=pictureBox17.Image;
pictureBox8.Image=pictureBox18.Image;
label2.Text="
;
bb=0;
button2.Enabled=false;
button1.Enabled=true;
t[m,n].Enabled=false;
//对游戏完成进行判断
privatevoidForm1_Activated(objectsender,EventArgse)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 面向 对象 课程设计 拼图游戏