// 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 ; } */
コメント