C#打字游戏课程设计.docx

上传人:b****7 文档编号:15613405 上传时间:2023-07-06 格式:DOCX 页数:17 大小:85.62KB
下载 相关 举报
C#打字游戏课程设计.docx_第1页
第1页 / 共17页
C#打字游戏课程设计.docx_第2页
第2页 / 共17页
C#打字游戏课程设计.docx_第3页
第3页 / 共17页
C#打字游戏课程设计.docx_第4页
第4页 / 共17页
C#打字游戏课程设计.docx_第5页
第5页 / 共17页
C#打字游戏课程设计.docx_第6页
第6页 / 共17页
C#打字游戏课程设计.docx_第7页
第7页 / 共17页
C#打字游戏课程设计.docx_第8页
第8页 / 共17页
C#打字游戏课程设计.docx_第9页
第9页 / 共17页
C#打字游戏课程设计.docx_第10页
第10页 / 共17页
C#打字游戏课程设计.docx_第11页
第11页 / 共17页
C#打字游戏课程设计.docx_第12页
第12页 / 共17页
C#打字游戏课程设计.docx_第13页
第13页 / 共17页
C#打字游戏课程设计.docx_第14页
第14页 / 共17页
C#打字游戏课程设计.docx_第15页
第15页 / 共17页
C#打字游戏课程设计.docx_第16页
第16页 / 共17页
C#打字游戏课程设计.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C#打字游戏课程设计.docx

《C#打字游戏课程设计.docx》由会员分享,可在线阅读,更多相关《C#打字游戏课程设计.docx(17页珍藏版)》请在冰点文库上搜索。

C#打字游戏课程设计.docx

C#打字游戏课程设计

C#打字游戏

程序核心代码主要部分:

设计程序流程图:

程序截图:

主窗体代码:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

//课程名称C#程序设计实践

//设计题目打字游戏

//专业计算机科学与技术

//班级

//学号

//姓名

//指导老师

namespaceTyping_Game

