打字游戏
来源:互联网 发布:思考快与慢 知乎 编辑:程序博客网 时间:2024/04/30 06:50
学习c#也有一段时间了,也写了一些小东西,但我不满足这些,下面是我写的一个小游戏,打字游戏,我就不拷贝全部代码了,我把主要实现复制下来。using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace 打字练习
{
/// 打字游戏的form类
/// <summary>
/// 打字游戏的form类
/// </summary>
public partial class Form1 : Form
{
public int Speed;//移动速度
public Random random;
public int Score;//分数
public int Grade;//等级
public bool ifInit;//对label进行初始化
/// form1的构造函数
/// <summary>
/// form1的构造函数
/// </summary>
public Form1()
{
InitializeComponent();
this.Text = "打字游戏";
Speed = 10;//标签移动速度
Score = 0;//分数
Grade = 1;//等级
random = new Random();
ifInit = true;//是否对label进行初始化
timer2.Enabled = false ;
radBGrade1.Checked = true;
FormBorderStyle = FormBorderStyle.Fixed3D;//边框风格
CancelButton = butExit;//Esc键退出
butBegin.KeyDown += new KeyEventHandler(Form1_KeyDown);
//将button1的keydown进行绑定
//panel1.Focus();//转移焦点
}
/// 对label进行初始化
/// <summary>
/// 对label进行初始化
/// </summary>
/// <param name="label"></param>
private void Initialize(Label label)
{
label.Top = 0;
label.Text = GetRandomChar();
int red = random.Next(255);
int green = random.Next(255);
int blue = random.Next(255);
label.ForeColor = Color.FromArgb(red, green, blue);
//label的前景色
}
/// 产生随机字母
/// <summary>
/// 产生随机字母
/// </summary>
/// <returns></returns>
public string GetRandomChar()
{
string s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
return s.Substring(random.Next(s.Length - 1), 1);
//substring(int,int)从字符串的第n位开始取n位,
//random.Next(s.Length - 1)产生一个小于罪大值的非负整数
}
/// 移动label
/// <summary>
/// 移动label
/// </summary>
/// <param name="label"></param>
private void Movelabel(Label label)
{
label.Top += (Speed*Grade );//改变label的top来移动
if (label.Top >= panel1.Height)//判断标签是否移动到了窗口的最下面
{
Initialize(label);
}
}
/// label.Text和KeyValue进行比较
/// <summary>
/// label.Text和KeyValue进行比较
/// </summary>
/// <param name="label"></param>
/// <param name="keyvalue"></param>
private void Compale(Label label, int keyvalue)
{
int acc1 = (int)char.Parse(label.Text.ToUpper());
if (keyvalue == acc1)
{
Score += 10;
labScore.Text = "分数:" + Score.ToString();
Initialize(label);
}
}
/// timer控制器
/// <summary>
/// timer控制器
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer2_Tick(object sender, EventArgs e)
{
//for (int i = 1; i <= 10; i++)
//{
// Movelabel(labeli);
//}
Movelabel(label1);
Movelabel(label2);
Movelabel(label3);
Movelabel(label4);
Movelabel(label5);
Movelabel(label6);
Movelabel(label7);
Movelabel(label8);
Movelabel(label9);
Movelabel(label10);
}
/// KeyDown事件
/// <summary>
/// KeyDown事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
Compale(label1, e.KeyValue);
Compale(label2, e.KeyValue);
Compale(label3, e.KeyValue);
Compale(label4, e.KeyValue);
Compale(label5, e.KeyValue);
Compale(label6, e.KeyValue);
Compale(label7, e.KeyValue);
Compale(label8, e.KeyValue);
Compale(label9, e.KeyValue);
Compale(label10, e.KeyValue);
}
//protected override bool ProcessDialogKey(Keys keyData)
//{
// //Compale(label1, keyData.ToString);
// return base.ProcessDialogKey(keyData);
//}
/// 开始按钮
/// <summary>
/// 开始按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void butBegin_Click_1(object sender, EventArgs e)
{
timer2.Enabled = true;
if (ifInit )
{
Initialize(label1);
Initialize(label2);
Initialize(label3);
Initialize(label4);
Initialize(label5);
Initialize(label6);
Initialize(label7);
Initialize(label8);
Initialize(label9);
Initialize(label10);
ifInit = false;
}
radBGrade1.Enabled = false;
radBGrade2.Enabled = false;
radBGrade3.Enabled = false;
radBGrade1.Visible = false;
radBGrade2.Visible = false;
radBGrade3.Visible = false;
labScore.Text = "分数:0";
}
/// 停止按钮
/// <summary>
/// 停止按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void butStop_Click(object sender, EventArgs e)
{
timer2.Enabled = false;
radBGrade1.Enabled = true ;
radBGrade2.Enabled = true;
radBGrade3.Enabled = true;
radBGrade1.Visible = true;
radBGrade2.Visible = true;
radBGrade3.Visible = true;
}
/// 退出按钮
/// <summary>
/// 退出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void butExit_Click(object sender, EventArgs e)
{
this.Close();
}
/// 等级1
/// <summary>
/// 等级1
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void radBGrade1_CheckedChanged(object sender, EventArgs e)
{
Grade = 1;
label1.Visible = false;
label3.Visible = false;
label5.Visible = false;
label7.Visible = false;
label9.Visible = false;
}
/// 等级2
/// <summary>
/// 等级2
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void radBGrade2_CheckedChanged(object sender, EventArgs e)
{
Grade = 2;
label1.Visible = true;
label3.Visible = true;
label5.Visible = true;
label7.Visible = true;
label9.Visible = true;
}
/// 等级3
/// <summary>
/// 等级3
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void radBGrade3_CheckedChanged(object sender, EventArgs e)
{
Grade = 3;
}
}
}
- 打字游戏
- 打字游戏
- 打字游戏
- 打字游戏
- 打字游戏
- 打字游戏
- flash打字游戏
- C#打字游戏
- 汇编打字游戏
- 打字游戏代码
- VB,打字游戏
- 打字游戏(2)
- [Win32] 打字游戏
- 打字游戏课程设计
- 打字游戏(摘)
- gui 打字游戏
- Java打字游戏
- 打字游戏c语言
- Out 与Ref 的却别
- 学JSP步骤
- MSP430搭的一个简易电压表,上位机用JAVA写的
- 从五个方面考虑Oracle的性能调优问题
- vi命令
- 打字游戏
- java中方法的可变参数的研究
- js解析xml
- 没有你的路,我依然会好好的走下去!
- 仿google分页
- 数据结构学习连载(二)
- html的学习网站。。
- 用javascript实现信息的增删改查
- 好好学习