C面向对象课程设计拼图游戏_第1页
C面向对象课程设计拼图游戏_第2页
C面向对象课程设计拼图游戏_第3页
C面向对象课程设计拼图游戏_第4页
C面向对象课程设计拼图游戏_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、题 目:拼图游戏专 业: 计算机科学与技术学 号:姓 名:指导老师:完成日期:2012/12/26C#课程设计评分标准题 目:拼图游戏 专 业:计算机科学与技术 学 号:姓 名:考察项目评分依据完成情况分数报告(40分)规范完成设计报告,含光盘报告能够反映设计思路,并介绍系统功能报告内容比较完整,思路比较清晰,语句比较通顺报告内容完整,用语准确,能够反映系统开发过程前台开发工具(10分)能够使用开发工具的基本操作完成系统的开发能够熟练地运用开发工具来实现较全面的功能对开发工具熟悉,能够灵活使用各类控件和语句完成系统开发能够熟练掌握多种开发工具,并能够独立解决较复杂的编程问题。应用到多种数据库对

2、象。系统功能(25分)能够完成数据的输入输出和基本查询功能除了基本信息管理功能外,还可以完成比较复杂的数据查询和数据编辑功能能够方便地完成数据操作功能具有较复杂的数据管理功能系统界面设计(20分)具有一般的Window窗口界面功能比较全,操作也比较方便界面美观,功能全面,操作方便界面美观,功能设计有创新教师签字:成绩:目 录1 前言42 需求分析43 概要设计与详细设计54 编码与实现64.2具体代码实现(附源代码)95 课程设计总结18参考文献191.前言拼图游戏一款非常经典的小游戏,因为它比较简单有趣,无论老少都比较适合。拼图的设计对每一个C#语言设计者进行语言提高和进阶都是一个很好的锻炼

3、机会。 拼图游戏的设计比较复杂,它涉及面广、牵涉方面多,如果不好好考虑和设计,将难以成功开发出这个游戏。在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。因此,如何设计和开发好这个拼图游戏,对于提高C#开发水平和系统的设计能力有极大的帮助。在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。一个3×3的魔板,有一个格子是空的,其他格子内随机放置1-8共8个编号的方块,通过单击任意一个与空格子相邻的方块可以把该方块移入空格子,不断

4、的移动方块,直到方块按照图片的原来的顺序排好。2 需求分析2.1要求(1)用C#语言实现程序设计;(2)利用PictureBox控件来实现图片的移动(3)超过200步提示重新来(4)界面友好(良好的人机互交),程序要有注释。2.2任务(1)制作流程图(2)编写代码;(3)程序分析与调试。2.3运行环境(1)WINDOWS2000/XP/win7系统(2)TurboC编译环境2.4开发工具C#语言3 概要设计与详细设计3.1系统流程图如图所示。游戏开始操作游戏200步内完成游戏游戏完成图 系统流程图3.2功能结构图如图3.2所示。拼图游戏游戏开始游戏复位游戏结束游戏退出图3.2功能结构图这个游戏

5、主要分为四个模块,分别是游戏开始、游戏复位、游戏结束和游戏退出。这四个摸块的功能各不一样,游戏开始的模块就不用多介绍了,我们在这里主要说说重新开始的模块,如果玩家对自己本次的成绩不满意,可以通过重新开始模块来重完游戏4 编码与实现4.1分析说明游戏开始:界面如图4-1图4-1在程序开头定义变量,实例化数组;代码如下图游戏进行中 :当游戏运行的时候,桌面上会出现图上的图形界面。有一个文本框和一个图形界面。其中通过点击鼠标移动图片,游戏就正式开始,且此游戏是通过计算鼠标点击的次数,而不是计算时间,所以玩游戏的人可以有充分的时间考虑。游戏中见图4-2图4-2左右图片对照方便有游戏的进行,左下角有显示

6、有戏进行的步数,复位时直接把右边的图相应的赋给左边,代码实现如下图:这里从第一个到第九个PictureBox都有相应赋值和命令这里只截取Box1的图片对应的代码游戏时本段代码主要运用的c#知识是二维数组和ifelse语句,通过判断box1游戏复位:如果觉得自己的成绩不够好,可以选择复位重新开始。复位时直接把右边的图相应的赋给左边,复位后效果和刚开始一样。代码实现如下游戏完成:当玩家在200步以内完成拼图则提示"恭喜你已经完成拼图!"如图4-3 ;否则将提玩家重新来过如图4-4图4-44.2具体代码实现附源代码using System;using System.Collect

