课程设计说明书
代码(32条消息) C#课程设计-打地鼠小游戏-C#文档类资源-CSDN文库
设计题目: 打地鼠小游戏
院(系) 软件工程学院
专业年级 19级计科1班
学生姓名 学号
同组同学姓名 学号
指导教师
日 期 2021年12月
目 录
1 引 言 3
1.1课程设计的目的 3
1.2本选题的内容要求 3
1.3 软件开发运行环境 3
2 总体设计 4
2.1设计思路 4
2.2软件总体结构图 4
2.3主要功能模块的设计 5
3 详细设计与实现 6
3.1 界面模块 6
3.1.1界面功能设计 7
3.1.2游戏主界面设计 7
3.1.3主界面主要代码 8
3.2 各个界面 9
3.2.1登录注册界面功能设计 9
3.2.游戏界面设计 10
3.3 游戏区 10
3.3.1游戏区功能设计 11
3.3.2游戏区界面设计 11
3.3.3游戏区行列主要代码 12
4 小结和展望 13
参 考 文 献 14
-
引 言
1.1课程设计的目的
现如今,电子游戏已慢慢渗透进人们生活中,并在扮演着越来越重的角色。可以说,随着它的迅猛发展,现今的电子游戏已经不仅仅是一种娱乐,而是形成了一种文化现象。游戏本来的目的是为了要让人们在忙碌的生活节奏中放松身心,轻松一下、让人娱乐的。单机游戏,指仅使用一台计算机或者其它游戏平台就可以独立运行的电子游戏。由于其不必连入互联网也可进行游戏从而摆脱了很多的限制,只需要一台计算机即可体验游戏。
本游戏的制作属于简单的益智类游戏可以使玩家体验到娱乐与消遣,打地鼠作为娱乐性质的游戏项目,可以锻炼玩家的反应能力,其次,本游戏可通过敲击键盘来控制锤子打地鼠,还能锻炼玩家对键盘的熟悉程度。
打地鼠游戏设计牵涉到图像处理函数、以及鼠标控制等各方面知识,许多函数的使用方法可借鉴扫雷游戏的处理方法,通过对现有打地鼠游戏的改造,形成特有的TC下的打地鼠游戏。
1.2本选题的内容要求
本游戏需要与一般的其他游戏一样,能够便捷地良好的界面使用人员能快捷简单的进行操作。除此之外,还能即时准确的获得游戏结果
总结来说,本游戏应该能够满足用户的以下需求:
(1)能够体验游戏的畅玩的感觉。
(2)有信息的数字化显示,以方便所有用户对游戏结果的了解。
(3)运行欢迎界面和注册登录时,可现实简单的动画效果,使游戏增添无限乐趣。
(4)运行游戏时,可出现时间限制,增加用户对时间的观点操作。
(5)点击出现的地鼠,会触发地鼠被打之后的照片特效,可增加用户对本游戏畅玩的游戏快感。
1.3 软件开发运行环境
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员 AndersHejlsberg 的最新成果.C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows 网络框架的主角。
C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
-
总体设计
2.1设计思路
①显示栏的设计及功能实现:显示栏主要包括打中次数、总点击数、剩余时间三种常见显示数据。其中打中次数表示鼠标单击击中地鼠的次数,总点击数表示单机鼠标次数,剩余时间表示游戏结束时间(这里设置了三分钟倒计时)。
②画图区的设计:对图片的编辑处理区。
③设置栏的设计:不同的文本框和按钮生成游戏界面。
2.2软件总体结构图
打地鼠的界面分为三部分,第一部分最上面的显示栏部分,中间是游戏界面部分,最下面是设置栏按钮部分。利用Visual Studio 2012 Windows窗体应用程序首先开始设计一个整体的界面,菜单栏中分别有:打中次数、总点击数、剩余时间。显示部分由登录界面的图片以及生成界面组成,定义打地鼠所需要的按钮并赋给其按钮名称,使得使用打地鼠游戏简单明了,清晰可见,操作轻松。
给各个按钮进行属性设置,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的设置,生成数据并显示。

