广征高手意见 关于打字的
从屏幕顶端随机掉落一些字母数字啥的 然后接收键盘信息 和哪个字符相等 则该字符不在掉落(吃掉了)这个东西在cui下到底能否实现 早年刚接触计算机时 那些打字训练软件都是纯DOS下的
[此贴子已经被作者于2017-12-25 18:31编辑过]
[此贴子已经被作者于2017-12-25 18:31编辑过]
2017-12-25 18:30

2017-12-25 18:42
2017-12-25 18:47
程序代码:/* TC 2.0 XP */
#include <dos.h>
#include <stdlib.h>
#include <time.h>
void newdelay(int limit); //延时
void SetFirstRowChar(int color); //设置第一行字符,实际上程序写完我发现可不要,不要效果会更好
void RandSetFlag(int flag[80]); //设置列随机下落数据
void ColRoll( int ColCount,int RollCount,int color); //列下落
void ColCellRoll( int ColCount,int color); //单个字母下落
int flag[80]; //随机标志
int main()
{
int i,k;
randomize();
SetFirstRowChar(2);
RandSetFlag(flag);
for(i=0;i<1000;i++)
{
for(k=0;k<80;k++)
{
ColRoll( flag[k],flag[k]%25 ==0?random(25):flag[k]%25,2);
newdelay(2);
}
RandSetFlag(flag);
newdelay(10);
}
getch();
}
void SetFirstRowChar(int color)
{
char far *p;
int i;
char c;
p=(char far *)0xb8000000;
for( i = 0; i < 80 ; i++)
{
c = random(35);
if( c > 25 )*(p+i*2) ='';
else *(p+i*2) =c+65;
*(p+i*2+1) = color;
}
return ;
}
void newdelay(int limit)
{
unsigned int far *clock=(unsigned int far *)0x0000046CL;
unsigned int begin;
begin=*clock;
while(abs(*clock-begin)<=limit*0.0182);
}
void RandSetFlag(int flag[80])
{
int i;
for(i=0;i<80;i++)flag[i] = random(80);
return;
}
void ColCellRoll( int ColCount,int color)
{
char far *p;
char far *p1;
int i;
char c;
p=(char far *)0xb8000000 + ColCount*2;
p1 = (char far *)0xb8000000 + ColCount*2+80*2;
for( i = 24 ; i >= 0 ; i--)
{
*(p1+i*80*2) = *(p+i*80*2);
*(p1+i*80*2+1)=color;
*(p+i*80*2)='';
*(p+i*80*2+1) = color;
}
c = random(35);
if( c > 25 )*p ='';
else *p =c+65;
*(p+1) = color;
return;
}
void ColRoll( int ColCount,int RollCount,int color)
{
int i;
for(i = 0; i < RollCount ; i++)
{
ColCellRoll( ColCount,color);
}
return;
}

2017-12-25 18:57

2017-12-25 19:00
2017-12-25 19:02
2017-12-26 09:04
2017-12-26 10:39
2017-12-26 11:05
2017-12-26 11:07