c#键盘单词输入判断游戏
2017-06-15 11:22
405 查看
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; using System.IO; namespace WindowsFormsApplication68 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private int x = 200, y=20, num; private DateTime dt1, dt2; private int count = 0; //打字总数 private int yes = 0; //打字正确数 private TimeSpan ts;//存放时间的差值 /* Seconds:返回用秒计算的TimeSpan值。 */ Random rd = new Random(); private StreamReader sr = new StreamReader(@"text\myfile.txt", Encoding.GetEncoding("gb2312"));//把文件打包放在编写的项目里 string line; string[] word; private void Form1_Load(object sender, EventArgs e) { this.KeyPreview = true; button1.Text = "开始"; button2.Text = "暂停"; button3.Text = "退出"; label1.Text = "正确数:"; label2.Text = "错误数:"; label3.Text = "正确率:"; label4.Text = "0"; label5.Text = "0"; label7.Text = "所用时间:"; label8.Text = "0"; label6.Visible = false;//正确率隐藏 label9.Visible = false;//开始显示单词的也隐藏 timer1.Enabled = false;//两个计时器都不运行 //timer1.Interval = 5;//间隔时间为5毫秒 timer1.Interval = 5;//间隔时间为5毫秒 timer2.Enabled = false; timer2.Interval = 1000; line = sr.ReadToEnd();//取出单词 word = line.Split(','); 开始游戏ToolStripMenuItem.Click += new EventHandler(button1_Click); 暂停游戏ToolStripMenuItem.Click += new EventHandler(button2_Click); 结束游戏ToolStripMenuItem.Click += new EventHandler(button3_Click); } #region 按钮事件 private void button1_Click(object sender, EventArgs e)//点击开始(1.记录下当前的时间,两个计时器开始运行 2.正确率开始统计) { textBox1.Focus(); dt1 = DateTime.Now; timer1.Start(); timer2.Start(); num = rd.Next(0, word.Length); label9.Text = word[num];//设置下一个标签的值 label9.Visible = true; } private void button2_Click(object sender, EventArgs e)//游戏暂停(两个计时器停止计时,正确率隐藏,记录下当前的时间) { dt2 = DateTime.Now; timer1.Stop(); timer2.Stop(); label9.Visible = false; MessageBox.Show("游戏暂停!", "提示"); } private void button3_Click(object sender, EventArgs e)//退出游戏(计时器停止,单词标签不显示) { timer1.Stop(); /// timer2.Stop(); label9.Visible = false; DialogResult dr = MessageBox.Show("确定要退出吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (dr == DialogResult.OK) Application.Exit(); } #endregion #region 时间控件 private void timer1_Tick(object sender, EventArgs e)//第一个计时器触发事件 { y++; if (y > this.ClientSize.Height - 5)//定义随机产生的标签位置不能移出控件,若移出,显示在20的位置上 y = 20;//显示在开始定义的位置 label9.Text = word[num]; label9.Location = new Point(x, y);//设置新标签新的位置和颜色,只有y在不断的增加 label9.ForeColor = Color.FromArgb(rd.Next(0, 255), rd.Next(0, 255), rd.Next(0, 255)); // label9.ForeColor = Color.FromArgb(0,0,0);//黑色 } private void timer2_Tick(object sender, EventArgs e)//改变时间 { label8.Text = (DateTime.Now - dt1).Seconds.ToString();//显示所用的时间,现在时间-开始时间转换成字符形式 } #endregion #region 标签显示 private void 正确率ToolStripMenuItem_Click(object sender, EventArgs e) { double truerate = yes * 1.0 / count; string s = string.Format("{0,5:P2}", truerate); MessageBox.Show("正确率为:" + s, "正确率"); } private void 所用时间ToolStripMenuItem_Click(object sender, EventArgs e) { ts = dt2 - dt1; MessageBox.Show("所用时间为:" + ts.Seconds + "(s)", "所用时间"); } #endregion private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 13) { count++;//记录的总数 if (textBox1.Text == label9.Text)//输入正确时 { yes++; label9.Visible = false;//关闭单词标签 num = rd.Next(0, word.Length);//产生随机数 label9.Visible = true;//打开单词标签 label9.Text = word[num];// x = rd.Next(20, 490);//判断是否出界的时候就看所判断的标签大小 y = 20; label9.Location = new Point(x, y);//设置新的位置,也是随机的 } label6.Visible = true;//开始时间和正确率都显示 label8.Visible = true; label4.Text = yes.ToString();//显示正确数和错误数 label5.Text = (count - yes).ToString(); string t = string.Format("{0,5:P2}", yes * 1.0 / count); label6.Text = t.ToString();//计算正确率转换成百分号 textBox1.Text = ""; } } } }
工具栏上设置了快捷键
F1-开始
F2-暂停
F3-结束
图片:
相关文章推荐
- C#中判断扫描枪输入与键盘输入
- C# 输入一个数字,判断大于或者小于随机数——猜钱游戏
- C#中判断扫描枪输入与键盘输入
- C# 输入一个数字,判断大于或者小于随机数——猜钱游戏
- C#中判断扫描枪输入与键盘输入
- C#怎么判断扫描枪输入与键盘输入?
- C# 输入一个数字,判断大于或者小于随机数——猜钱游戏
- 有一个数列(1)循环输出数列的值(2)求数列中所有数值的和(3)猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含次数
- C#怎么判断扫描枪输入与键盘输入?
- C#中判断扫描枪输入与键盘输入
- C#中判断扫描枪输入与键盘输入
- 【转】C#中判断扫描枪输入与键盘输入
- xp下对dinput8.dll 游戏键盘输入的模拟 非函数hook
- c#判断输入文字是否是数字(转)
- C#正则表达式判断输入日期格式是否正确
- C#判断输入是否为汉字
- c#判断不按键盘不移动鼠标
- C#+低级Windows API钩子拦截键盘输入
- c#判断输入文字是否是数字
- 通过键盘输入一个字符串,判断字符串中出现最多的字符并输出该字符和输出出现次数