早教吧作业答案频道 -->其他-->
用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实现的一个打字...的网友还看了以下:
番茄中红果(R)对黄果(r)为显性。现将A、B、C、D、E、F、G7种番茄杂交,结果如下表所示。在 2020-04-06 …
如图,一扇窗是由一个半径为r的半圆和一个宽为h的长方形组成.(1)用含r和h的代数式表示整扇窗的面 2020-05-13 …
用如图甲所示的装置,研究不同电阻R的阻值随温度T变化情况.测得阻值R与温度T的关系如图乙所示.(1 2020-05-14 …
为反馈某公司新产品的使用效果,随机调查了本地区的100名顾客,调查的结果如图所示,根据图中给出的信 2020-05-17 …
编写一个程序,求出给定半径r的圆以及其内接正n边形面积,并且输出计算机结果.r和n的值由用户输入提 2020-06-07 …
计算机问题彩色显示器的彩色是由3个基色R.G.B合成得到的,如果R.G.B分别用4个二进位表示,则 2020-06-27 …
电路中W与R与P的关系晕了晕了P=U方/R这时候R越大P越小推出来的公式P=I方R这时候R越大P也 2020-07-04 …
下列关于外电阻R和路端电压U之间关系的说法中正确的是()1.随着R增大,U将减少2.随着R减小,U 2020-07-06 …
如果r=(s+1)/(s-1),将分式r/r-1用s表示,则r/r-1= 2020-07-30 …
1、为什么当R=r时,电源的输出功率最大2、为什么R》r时随着R的增大,输出功率越来越小3、为什么1 2020-11-24 …