C语言-模拟金山打字通详解
#include <;
#include <;
#include <;
#include <conio.h>
#include <windows.h>
char*arr[]={"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 , . "};
void GamePosition(int x,int y)//1.定坐标
{
HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);//2.给你一张白纸
COORD pos={x,y};//3.点的结构体,初始化坐标x和y 确定坐标
SetConsoleCursorPosition(hout,pos);//4.设置控制平台光标位置
}
void play()
{
int x,y,i,j;//x,y是坐标==往下掉的坐标,i,j是数组的行和列==确定随机哪个字母
char ch;//用来接收随机产生的字母
char cur;//用来接收按下的键盘字母
srand((unsigned)time(0));//随机种子
i=rand()%3;//行从0-2的随机数
j=rand()%(9-i);//列的随机数
ch=arr[i][j*4];//随机产生的字母
x=18+i*2+j*4;//自定义从18开始
y=7;
while(y<=19)
{
if(kbhit())//如果按下键盘
{
cur=getch();
if(cur==ch||cur==ch+32)
ch = ' ';
}
if(y>7)//去尾巴
{
GamePosition(x,y-1);
printf(" ");
}
GamePosition(x,y);
printf("%c",ch);
Sleep(100);
y++;
}
}
int main()
{
system("cls");
GamePosition(18,2);
printf("%s\n",arr[0]);
GamePosition(20,4);
printf("%s\n",arr[1]);
GamePosition(22,6);
printf("%s\n",arr[2]);
GamePosition(11,20);
printf("==================================");
while(1)
play();
return 0;
更多C语言技术关注 "ITjob远标培训"