#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include "ConsoleOut.h"
#pragma comment(lib,"ConsoleOut.lib")
int a,b;
int iChoice;
int N;
void fnFun()
{
int iNum;
int iX,iY;
char c='A';
int num1=0;//打中的字母
int num2=0;//没有打中的字母
int iScore=50;
int sure=0;
system("cls");
while(1)
{
system("cls");
printf("/t=========================================================/n");
printf("/t/t/t1---------初级练习 /n");
printf("/t=========================================================/n");
printf("/t/t/t2---------中级练习 /n");
printf("/t=========================================================/n");
printf("/t/t/t3---------高级练习 /n");
printf("/t=========================================================/n");
printf("/t/t/t4---------全屏模式 /n");
printf("/t=========================================================/n");
printf("/t/t/t5---------窗口模式 /n");
printf("/t=========================================================/n");
printf("/t/t/t6---------更换主题 /n");
printf("/t=========================================================/n");
printf("/t/t/t7---------退出游戏 /n");
printf("/t=========================================================/n");
scanf("%d",&iNum);
if(iNum==1)
N=400;
else if(iNum==2)
N=100;
else if(iNum==3)
N=5;
else if(iNum==4)
{
SwitchConsoleWinMode(true);
continue;
}
else if(iNum==5)
{
SwitchConsoleWinMode(false);
continue;
}
else if(iNum==6)
{
printf("文本前景(输入整数):");
scanf("%d",&a);
printf("文本背景(输入整数):");
scanf("%d",&b);
SetTextColor(a,b);
continue;
}
else if(iNum==7)
exit(5);
else
{
printf("您的输入有误,按任意键继续。。。/n");
getch();
continue;
}
system("cls");
srand(unsigned(time(NULL)));
while(1)
{
iY=0; iX=rand()%70;
c=rand()%26+'A';
MoveCursorTo(0,19);
printf("================================================================================/n");
printf("总分:%d 命中率:%.2lf 已击落:%d /n",
iScore,double(num1)/(num1+num2),num1);
printf("================================================================================/n");
while(1)
{
MoveCursorTo(iX,iY++);
printf("%c",c);
Sleep(N);
printf("/b ");
if(iY>=20)
{
iScore--;
num2++;
break;
if(num2+=3)
{
printf("感谢您的使用,GAME OVER!!!/n");
exit(4);
}
}
if(_kbhit())
{
int key=getch();
if(key==c)
{
iScore++;
num1++;
break;
}
if(key!=c)
{
iScore--;
num2++;
}
}
}
if(iScore==150)
{
system("cls");
MoveCursorTo(25,10);
printf("恭喜您,训练已完成!!!/n");
printf("命中率:%.2f/n击落了:%d/n未击落或打错:%d/n",double(num1)/(num1+num2),num1,num2);
break;
}
if(iScore<50)
{
system("cls");
MoveCursorTo(25,10);
printf("GAME OVER!!!/n");
break;
}
}
MoveCursorTo(25,11);
printf("命中率:%.2f/n/t/t/t 击落了:%d/n/t/t/t 未击落或打错:%d/n",double(num1)/(num1+num2),num1,num2);
printf("/t1------------继续 2-------------退出/n");
scanf("%d",&iChoice);
if(iChoice==1)
continue;
else if(iChoice==2)
exit(2);
else
{
printf("您的输入有误,按任意键继续。。。/n");
getch();
}
}
}
void main()
{
SetTextColor(2,7);
while(1)
{
system("cls");
printf("/t===================WELCOME TO 誉兵打字通================== /n");
printf("/t========================================================== /n");
printf(" 版本2011升级版 /n");
printf("/t========================================================== /n");
printf("/t/t/t 1------------开始游戏 /n");
printf("/t========================================================== /n");
printf("/t/t/t 2------------退出游戏 /n");
printf("/t========================================================== /n");
printf("/t/t/t 3------------全屏模式 /n");
printf("/t========================================================== /n");
printf("/t/t/t 4------------窗口模式 /n");
printf("/t========================================================== /n");
printf("/t/t/t 5------------更换主题 /n");
printf("/t========================================================== /n");
scanf("%d",&iChoice);
if(iChoice==1)
fnFun();
else if(iChoice==2)
exit(1);
else if(iChoice==3)
SwitchConsoleWinMode(true);
else if(iChoice==4)
SwitchConsoleWinMode(false);
else if(iChoice==5)
{
printf("文本前景(输入整数):");
scanf("%d",&a);
printf("文本背景(输入整数):");
scanf("%d",&b);
SetTextColor(a,b);
}
else
{
printf("您的输入有误。。/n请输入1或2.。。/n");
getch();
}
}
}