前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c语言打字游戏代码

c语言打字游戏代码

原创
作者头像
C语言与CPP编程
修改2021-01-04 10:39:36
13.8K1
修改2021-01-04 10:39:36
举报
文章被收录于专栏:c语言与cpp编程c语言与cpp编程
代码语言:javascript
复制
#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; 
		} 
	} 
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档