用C语言实现的打字游戏

#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();
   }
   }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X252618759

创建不易,需要鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值