




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计课程设计名称: 小小打字游戏 专 业 班 级 : 计算机科学与技术11级01班 指 导 教 师 : 姓 名 学 号 : 课程设计时间: 2013.1.5-2013.1.11 课题名:C#程序设计题目:打字游戏2013年1月10 日一、需求分析软件名称:小小打字游戏(1)描述: 使用VS2010开发环境,用C#语言编写一个打字游戏,游戏界面随机出现下落的A到Z的26个字母,当用户按下相应的键,游戏屏幕上正在下落的字母就会被消除,游戏分数将相应增加。(2) 系统功能:1、游戏显示:游戏窗口,随机下落颜色不定的65个字符,并根据游戏得分实时增加字母下落的速度。2、游戏操作:按下键盘上对应字符键,游戏窗口上正在下落的对应字母被消除,并使游戏分数增加1。3、实时显示用户的正确个数、错误个数和正确率!4、通过用户自己调整游戏的困难程度(包括高手,平民,菜鸟)。5用户自己可以控制游戏的开始,暂停,结束。2、 系统设计(图表方式,要有说明部分)(1) 新建程序项目:在VS2010上建立 game项目。(2)设计界面: 、如图1-1、 游戏窗口界面:有六个控件(4个Label控件,1个timer控件 ,1个menustrip控件),界面背景图片由系统函数生成黑色。(3)功能模块设计 1、系统模块游戏窗口模块随机产生字母游戏控制模块消除字母模块显示数据模块打字游戏2、操作流程图选择是否进行游戏开始游戏进行游戏主程序窗口Game over选择退出暂停若继续三、系统实现核心代码创建线程:private void timer1_Tick(object sender, EventArgs e) Random random=new Random (); Label label=new Label (); label .Height =40; label .Width =40; label.Left =random .Next (this .Width ); this.Controls.Add(label); letter letter=new letter (label ,random ,this ); thread = new Thread(new ThreadStart (letter.uptodown); thread.Start(); 窗体键盘事件以及统计正确与错误:private void Form1_KeyPress(object sender, KeyPressEventArgs e) bo = true; /建立一个布儿类型 foreach(object label in this.Controls) if(label is Label) Label b=(Label)label; if (b.Text0 = e.KeyChar) Controls.Remove(b); label1.Text = 正确: +Convert.ToString (+i) ; label3.Text = 正确率: + Convert.ToString(i * 1.0 / (i + j); bo = false; if (bo) label2.Text = 错误: + Convert.ToString(+j); label3.Text = 正确率: + Convert.ToString(i * 1.0 / (i + j); 其他功能函数(开始,暂停,结束): private void 开始ToolStripMenuItem_Click(object sender, EventArgs e) Controls.Remove(label4); timer1.Start(); private void 暂停ToolStripMenuItem_Click(object sender, EventArgs e) timer1.Stop(); private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) this.Close(); 难度调节代码: private void 普通ToolStripMenuItem_Click(object sender, EventArgs e) timer1.Interval = 1000; private void 困难ToolStripMenuItem_Click(object sender, EventArgs e) timer1.Interval = 100; private void 菜鸟ToolStripMenuItem_Click(object sender, EventArgs e) timer1.Interval = 2000; 字母飘动下落函数部分代码: try while (label.Top formparent.Height +100) if (label = null) Thread.CurrentThread.Abort(); label.Top += 1; Thread.Sleep(10); if (Thread.CurrentThread.IsAlive) Thread.CurrentThread.Abort(); 创建字母函数部分代码:speed = radom.Next(5) + 1; switch (speed) case 1: label.ForeColor = System.Drawing.Color.Pink; break; case 2: label.ForeColor = System.Drawing.Color.Aqua; break; case 3: label.ForeColor = System.Drawing.Color.Orange; break; case 4: label.ForeColor = System.Drawing.Color.White; break; case 5: label.ForeColor = System.Drawing.Color.Yellow; break; 四、游戏窗体截图运行图:五、所用的知识点Winform基础(包括简单控件的使用)、多线程的操作等等知识点。首先安排学生学习winform基础包括本项目涉及到的控件的使用方法;之后学习多线程的操作,安排一些简单的多线程例子来说明问题; 六、总结通过一周的企业实习,在老师的带领下,我们了解了企业内部运行的基本流程,同时分析了本专业的运用领域和发展前景,经过老师的介绍,我们深刻认识到现阶段自己所学的专业知识是远远不够的,所学的c是最基本的编程语言.运用的领域比较窄,而相比较而言C#具有更好的发展前景.这次实习老师采用边讲边实现的教学方式,学起来更加的灵活,记忆更加的深刻,用一种实现项目的方式,使我们所学的东西更加的容汇贯通.在学习C#的期间,我们感觉到这门既实用又好玩,从而深深的吸引我们继续学习下去,当取得一定的成果时,会感觉特别的有成就感!虽然在学习的同时遇到很多的困难,但我还是诚心的感觉在微软的重量级开发工具.Net平台上,C#更是发挥了他强大的作用,使得软件开发变为一件非常容易且高效的事情。C#在将来必定会占据软件行业高端市场,因此使用C#做高层软件开发是个不错的选择,将来我会考虑使用C#做高层软件开发。所有的计算机程序都是运行在计算机上的,因此所有的编程语言和开发工具在一定程度上都具有很大的共同点,熟练掌握好一门编程语言和一套开发工具,在今后学习其他的编程语言和工具时,会变得很容易很轻松。因此,学习阶段,不需要贪多,不需要追随最新,而是要求精。我们会坚持将程序发展这条路走下去,立志将中国的IT行业打造出一片新的天地。代码Program:using System;using System.Collections.Generic;using System.Windows.Forms;namespace game static class Program / / 应用程序的主入口点。 / STAThread static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(); Form1.cs:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Threading;namespace game public partial class Form1 : Form int i=0,j=0; bool bo=true; Thread thread; Label label4 = new Label(); public Form1() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) Control.CheckForIllegalCrossThreadCalls =false; label1.Text = 正确: 0 ; label2.Text = 错误: 0 ; label3.Text = 正确率: 0; label4.Font = new Font(宋体,25); label4.ForeColor= System.Drawing.Color.White; this.Controls.Add(label4); label4.Left = 150; label4.Top = 200; label4.Width = 200; label4.Height = 100; label4.Text = 欢迎使用; private void timer1_Tick(object sender, EventArgs e) Random random=new Random (); Label label=new Label (); label .Height =40; label .Width =40; label.Left =random .Next (this .Width ); this.Controls.Add(label); letter letter=new letter (label ,random ,this ); thread = new Thread(new ThreadStart (letter.uptodown); thread.Start(); private void Form1_KeyPress(object sender, KeyPressEventArgs e) bo = true; foreach(object label in this.Controls) if(label is Label) Label b=(Label)label; if (b.Text0 = e.KeyChar) Controls.Remove(b); label1.Text = 正确: +Convert.ToString (+i) ; label3.Text = 正确率: + Convert.ToString(i * 1.0 / (i + j); bo = false; if (bo) label2.Text = 错误: + Convert.ToString(+j); label3.Text = 正确率: + Convert.ToString(i * 1.0 / (i + j); private void 开始ToolStripMenuItem_Click(object sender, EventArgs e) Controls.Remove(label4); timer1.Start(); private void 暂停ToolStripMenuItem_Click(object sender, EventArgs e) timer1.Stop(); private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) this.Close(); private void 普通ToolStripMenuItem_Click(object sender, EventArgs e) timer1.Interval = 1000; private void 困难ToolStripMenuItem_Click(object sender, EventArgs e) timer1.Interval = 100; private void 菜鸟ToolStripMenuItem_Click(object sender, EventArgs e) timer1.Interval = 2000; Letter.cs:using System;using System.Collections.Generic;using System.Text;using System.Threading;using System.Windows.Forms ;namespace game public class letter private Label label; private Random radom; private Form formparent; int speed; public letter(Label _label, Random _radom, Form _formparent) label = _label; radom = _radom; formparent = _formparent; speed = radom.Next(5) + 1; switch (speed) case 1: label.ForeColor = System.Drawing.Color.Pink; break; case 2: label.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GSNOR-IN-1-生命科学试剂-MCE
- 2025福建泉州晋江国际机场招聘25人模拟试卷及答案详解(新)
- 安全培训效果评价计划课件
- 2025吉林农业大学招聘高层次人才7人模拟试卷及参考答案详解1套
- 广州货架安全管理培训课件
- 2025年第2批次浙江宁波前湾产业集团有限公司招聘9人考前自测高频考点模拟试题及完整答案详解
- 首饰产品质量承诺书6篇
- 智能制造产业智能化生产
- 2025福建泉州市安溪县部分公办学校专项招聘编制内新任教师65人(三)考前自测高频考点模拟试题及参考答案详解
- 直播带货合伙人合同协议书5篇
- 第2课《中国人首次进入自己的空间站》教学设计统编版八年级语文上册
- 基础化学(第五版)课件 第一章 物质结构基础
- 化疗药物使用顺序课件
- 福州市晋安区社区工作者招聘笔试真题2024
- 教学课件模板美术
- 三基三严培训课件
- 抑郁症的患者护理查房
- 2024年一建水利水电真题答案
- 主播岗位职业生涯规划与管理
- 老年综合评估各种表格
- 2025至2030全球及中国军事无线电系统行业产业运行态势及投资规划深度研究报告
评论
0/150
提交评论