第14回 簡単な応用 簡単なゲームを作ってみよう タイピングゲーム (1/6) 【実行例】 $ ./no14_1 第1回目です.お手本どおりにタイプしてください. glsuapspxt glsuapspxt 正解です.スコアは92点です. New record! Are you Watanabe? Enter your name. Watabe 第2回目です.お手本どおりにタイプしてください. rememberit remenberit 間違いです.スコアは0点です. タイピングゲーム (2/6) #include #include #include #include <stdio.h> <stdlib.h> <string.h> <time.h> #define MAXTRY 3 /* ゲームのトライの最大回数 */ #define STRLEN 10 /* 出題する文字列の長さ */ #define SIZE 256 /* 配列のサイズ(十分長くする) */ #define SCORE_FILE "score.dat" /* ベストスコアとその達成者名を記録してあるファイルの名前 */ FILE *fp; /* ベストスコアを格納するファイルのポインター */ int high_score = 0; /* ベストスコア */ char champion[SIZE] = "Watanabe"; /* ベストスコアの達成者名 */ タイピングゲーム (3/6) int main(void) { int try; char problem[SIZE]; char input[SIZE]; int score; int j; time_t start_time, end_time; /* /* /* /* /* /* トライの回数 */ 出題する文字列 */ 入力した文字列 */ 今回のスコア */ 出題する文字列用の添字 */ 測定した時間 */ fp = fopen(SCORE_FILE, "r"); if(fp != NULL){ /* ファイルが存在するとき */ fscanf(fp, "%d %s", &high_score, champion); fclose(fp); } time_t はシステム時刻をあらわすデータ型 タイピングゲーム (4/6) srand((unsigned) time(NULL)); /* 乱数の初期化 */ for(try=1; try<=MAXTRY; try++){ /* ゲーム開始 */ printf("第%d回目です.お手本どおりにタイプしてください.¥n", try); for(j=0; j<STRLEN; j++){ problem[j] = rand()%26 + 'a'; /* ランダムに子文字を生成 */ } problem[STRLEN] = '¥0'; /* 文字列末尾のヌル文字 */ printf("%s¥n", problem); /* 出題 */ start_time = time(NULL); scanf("%s", input); end_time = time(NULL); /* 時間計測 */ タイピングゲーム (5/6) if(strcmp(problem, input)==0){ /* 文字列が等しいとき */ printf("正解です."); score = 100 - (end_time - start_time); /* スコア計算 */ if(score < 0){ score = 0; } } else{ /* 文字列が等しくないとき */ printf("間違いです."); score = 0; } タイピングゲーム (6/6) printf("スコアは%d点です.¥n", score); if(score > high_score){ /* ベストスコアを超えたとき */ high_score = score; printf("New record! Are you %s? Enter your name.¥n", champion); scanf("%s", champion); } } /* end of for loop */ fp = fopen(SCORE_FILE, "w"); fprintf(fp, "%d %s", high_score, champion); fclose(fp); return 0; } 授業アンケート 受講生の代表2名が回収して, 工学部の教務課学部担当窓口(1番)へ提出. (TAも付き添います) 期末試験について 【配布物参照】 7月28日(木) 筆記試験: 9:00~10:00 (A13教室) 実技試験:10:30~12:00 (M棟計算機室)
© Copyright 2024 ExpyDoc