C#课程设计 ——小游戏打地鼠

课程设计说明书

代码(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.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开发的首选语言。

  1. 总体设计

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;

  1. 详细设计与实现

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;

}

  1. 小结和展望

本文集中讨论了一个基于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

评阅成绩: 评阅教师:

  • 4
    点赞
  • 126
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值