C#实现打字小游戏(一)
程序员文章站
2022-07-16 18:54:46
...
先附上两张截图
这里主要是针对C#计时器的使用
初始时间我们定为三分钟这里用label标签来显示英文字母
public void initlabel()
{
let1.Top = 25;
let2.Top = 28;
let3.Top = 24;
let4.Top = 24;
//getlet()是获取英文字母
let1.Text = getlet().ToString();
let2.Text = getlet().ToString();
let3.Text = getlet().ToString();
let4.Text = getlet().ToString();
//利用随机数产生颜色
let1.ForeColor = Color.FromArgb(rd.Next(0,256),rd.Next(0,256),rd.Next(0,256));
let2.ForeColor = Color.FromArgb(rd.Next(0,256), rd.Next(0,256), rd.Next(0,256));
let3.ForeColor = Color.FromArgb(rd.Next(0, 256), rd.Next(0, 256), rd.Next(0, 256));
let4.ForeColor = Color.FromArgb(rd.Next(0, 256), rd.Next(0, 256), rd.Next(0, 256));
}
private char getlet()
{
//随机产生字母
return Convert.ToChar(rd.Next(65,90));
throw new NotImplementedException();
}
这样就完成了标签的初始化,然后使用计时器来控制降落速度
if(let1.Bottom <= this.Height)
{
let1.Top += 10;
let2.Top += 10;
let3.Top += 10;
let4.Top += 10;
}else
{
initlabel();
}
//这里都是控制时间的显示(倒计时三分钟),这个要再创建一个计时器
if (n == 0)
{
n = 60;
m -= 1;
}
n -= 1;
label5.Text = h + " : " + m + " : " + n;
if (h < 10 || m < 10 || n < 10)
{
//这些为了显示好看,因为小于是10的时候只显示一个数字,前面加上0
if (h < 10)
label5.Text = "0" + h + " : " + m + " : " + n;
if (m < 10)
label5.Text = h + " : " + "0" + m + " : " + n;
if (n < 10)
label5.Text = h + " : " + m + " : " + "0" + n;
if (n < 10 && h < 10)
label5.Text = "0" + h + " : " + m + " : " + "0" + n;
if (m < 10 && h < 10)
label5.Text = "0" + h + " : " + "0" + m + " : " + n;
if (m < 10 && n < 10)
label5.Text = h + " : " + "0" + m + " : " + "0" + n;
if (h < 10 && m < 10 && n < 10)
label5.Text = "0" + h + " : " + "0" + m + " : " + "0" + n;
}
然后是当键盘输入正确时让标签重新初始化
private void MainForm_KeyPress(object sender, KeyPressEventArgs e)
{
num++;//记录点击次数
//如果输入正确
if (e.KeyChar == Convert.ToChar(let1.Text)||e.KeyChar== Convert.ToChar(let2.Text)||
e.KeyChar == Convert.ToChar(let3.Text) || e.KeyChar == Convert.ToChar(let4.Text))
{
if(e.KeyChar == Convert.ToChar(let1.Text))
{
initlabel(let1);
gnum++; //这里都是记录正确的个数
}
else if(e.KeyChar == Convert.ToChar(let2.Text))
{
initlabel(let2);
gnum++;
}else if(e.KeyChar == Convert.ToChar(let3.Text))
{
initlabel(let3);
gnum++;
}else if (e.KeyChar == Convert.ToChar(let4.Text))
{
initlabel(let4);
gnum++;
}
}
textBox1.Text = num.ToString();
textBox2.Text = gnum.ToString();
}
最后就是模式的选择:简单,中等,困难
里面以共有四个标签,简单显示两个,中等三个,困难四个还有他们的降落速度也是递增的
其他的都是一些小细节了(开始,暂停等)在此就不演示了
上一篇: 【机器学习基础】Python数据预处理:彻底理解标准化和归一化
下一篇: C语言实现简易金山打字通