// X2secGame2秒間で答えないとゲームオーバー
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
void main(void)
{
int key ;
double startTime, endTime, totalTime ;
printf("信号の一番右は?\n1)青 2)赤 3)黄 ----> ") ;
startTime = clock() ;
while (1) {
if ( kbhit() ) { // キー入力がされたら判定
key = getch() ;
printf("%c\n", key ) ;
break ;
}
endTime = clock() ;
totalTime = endTime - startTime ;
if ( totalTime > 2000.0 ) { // 2秒経過したらタイムオーバー
goto TIMEOVER ;
}
}
if ( key == '2' ) {
printf("正解!\n") ;
}
else {
printf("ぶっぶー!\n") ;
}
exit(EXIT_FAILURE) ;
TIMEOVER:
printf("\n時間切れ!\n") ;
}
/*
補足
kbhit()関数はキーボードが押されたかどうかを判定する関数です。
while(1)で無限ループにしておき、常にkbhit()関数を使ってキーが押されたかを
判定するようにしています。
キーが押された場合はループを抜け、どのキーが入力されたかによって正解と不正解を
判定します。
また、問題表示後から
printf("信号の一番右は?\n1)青 2)赤 3)黄 ----> ") ;
startTime = clock() ;
経過時間を求め、
endTime = clock() ;
totalTime = endTime - startTime ;
経過時間が2000ミリ秒(2秒)を超えた場合はタイムオーバーとし不正解扱いとなります。
if ( totalTime > 2000.0 ) {
goto TIMEOVER ;
}
*/
コメント