C语言实现打字游戏

1.实现效果

C语言实现打字游戏_第1张图片

按q退出,按其他打印随机字符串

C语言实现打字游戏_第2张图片

然后跟着字符串输入字符,正确打印该字符,错误打印_

最后计算用时和正确率

2.某些实现

(1)用_getch()函数可实现不回车输入一个字符不显示并获取,需要#include

(2)退出用exit(0)实现。

(3)添加随机字符串,用rand()%26+'a'可得到a-z的随机字母,注意需要用srand((unsigned int)time(NULL))先加入种子避免不变,并需要#include

(4)用循环获取_getch()函数的字符,如果与随机字符串相等就输出,不相等就输出_。

(5)用时实现:在第一次获取字符时用time(NULL)得到初始时间,结束获取时再用time(NULL)得到结束时间,两者相减即有用时。

3.源码

#include 
#include 
#include 
#include 

#define MAX 21
void order() {
	printf("----打字游戏-----\n");
	printf("-----------------\n");
	printf("----按任意键开始-----\n");
	printf("------按q结束-------\n");
	char ch = _getch();
	if (ch == 'q' || ch == 'Q') {
		exit(0);
	}
}

void print_word(char* word) {
	srand((unsigned int)time(NULL));
	for (int i = 0; i < MAX - 1; i++) {
		word[i] = rand() % 26 + 'a';        //添加随机字符串
	}
	printf("%s\n", word);
}

void type_word(char* word) {
	unsigned int start_time;
	unsigned int end_time;
	int right = 0;
	for (int i = 0; i < MAX - 1; i++) {
		char ch = _getch();
		if (i == 0)
			start_time = time(NULL);        //获取起始时间
		if (i == MAX - 2)
			end_time = time(NULL);            //获取结束时间

		if (ch == word[i]) {
			printf("%c", word[i]);
			right++;
		}
		else
			printf("_");
	}
	printf("\n用时:%d秒", end_time - start_time);
	printf("\t正确率:%.2f%%\n", right*1.0 / (MAX - 1) * 100);
}

int main() {

	char word[MAX] = { 0 };
	while (1) {
		order();
		print_word(word);
		type_word(word);
	}

	return 0;
}

 

你可能感兴趣的:(C与C++,c语言)