类似于学习机上的指法练习程序,简单而实用
#include<time.h>
main()
{
int x,y,i,j;
unsigned int Timer;
char ch;
char key;
char *kb[]={"Q W E R T Y U I O P [ ]","A S D F G H J K L ; '","Z X C V B N M , . /"};
long AllCounter=0,RightCounter=0,FalseCounter=0;
time_t t;
int fun_Esc();
srand((unsigned)time(&t));
clrscr();
gotoxy(18,1);
printf("%s\n",kb[0]);
gotoxy(20,3);
printf("%s\n",kb[1]);
gotoxy(22,5);
printf("%s\n",kb[2]);
gotoxy(11,25);
for(i=0;i<60;i++)
{
printf("=");
}
gotoxy(1,1);
printf("AllCh: %ld\nRight: %ld\nFalse: %ld",AllCounter,RightCounter,FalseCounter);
printf("\n\n");
printf("Esc to exit");
printf("\n");
printf("Enter to pause");
gotoxy(26,12);
printf("* * * * * * * * * * * * * * *");
gotoxy(26,13);
printf("* Press any key to start! *");
gotoxy(26,14);
printf("* * * * * * * * * * * * * * *");
gotoxy(51,13);
if(getch()==27)
{
if(fun_Esc()==1)
{
clrscr();
exit(0);
}
}
gotoxy(23,12);
printf(" ");
gotoxy(23,13);
printf(" ");
gotoxy(23,14);
printf(" ");
lab_start:
y = 6;
Timer = 100000;
i = rand()%3;
j = rand()%(12-i);
ch = kb[i][j*4];
x = 18+i*2+j*4;
while(y<=24)
{
if(kbhit())
{
key = getch();
if(key==ch key==ch+32)
{
ch = '*'; Timer = 1000;
}
else if(key==27)
{
if(fun_Esc()==1)
{
clrscr();
exit(0);
}
}
else if(key=='\r')
{
gotoxy(x,y-1);
printf(" ");
gotoxy(28,13);
printf("Press any key to continue");
getch();
gotoxy(28,13);
printf(" ");
}
else
{
FalseCounter++;
}
}
if(y>6)
{
gotoxy(x,y-1);
printf(" ");
}
gotoxy(x,y);
printf("%c",ch);
gotoxy(1,1);
printf("AllCh: %ld\nRight: %ld\nFalse: %ld",AllCounter,RightCounter,FalseCounter);
delay(Timer);
y++;
}
AllCounter++;
if(ch == '*')
{
RightCounter++;
}
goto lab_start;
}
int fun_Esc()
{
int key = '#';
gotoxy(24,12);
printf("* * * * * * * * * * * * * * * * *");
gotoxy(24,13);
printf("* Are you sure to exit? (Y/N) *");
gotoxy(24,14);
printf("* * * * * * * * * * * * * * * * *");
gotoxy(51,13);
while(key!='Y' && key!='y' && key!='N' && key!='n')
{
key = getch();
if(key=='Y' key=='y')
{
return 1;
}
if(key=='N' key=='n')
{
gotoxy(24,12);
printf(" ");
gotoxy(24,13);
printf(" ");
gotoxy(24,14);
printf(" ");
return 0;
}
}
}