c语言打字游戏代码

举报
C语言与CPP编程 发表于 2021/06/04 01:02:57 2021/06/04
【摘要】 #include<stdio.h>#include<time.h> char *kw[]={"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,WrongCounter=0; // 来自公...

      #include<stdio.h>
      #include<time.h>
      char *kw[]={"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,WrongCounter=0;
      // 来自公众号:c语言与cpp编程
      main()
      {
     	int i,j;
     	int fun_Esc();
      	clrscr();
      	gotoxy(18,1);
     	printf("%s\n",kw[0]);
      	gotoxy(20,3);
     	printf("%s\n",kw[1]);
      	gotoxy(22,5);
     	printf("%s\n",kw[2]);
      	gotoxy(11,25);
     	for(i=0;i<60;i++)
      	{
     		printf("=");
      	}
      	gotoxy(1,1);
     	printf("AllCh: %ld\nRight: %ld\nWrong: %ld",AllCounter,RightCounter,WrongCounter);
      	gotoxy(50,1);
     	printf("Press Esc to exit");
      	gotoxy(50,2);
     	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(" ");
     	while(1)
       fun_Play();
      }
      int fun_Play()
      {
     	int x,y,i,j;
     	unsigned int Timer;
     	char ch;
     	char cur;
     	time_t t;
      	srand((unsigned)time(&t));
      	gotoxy(26,12);
     	printf(" ");
      	gotoxy(26,13);
     	printf(" ");
      	gotoxy(26,14);
     	printf(" ");
      	y = 6;
      	Timer = 100000;
      	i = rand()%3;
      	j = rand()%(9-i);
      	ch = kw[i][j*4];
      	x = 18+i*2+j*4;
     	while(y<=24)
      	{
     		if(kbhit())
      		{
      			cur = getch();
     			if(cur==ch || cur==ch+32)
      			{
       ch = '*'; Timer = 1000;
      			}
     			else if(cur==27)
      			{
      if(fun_Esc()==1)
       {
       clrscr();
      exit(0);
       }
      			}
     			else if(cur=='\r')
      			{
       gotoxy(x,y-1);
      printf(" ");
       gotoxy(26,12);
      printf("* * * * * * * * * * * * * * *");
       gotoxy(26,13);
      printf("* Press any key to continue *");
       gotoxy(26,14);
      printf("* * * * * * * * * * * * * * * ");
       getch();
       gotoxy(28,13);
      printf(" ");
      			}
     			else
      			{
       WrongCounter++;
      			}
      		}
     		if(y>6)
      		{
      			gotoxy(x,y-1);
     			printf(" ");
      		}
      		gotoxy(x,y);
     		printf("%c",ch);
      		gotoxy(1,1);
     		printf("AllCh: %ld\nRight: %ld\nWrong: %ld",AllCounter,RightCounter,WrongCounter);
      		delay(Timer);
      		y++;
      	}
      	AllCounter++;
     	if(ch == '*')
      	{
      		RightCounter++;
      	}
      }
      int fun_Esc()
      {
     	int key = '#';
      	gotoxy(26,12);
     	printf("* * * * * * * * * * * * * * * * ");
      	gotoxy(26,13);
     	printf("* Are you sure to exit? (Y/N) *");
      	gotoxy(26,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;
      		}
      	}
      }
  
 

文章来源: blog.csdn.net,作者:C语言与CPP编程,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_41055260/article/details/112107249

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。