早教吧作业答案频道 -->其他-->
用winform实现的一个打字游戏求用C#winform实现的一个打字游戏主要由以下部分组成:(1)随机生成字符(2)把生成的字符在屏幕上方显示出来,并开始在屏幕上匀速下落(3)如果用户击
题目详情
用 winform实现的一个打字游戏
求用C# winform实现的一个打字游戏
主要由以下部分组成:
(1) 随机生成字符
(2) 把生成的字符在屏幕上方显示出来,并开始在屏幕上匀速下落
(3) 如果用户击键正确,则字符消失;如果用户击键不正确,则字符继续掉落,直至到达显示区的底部。
(4) 要求有不同级别选择:初级、中级和高级,根据不同级别可以控制字符生成和下落的速度
(5) 屏幕上可以动态显示打字练习的分数(击中字符数/总生成的字符数)
(6) 自学图像处理知识,使得尽量界面美观
求用C# winform实现的一个打字游戏
主要由以下部分组成:
(1) 随机生成字符
(2) 把生成的字符在屏幕上方显示出来,并开始在屏幕上匀速下落
(3) 如果用户击键正确,则字符消失;如果用户击键不正确,则字符继续掉落,直至到达显示区的底部。
(4) 要求有不同级别选择:初级、中级和高级,根据不同级别可以控制字符生成和下落的速度
(5) 屏幕上可以动态显示打字练习的分数(击中字符数/总生成的字符数)
(6) 自学图像处理知识,使得尽量界面美观
▼优质解答
答案和解析
5分呀,帮你顶一下吧!
精简版。
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.Threading;
namespace 打字游戏
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
}
public void LabelMove(object o)
{
Label label = (Label)o;
for (int i = 1; i <= this.Height; i++)
{
label.Top += 1;
Thread.Sleep(10);
}
if (Thread.CurrentThread.IsAlive)
{
Thread.CurrentThread.Abort();
}
}
private void timer1_Tick(object sender, EventArgs e)
{
Label label = new Label();
Random y = new Random();
label.Left = y.Next(this.Width);
int r, g, b;
r = y.Next(0, 256);
g = y.Next(0, 256);
b = y.Next(0, 256);
label.ForeColor = Color.FromArgb(r, g, b);
label.Text = Convert.ToChar(65 + y.Next(57)).ToString();
this.Controls.Add(label);
Thread t = new Thread(new ParameterizedThreadStart(LabelMove));
t.Start(label);
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
foreach (Label l in this.Controls)
{
if (l.Text == e.KeyChar.ToString())
{
l.Dispose();
}
}
}
}
}
精简版。
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.Threading;
namespace 打字游戏
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
}
public void LabelMove(object o)
{
Label label = (Label)o;
for (int i = 1; i <= this.Height; i++)
{
label.Top += 1;
Thread.Sleep(10);
}
if (Thread.CurrentThread.IsAlive)
{
Thread.CurrentThread.Abort();
}
}
private void timer1_Tick(object sender, EventArgs e)
{
Label label = new Label();
Random y = new Random();
label.Left = y.Next(this.Width);
int r, g, b;
r = y.Next(0, 256);
g = y.Next(0, 256);
b = y.Next(0, 256);
label.ForeColor = Color.FromArgb(r, g, b);
label.Text = Convert.ToChar(65 + y.Next(57)).ToString();
this.Controls.Add(label);
Thread t = new Thread(new ParameterizedThreadStart(LabelMove));
t.Start(label);
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
foreach (Label l in this.Controls)
{
if (l.Text == e.KeyChar.ToString())
{
l.Dispose();
}
}
}
}
}
看了用winform实现的一个打字...的网友还看了以下:
f(x)=∫(0,2x)f(t/2)dt+ln2,显然f(0)=ln2两边求导f'(x)=f(2x/ 2020-03-31 …
已知A的产量通常用来衡量一个国家的石油化工发展水平,B、D是饮食中两种常见的有机物,F是一种有香味 2020-04-08 …
如题函数f(x)对任意实数x满足条件f(x+1)=1/f(x)若f(1)=-5,则f[f(5)]= 2020-06-06 …
f(x)是奇函数与f(x+1)是奇函数都可以直接将x变成-x,外头再加负号吗(复习中,)可以写成- 2020-07-30 …
数学题目一轮拳击比赛.A击败了D,E击败了F,C击败了E,F击败了D,A击败了F,B是第3名,B击败 2020-10-30 …
复变函数中f(z)=u(x,y)+iv(x,y)化成f(z)的形式中用的设零法是怎么证明的已知f(z 2020-10-30 …
英语翻译雕刻是用C开头的单词,罚金用F开头,未完成的用O开头,很少用S开头,聪明用W开头,偏爱用F开 2020-11-02 …
在探究凸透镜成像规律时,小捷用了9个红色的发光二极管按“F”字样镶嵌排列在白色的板上代替蜡烛作光源, 2020-11-07 …
在一轮拳击比赛中,A击败了D,E击败了F,C击败了E,F击败了D,A击败了F,B是第三名,B击败了A 2020-12-06 …
F(x)>g(x)成立和恒成立如果题目说x在某区间上恒成立,用f(x)的最小值大于g(x)的最大值. 2020-12-22 …