2.3主要功能模块的设计
(1) 主界面功能表
注册登录
序号 |
功能内容 |
控件 |
对象名 |
备注 |
1 |
显示输入提醒 |
Lable1 |
输入游戏ID |
|
2 |
转跳到注册界面 |
Button1 |
注册 |
|
3 |
转跳到游戏界面 |
Button2 |
登录 |
(2) 游戏界面功能表
序号 |
功能内容 |
控件 |
对象名 |
备注 |
1 |
游戏界面显示 |
Panel |
panel1; |
|
2 |
开始及界面生成 |
Panel |
panel2; |
|
3 |
开始按钮 |
Button |
button2; |
|
4 |
生成界面按钮 |
Button |
button1; |
|
5 |
行列输入 |
TextBox |
textBox1; |
|
6 |
提示输入行列 |
Label |
label1; |
|
7 |
地鼠出现时间 |
Timer |
timer1; |
|
8 |
最上面显示栏 |
Panel |
panel3; |
|
9 |
总点击次数 |
Label |
label5; |
|
10 |
总点击次数 |
Label |
label4; |
|
11 |
打中次数 |
Label |
label3; |
|
12 |
打中次数 |
Label |
label2; |
|
13 |
剩余时间 |
Label |
label7; |
|
14 |
剩余时间 |
Label |
label6; |
|
15 |
倒计时计时 |
Timer |
timer2; |
-
详细设计与实现
3.1 界面模块
3.1.1界面功能设计
打地鼠的主界面分为注册,登陆界面栏、游戏界面三部分。其中,游戏界面区实现了显示栏实现了游戏的记录、计时等操作;登录界面栏实现了输入账号登录,实现账号注册操作;状态栏实现了显示鼠标当前状态。


3.1.2游戏主界面设计
打地鼠的主界面如下图所示,在登入界面加入图片,使其界面更为美观;一开始调明剩余时间让玩家有三分钟倒计时准备。

图3-1 主界面图
3.1.3主界面主要代码
namespace WindowsFormsApplication6
{
public partial class Form1 : For
{
public Form1()
{
InitializeComponent();
}
//设置游戏显示界面最大,最小行列数
int DSIZE = 60;
int COUNT = 4;
Button[,] btn;
//游戏开始按钮的相关设置
点击开始后把button2属性text由“开始”变为“停止”
private void button2_Click(object sender, EventArgs e)
{
if (button2.Text == "开始")
{
timer1.Enabled = true;
button2.Text = "停止";
timer2.Start();
}
else
{
timer1.Enabled = false;
button2.Text = "开始";
timer2.Stop();
}
}
private void panel1_MouseEnter(object sender, EventArgs e)
{
this.Cursor = new Cursor("imgs/hit.cur");//锤子
}
private void panel1_MouseLeave(object sender, EventArgs e)
{
this.Cursor = new Cursor("imgs/hit.cur");
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
}
private void Form1_Click(object sender, EventArgs e)
{
int zong=int.Parse(label5.Text);
zong++;//点击次数计数
label5.Text =zong + " ";
Button bn = (Button)sender;
if (bn.Tag.ToString() =="1" )
{
bn.BackgroundImage = Image.FromFile("imgs/heatmouse.png");//播放挨打
int dj = int.Parse(label3.Text);//打中次数
dj++;
label3.Text = dj + " ";
}
}
//游戏倒计时设置,180秒
int time = 180;
int count = 0;
private void timer2_Tick(object sender, EventArgs e)
{
count++; //计当前秒
label7.Text = (time - count).ToString() + "秒";//显示剩余时间 不需要提取,可以不加空格
if(count == time)
{
timer2.Stop();//时间到,停止计时
MessageBox.Show("时间到,游戏结束!!", "提示");//弹出提示框 show("内容","标题")
}
}
}
}
3.2 各个界面
3.2.1登录注册界面功能设计
登陆界面包括登录界面和注册界面两部分。注册新账号保存在 name.txt
登录时在文件中查找,实现代码如下:

