string[] num = new string[5] {"A","b","c","d","e"}; Console.WindowHeight = 26; Console.WindowWidth = 81; Random number = new Random(); for (int j= 0; j < num.Length; j++) { int n = number.Next(0, 5); for (int i = 0; i < 26; i++) {
Console.SetCursorPosition(40, i); Console.Write(num[n]); Thread.Sleep(100); Console.Clear(); } } 我想你要好的效果的话,还需改动; 自己改了; 可以利用文件储存字母; 这样还要利用控制光标的移动; while (true) { switch (Console.ReadKey(true).Key) { case ConsoleKey.UpArrow: if(Console.CursorTop!=0) Console.CursorTop--; break; case ConsoleKey.DownArrow: Console.CursorTop++; break; case ConsoleKey.LeftArrow: if (Console.CursorLeft != 0) Console.CursorLeft--; break; case ConsoleKey.RightArrow: Console.CursorLeft++; break; }
你写的好复杂啊!好像还用的多线程了! private void timer1_Tick(object sender, EventArgs e) { Random r = new Random(); Label l = new Label(); char cc = (char)((int)'A' + r.Next(26)); //随机产生26 个字母 l.Text = cc.ToString(); l.BackColor = Color.Blue; l.ForeColor = Color.Red; l.Left = r.Next(this.Width); //随机水平位置 this.panel1.Controls.Add(l); foreach (Control c in this.panel1.Controls) { c.Top += 15; //向下移动 if (c.Top == this.Height) c.Dispose(); //到底消除 } } private void Form1_KeyDown(object sender, KeyEventArgs e) { foreach (Control c in this.panel1.Controls) { if (c.GetType() == typeof(Label)) { Label t = (Label)c; if (t.Text == e.KeyCode.ToString()) //按下的键有, 消除 this.panel1.Controls.Remove(c); } } } 这个比较简单,我们还没学多线程。上面的就是有个问题,一个panel1里面可以出现重复的!不知道怎么改,你帮忙改一下行吗?顺便给我变漂亮点,比如消去的时候给我加点效果……谢谢啦!
string[] num = new string[5] {"A","b","c","d","e"};
Console.WindowHeight = 26;
Console.WindowWidth = 81;
Random number = new Random(); for (int j= 0; j < num.Length; j++)
{
int n = number.Next(0, 5);
for (int i = 0; i < 26; i++)
{
Console.SetCursorPosition(40, i);
Console.Write(num[n]);
Thread.Sleep(100);
Console.Clear(); } } 我想你要好的效果的话,还需改动;
自己改了;
可以利用文件储存字母;
这样还要利用控制光标的移动;
while (true)
{
switch (Console.ReadKey(true).Key)
{
case ConsoleKey.UpArrow:
if(Console.CursorTop!=0) Console.CursorTop--;
break;
case ConsoleKey.DownArrow:
Console.CursorTop++;
break;
case ConsoleKey.LeftArrow:
if (Console.CursorLeft != 0) Console.CursorLeft--;
break;
case ConsoleKey.RightArrow:
Console.CursorLeft++;
break;
}
private void timer1_Tick(object sender, EventArgs e)
{
Random r = new Random();
Label l = new Label();
char cc = (char)((int)'A' + r.Next(26)); //随机产生26 个字母
l.Text = cc.ToString();
l.BackColor = Color.Blue;
l.ForeColor = Color.Red;
l.Left = r.Next(this.Width); //随机水平位置
this.panel1.Controls.Add(l);
foreach (Control c in this.panel1.Controls)
{
c.Top += 15; //向下移动
if (c.Top == this.Height) c.Dispose(); //到底消除
}
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
foreach (Control c in this.panel1.Controls)
{
if (c.GetType() == typeof(Label))
{
Label t = (Label)c;
if (t.Text == e.KeyCode.ToString()) //按下的键有, 消除
this.panel1.Controls.Remove(c);
}
}
}
这个比较简单,我们还没学多线程。上面的就是有个问题,一个panel1里面可以出现重复的!不知道怎么改,你帮忙改一下行吗?顺便给我变漂亮点,比如消去的时候给我加点效果……谢谢啦!