7、ions.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace拼图游戏2publicpartialclassForm1 : Formpublicstaticint aa;publicstaticint bb;private System.Windows.Forms.PictureBox, t; public Form1() InitializeComponent(); /实例化数组priva

8、tevoid Form1_Load(object sender, EventArgs e) t = newPictureBox3, 3pictureBox1 ,pictureBox2 ,pictureBox3 , pictureBox4 ,pictureBox5 ,pictureBox6 , pictureBox7 ,pictureBox8 ,pictureBox9 ;for (int i = 0; i <= 2; i+) for (int j = 0; j <= 2; j+) ti, j.Enabled = false; /图片的移动privatevoid pictureBox1

9、_Click(object sender, EventArgs e) bb+; label2.Text = bb.ToString();if (pictureBox2.Image = null) pictureBox2.Image = pictureBox1.Image; pictureBox1.Image = null; elseif (pictureBox4.Image = null) pictureBox4.Image = pictureBox1.Image; pictureBox1.Image = null; privatevoid pictureBox2_Click(object s

10、ender, EventArgs e) bb+; label2.Text = bb.ToString();if (pictureBox1.Image = null) pictureBox1.Image = pictureBox2.Image; pictureBox2.Image = null; elseif (pictureBox3.Image = null) pictureBox3.Image = pictureBox2.Image; pictureBox2.Image = null; elseif (pictureBox5.Image = null) pictureBox5.Image =

11、 pictureBox2.Image; pictureBox2.Image = null; privatevoid pictureBox3_Click(object sender, EventArgs e) bb+; label2.Text = bb.ToString();if (pictureBox2.Image = null) pictureBox2.Image = pictureBox3.Image; pictureBox3.Image = null; elseif (pictureBox6.Image = null) pictureBox6.Image = pictureBox3.Im

12、age; pictureBox3.Image = null; privatevoid pictureBox4_Click(object sender, EventArgs e) bb+; label2.Text = bb.ToString();if (pictureBox1.Image = null) pictureBox1.Image = pictureBox4.Image; pictureBox4.Image = null; elseif (pictureBox5.Image = null) pictureBox5.Image = pictureBox4.Image; pictureBox

13、4.Image = null; elseif (pictureBox7.Image = null) pictureBox7.Image = pictureBox4.Image; pictureBox4.Image = null; privatevoid pictureBox5_Click(object sender, EventArgs e) bb+; label2.Text = bb.ToString();if (pictureBox2.Image = null) pictureBox2.Image = pictureBox5.Image; pictureBox5.Image = null;

14、 elseif (pictureBox4.Image = null) pictureBox4.Image = pictureBox5.Image; pictureBox5.Image = null; elseif (pictureBox6.Image = null) pictureBox6.Image = pictureBox5.Image; pictureBox5.Image = null; elseif (pictureBox8.Image = null) pictureBox8.Image = pictureBox5.Image; pictureBox5.Image = null; pr

15、ivatevoid pictureBox6_Click(object sender, EventArgs e) bb+; label2.Text = bb.ToString();if (pictureBox5.Image = null) pictureBox5.Image = pictureBox6.Image; pictureBox6.Image = null; elseif (pictureBox3.Image = null) pictureBox3.Image = pictureBox6.Image; pictureBox6.Image = null; elseif (pictureBo

16、x9.Image = null) pictureBox9.Image = pictureBox6.Image; pictureBox6.Image = null; privatevoid pictureBox7_Click(object sender, EventArgs e) bb+; label2.Text = bb.ToString();if (pictureBox4.Image = null) pictureBox4.Image = pictureBox7.Image; pictureBox7.Image = null; elseif (pictureBox8.Image = null

17、) pictureBox8.Image = pictureBox7.Image; pictureBox7.Image = null; privatevoid pictureBox8_Click(object sender, EventArgs e) bb+; label2.Text = bb.ToString();if (pictureBox5.Image = null) pictureBox5.Image = pictureBox8.Image; pictureBox8.Image = null; elseif (pictureBox7.Image = null) pictureBox7.I