{

publicpartialclassFrmTyping:

Form

{

publicFrmTyping()

{

InitializeComponent();

}

publicintright=0;//正确个数计数

publicintwrong=0;//错误个数计数

publicintsum=0;//总个数技术

publicintcount=0;//按键总次数

publicfloataccuracy;//正确率

publicintMinute=1;//设置默认没局游戏时间

publicintminute;//设置游戏中的倒计时分

publicintsecond;//设置游戏中的倒计时秒

privatevoidFrmTyping_Load(objectsender,EventArgse)

{

}

//在状态栏中显示当前系统时间

privatevoidtimerSys_Tick(objectsender,EventArgse)

{

DateTimenow=DateTime.Now;

this.tsslSysTime.Text="系统时间:

"+now.Hour.ToString()+":

"+now.Minute.ToString()+":

"+now.Second.ToString()+'\t';

}

//开始&结束按钮

privatevoidtsmiStratOrOver_Click(objectsender,EventArgse)

{

if(tsmiStratOrOver.Text=="开始")

{

tsmiStratOrOver.Text="结束";

timerWord.Start();

timerGame.Start();

timerGT.Start();

//在游戏开始时暂停&继续按钮可用

tsmiPauseOrContinue.Enabled=true;

//在游戏未开始时选择游戏等级与设置游戏按钮无效

tsmiLevel.Enabled=false;

tsmiOption.Enabled=false;

//游戏开始初始化游戏数据

right=0;

wrong=0;

sum=0;

count=0;

minute=Minute;

second=0;

}

else

{

tsmiStratOrOver.Text="开始";

//在游戏未开始时暂停&继续按钮无效

tsmiPauseOrContinue.Enabled=false;

//在游戏未开始时可以选择游戏等级与设置游戏

tsmiLevel.Enabled=true;

tsmiOption.Enabled=true;

frmResultfrm=newfrmResult(this);

frm.Show();

}

}

//游戏暂停&继续功能实现

privatevoidtsmiPauseOrContinue_Click(objectsender,EventArgse)

{

if(tsmiPauseOrContinue.Text=="暂停")

{

tsmiPauseOrContinue.Text="继续";

timerWord.Enabled=false;

timerGame.Enabled=false;

timerGT.Enabled=false;

}

else

{

tsmiPauseOrContinue.Text="暂停";

timerWord.Enabled=true;

timerGame.Enabled=true;

timerGT.Enabled=true;

}

}

//退出程序

privatevoidtsmiExit_Click(objectsender,EventArgse)

{

Application.Exit();

}

//游戏等级为初级时

privatevoidtsmiLevelPrimary_Click(objectsender,EventArgse)

{

tsmiLevelPrimary.Checked=true;

tsmiLevelMidder.Checked=false;

tsmiLevelHigh.Checked=false;

timerGame.Interval=180;

timerWord.Interval=1800;

}

//游戏等级为中级时

privatevoidtsmiLevelMidder_Click(objectsender,EventArgse)

{

tsmiLevelPrimary.Checked=false;

tsmiLevelMidder.Checked=true;

tsmiLevelHigh.Checked=false;

timerGame.Interval=90;

timerWord.Interval=900;

}

//游戏等级为高级时

privatevoidtsmiLevelHigh_Click(objectsender,EventArgse)

{

tsmiLevelPrimary.Checked=false;

tsmiLevelMidder.Checked=false;

tsmiLevelHigh.Checked=true;

timerGame.Interval=50;

timerWord.Interval=500;

}

//跳出设置每局时间窗体

privatevoidtsmiSetTime_Click(objectsender,EventArgse)

{

frmSetTimefrm=newfrmSetTime(this);

frm.Show();

}

//跳出关于窗体

privatevoidtsmiAbout_Click(objectsender,EventArgse)

{

Aboutfrm=newAbout();

frm.Show();

}

//对打字游戏中字母的掉落

privatevoidtimerGame_Tick(objectsender,EventArgse)

{

foreach(Controlconinthis.Controls)

{

if(conisLabel)

{

if(con.Top>=this.Height-51)

{

con.Dispose();//当label掉落到窗体边框label消失

}

else

con.Top+=5;

}

}

}

//对打字游戏开始时不断随机生成的字母添加到新生成的label中并设置label的基本属性

privatevoidtimerWord_Tick(objectsender,EventArgse)

{

Randomr=newRandom();

inta=r.Next(65,90);//随机生成A~Z的ASCII码

charc=Convert.ToChar(a);//ASCII转换成字母

LabellalChar=newLabel();//生成新Label

lalChar.Text=c.ToString();//字母放入

//设置Label基本属性固定大小字体居中对齐等等...

lalChar.AutoSize=false;

lalChar.Height=51;

lalChar.Width=51;

lalChar.Left=r.Next(r.Next(0,this.Width/5-25),r.Next(this.Width-100,this.Width-51));

lalChar.Font=newFont("楷体",15,FontStyle.Regular);

lalChar.TextAlign=ContentAlignment.MiddleCenter;

//将Label加入到Controls中

this.Controls.Add(lalChar);

//每生成一个Label计入字母总数中

sum++;

//每生成一个Label都重新计算一次正确率

accuracy=(float)right/(2*sum)+(float)right/(2*count);

//状态栏中实时更新数据统计

tsslSum.Text="总个数为:

"+sum.ToString();

tsslAccuracy.Text="正确率为:

"+(accuracy*100).ToString()+"%";

}

//状态栏中的倒计时算法

privatevoidtimerGT_Tick(objectsender,EventArgse)

{

if(minute==0&&second==0)

{

frmResultfrm=newfrmResult(this);

frm.Show();

}

elseif(second==0)

{

minute-=1;

second=59;

}

else

second-=1;

//实时更新倒计时数据

tsslGameTime.Text="游戏剩余时间:

"+minute.ToString()+":

"+second.ToString();

}

//键盘输入对应的正确或错误的处理

privatevoidFrmTyping_KeyPress(objectsender,KeyPressEventArgse)

{

//每按下一个按键加入输入总数的计数

count++;

//boolt的值来判定输入的对错

boolt=false;

strings=e.KeyChar.ToString().ToUpper();

foreach(Controlconinthis.Controls)

{

if(conisLabel)

{

if(con.Text==s)

{

t=true;

right++;

con.Dispose();

break;

}

}

}

if(t==false)

wrong++;

//实时更新状态栏的数据

tsslRightNo.Text="正确个数:

"+right.ToString();

tsslWrongNo.Text="错误个数:

"+wrong.ToString();

accuracy=(float)right/(2*sum)+(float)right/(2*count);

tsslAccuracy.Text="正确率为:

"+(accuracy*100).ToString()+"%";

}

}

}

