リアルタイム問題【複数問題出題バージョン】

3secGame.c

/*
	3secGame.c : 3秒以内に答えないとゲームオーバー(複数問題出題バージョン)
*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#define MAX 2

void main(void)
{
	int key ;
	double startTime, endTime, totalTime ;
	int i;
	/* 問題 */
	char mondai[][256] = {
		"信号の一番右は?\n1)青 2)赤 3)黄", 
		"一円玉の直径は?\n1)1.5cm 2)1cm 3)2cm"
	};
	/* 正解番号 */
	int kotae[] = {'2', '3'};

	/* 問題数ループする */
	for(i=0; i<MAX; i++){
		printf("\n【問%2d】%s ------> ", i+1, mondai[i]) ;
		startTime = clock() ;

		/* ゲームループ */
		key = 0;
		while (1) {
			if ( kbhit() ) {                // キー入力がされたら判定
				key = getch() ;
				printf("%c\n", key ) ;
				break ;
			}
			
			endTime = clock() ;
			totalTime = endTime - startTime ;
			 
			if ( totalTime > 3000.0 ) {      // 3秒経過したらタイムオーバー
				printf("\n時間切れ!\n") ;
				break;
			}
		}
		 
		if ( key == kotae[i] ) {
			printf("正解!\n") ;
		}
		else {
			printf("ぶっぶー!\n") ;
		}
	}
	/* 全問題終了 */
	printf("\n\n《問題終了》\n");
}

コメント