注册界面实现代码如下:
private void button1_Click(object sender, EventArgs e)
{
bool flage = true;
if (textBox1.Text == "")
MessageBox.Show("注册名不能为空!");
else
{
string s;
StreamReader reader = new StreamReader("name.txt");
do
{
s = reader.ReadLine();
if (s == textBox1.Text)
{
flage = false;
MessageBox.Show("该用户已注册!");
}
}
while (!reader.EndOfStream && flage);
reader.Dispose();
if (flage)
{
StreamWriter writer = new StreamWriter("name.txt", true);
writer.WriteLine(textBox1.Text);
MessageBox.Show("用户注册成功,请进行登录!");
writer.Dispose();
}
3.2.2游戏界面设计
从本地资源中导入图片进行插入达到美观效果

引入图片包制作鼠标、生成界面效果

3.3 游戏区
3.3.1游戏区功能设计
游戏区可以利用鼠标单机生成的方块格,电脑进行识别计数。
3.3.2游戏区界面设计(例4*4)

图3-9 画图界面
3.3.3游戏区行列主要代码
private void button1_Click(object sender, EventArgs e)
{
panel1.Controls.Clear();
int x= int.Parse(textBox1.Text);//获得输入的数
if (x > COUNT)//
COUNT = x;
//图片在界面显示
btn=new Button[COUNT,COUNT];//申明一个二维数组
DSIZE = panel1.Width / COUNT;
for(int i = 0;i < COUNT;i++ )//
{
for(int j=0;j<COUNT;j++)
{
btn[i,j] = new Button();
// btn[i, j].Text = i + "," + j;//显示坐标
btn[i,j].BackgroundImage=Image.FromFile("imgs/field.png");
//显示图片
btn[i, j].BackgroundImageLayout = ImageLayout.Stretch;
//背景图片布局,铺满
btn[i, j].Tag = 0;//0表示地洞,1表示地鼠
btn[i,j].Click+=Form1_Click;//委托
btn[i,j].Width = DSIZE;
btn[i,j].Height = DSIZE;
btn[i,j].Left = j * DSIZE;
btn[i,j].Top = i * DSIZE;
panel1.Controls.Add(btn[i,j]);
}
}
button1.Enabled = false;
button2.Enabled = true;
}
-
小结和展望
本文集中讨论了一个基于C#的打地鼠游戏系统的设计与实现。文章首先分析了系统的关键技术,包括C#、SQL技术等。接着在关键技术的基础上,提出了打地鼠游戏系统的设计,设计是基于对整个系统的需求分析的。最后,利用划分模块的方法实现了整个系统并进行了测试。测试的结果表明,打地鼠游戏系统能够对用户进行工作减压和能够打发无聊的时间,能够快速地将结构化的信息导出使用。同时,测试结果也表明了打地鼠游戏系统具有可扩展性强、事务处理速率快、响应时间短、持续工作能力强等特点。
本游戏是以C#作为开发语言、Visual Stduio 2012为开发平台来实现的。该系统的开发以模块化设计作为思想,编码时十分注意编码规范,充分吸取设计模式的精髓思想。不仅保证了程序的正常运行,注释详尽、命名规范、可读性强、可修改性强的一份代码也保证了程序的可维护性、易维护性。
本游戏重点是在于对数据的处理,以及逻辑思维的运用。当游戏开始时,读数据的处理也就开始了,每次点击出现的地鼠按钮都调用分数处理方法,对每个地鼠得分情况的分值进行统计。逻辑思维方面的问题,用Button点击事件精准而且简单。
但本游戏还可以尽量完善,就是游戏进行联机操作以及实现游戏分享等功能。还有待进一步的开发。开所欠缺的知识太多,无法进行。因为还没有相关的技术以及相关的材料,所以联机访问远程数据库功能实现,我会在学习这方面有关的知识,让游戏更加的完善,让本游戏向商业化发展。
参考文献
[1]朱浩悦,计算机软件JAVA编程特点分析[M].黑龙江科技信息,2007
[2]邢翀,基于Java的在线考试系统的设计与实现[M].科技创新导报,2015
[3] 王保罗.Java面向对象程序设计[M]. 北京:清华大学出版社,2003
[4] 张珣,杨三成.关键技术JSP与JDBC应用详解[M].中国铁道出版,2010
[5] 刘腾红,孙细明.信息系统分析与设计[M].北京:科学出版社,2003
[6] 于万波、刘其昌等.Java语言实用教程.北京:清华大学出版社,2008
[7] 毕广吉.Java程序设计实例教程[M]. 北京:冶金工业出版社,2007
[8] 朱战立,沈伟. Java程序设计实用教程〔M].北京:清华大学出版社,2005
[9] 耿祥义,张跃平.Java设计模式[M].北京:清华大学出版社,2009
[10] Bruce Eckel.Java编程思想[M].北京:机械工业出版社,2003
[11]王军,基于Java的垂直搜索引擎的设计方式构建[M].信息化建设,2009文章来源:https://www.toymoban.com/news/detail-495054.html
评阅成绩: 评阅教师: 文章来源地址https://www.toymoban.com/news/detail-495054.html
到了这里,关于C#课程设计 ——小游戏打地鼠的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!