时间设置窗体代码:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceTyping_Game

{

publicpartialclassfrmSetTime:

Form

{

FrmTypingfrm;

publicfrmSetTime(FrmTypingfrm)

{

InitializeComponent();

this.frm=frm;

}

//当窗体跳出时textbox默认显示当前游戏的每局时间

privatevoidfrmSetTime_Load(objectsender,EventArgse)

{

textBox1.Text=frm.Minute.ToString();

}

//当textbox中内容发生变化时,对textbox中的内容做出判断如果不符合要求label显示提示错误的输入。

privatevoidtextBox1_TextChanged(objectsender,EventArgse)

{

lalPS.Text="";

btnOK.Enabled=true;

try

{

intm=Convert.ToInt32(textBox1.Text);

if(m<1||m>60)

{

lalPS.Text="请输入1~60的整数";

btnOK.Enabled=false;

}

}

catch(Exceptionex)

{

lalPS.Text="请输入1~60的整数";

btnOK.Enabled=false;

}

}

//“确定”后数据返回到主窗体从而改变每局时间

privatevoidbtnOK_Click(objectsender,EventArgse)

{

frm.Minute=int.Parse(textBox1.Text);

this.Close();

}

//“取消”

privatevoidBtnCancel_Click(objectsender,EventArgse)

{

this.Close();

}

}

}

成绩窗体代码:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceTyping_Game

{

publicpartialclassfrmResult:

Form

{

FrmTypingfrm;

publicfrmResult(FrmTypingfrm)

{

InitializeComponent();

this.frm=frm;

}

//按下"确定"键后原有面板上的显示数据全部清空

privatevoidbutton2_Click(objectsender,EventArgse)

{

foreach(Controlconinfrm.Controls)

{

if(conisLabel)

{

con.Visible=false;

}

}

this.Close();

frm.right=0;

frm.sum=0;

frm.wrong=0;

frm.accuracy=0;

frm.tsslAccuracy.Text="";

frm.tsslRightNo.Text="";

frm.tsslWrongNo.Text="";

frm.tsslGameTime.Text="";

frm.tsslSum.Text="";

frm.tsmiLevel.Enabled=true;

frm.tsmiOption.Enabled=true;

}

//当该窗体跳出时显示游戏得分等情况同时计时器全部停止

privatevoidfrmResult_Load(objectsender,EventArgse)

{

frm.timerWord.Stop();

frm.timerGame.Stop();

frm.timerGT.Stop();

lblLevel.Text=(frm.tsmiLevelPrimary.Checked?

frm.tsmiLevelPrimary.Text:

(frm.tsmiLevelMidder.Checked?

frm.tsmiLevelMidder.Text:

frm.tsmiLevelHigh.Text));

lblSum.Text=frm.sum.ToString();

lblRight.Text=frm.right.ToString();

lblWrong.Text=frm.wrong.ToString();

lblAccuracy.Text=(frm.accuracy*100).ToString()+"%";

if(frm.minute==0&&frm.second==0)

lblTime.Text=frm.Minute.ToString()+":

00";

else

lblTime.Text=(frm.Minute-frm.minute-1).ToString()+":

"+(60-frm.second).ToString();

}

}

}

(注:

可编辑下载,若有不当之处,请指正,谢谢!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2