18、mage = pictureBox8.Image; pictureBox8.Image = null; elseif (pictureBox9.Image = null) pictureBox9.Image = pictureBox8.Image; pictureBox8.Image = null; privatevoid pictureBox9_Click(object sender, EventArgs e) bb+; label2.Text = bb.ToString();if (pictureBox6.Image = null) pictureBox6.Image = pictureB

19、ox9.Image; pictureBox9.Image = null; elseif (pictureBox8.Image = null) pictureBox8.Image = pictureBox9.Image; pictureBox9.Image = null; /设置游戏最大步数privatevoid label2_TextChanged(object sender, EventArgs e) try if (int.Parse(label2.Text) >=200) MessageBox.Show("你已经超过了游戏所限定的最大步数,欢迎再来!", &qu

20、ot;注意", MessageBoxButtons.OK, MessageBoxIcon.Information); catch privatevoid button1_Click(object sender, EventArgs e) button2.Enabled = true; pictureBox9.Image = null; aa = aa + 1; for (int m = 0; m <= 2; m+) for (int n = 0; n <= 2; n+) tm, n.Enabled = true; ss: switch (aa) /对图片进行随机的分割 c

21、ase 1: 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.Clear(); Clipboard.SetIm

22、age(pictureBox3.Image); pictureBox3.Image = pictureBox8.Image; pictureBox8.Image = Clipboard.GetImage(); Clipboard.Clear(); button1.Enabled = false; break; case 2: Clipboard.SetImage(pictureBox1.Image); pictureBox1.Image = pictureBox6.Image; pictureBox6.Image = Clipboard.GetImage(); Clipboard.Clear(

23、); Clipboard.SetImage(pictureBox2.Image); pictureBox2.Image = pictureBox8.Image; pictureBox8.Image = Clipboard.GetImage(); Clipboard.Clear(); Clipboard.SetImage(pictureBox3.Image); pictureBox3.Image = pictureBox5.Image; pictureBox5.Image = Clipboard.GetImage(); Clipboard.Clear(); button1.Enabled = f

24、alse; break; case 3: Clipboard.SetImage(pictureBox2.Image); pictureBox2.Image = pictureBox5.Image; pictureBox5.Image = Clipboard.GetImage(); Clipboard.Clear(); Clipboard.SetImage(pictureBox4.Image); pictureBox4.Image = pictureBox6.Image; pictureBox6.Image = Clipboard.GetImage(); Clipboard.Clear(); C

25、lipboard.SetImage(pictureBox3.Image); pictureBox3.Image = pictureBox8.Image; pictureBox8.Image = Clipboard.GetImage(); Clipboard.Clear(); button1.Enabled = false; break; case 4: Clipboard.SetImage(pictureBox1.Image); pictureBox1.Image = pictureBox8.Image; pictureBox8.Image = Clipboard.GetImage(); Cl

26、ipboard.Clear(); Clipboard.SetImage(pictureBox3.Image); pictureBox3.Image = pictureBox5.Image; pictureBox5.Image = Clipboard.GetImage(); Clipboard.Clear(); Clipboard.SetImage(pictureBox6.Image); pictureBox6.Image = pictureBox9.Image; pictureBox9.Image = Clipboard.GetImage(); Clipboard.Clear(); butto

27、n1.Enabled = false; break; default: aa = 1; goto ss; /对数组赋值privatevoid button2_Click(object sender, EventArgs e) pictureBox1.Image = pictureBox10.Image; pictureBox2.Image = pictureBox12.Image; pictureBox3.Image = pictureBox15.Image; pictureBox4.Image = pictureBox13.Image; pictureBox5.Image = picture

28、Box14.Image; pictureBox6.Image = pictureBox16.Image; pictureBox7.Image = pictureBox17.Image; pictureBox8.Image = pictureBox18.Image; pictureBox9.Image = null; label2.Text = "" bb = 0; button2.Enabled = false; button1.Enabled = true; for (int m = 0; m <= 2; m+) for (int n = 0; n <= 2;

29、 n+) tm, n.Enabled = false; /对游戏完成进行判断privatevoid Form1_Activated(object sender, EventArgs e) if (pictureBox1.Image = pictureBox10.Image && pictureBox2.Image = pictureBox12.Image && pictureBox3.Image = pictureBox13.Image && pictureBox4.Image = pictureBox14.Image && pictureBox5.Image = pictureBox15.Image && pictureBox6.Image = pictureBox16.Image && pictureBox7.Image = pictureBox17.Image && pictureBox8.Image = pictureBox18.Image && pictureB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论