1989年開業 情報工学部門 文部科学省登録番号 第22082号 公益社団法人日本技術士会会員 東大阪商工会議所会員

≫サンプルプログラム一覧 

オープンソース/C言語サンプルプログラム 早打ち単語ゲーム(C言語編)

●ランダムに表示されるキーワードを、キーボードから入力して、
 タイムを計るゲームです。
●タイムはゲームの開始時刻と終了時刻から計算します。
●開始時刻は、乱数の種として利用します。
●正しい答が入力されると、次のキーワードを表示します。
 ≫ソースファイルのダウンロード: type10.c

【問題】
●キーワードを表示する回数を変更してみよう。
●表示するキーワードの種類を増やしてみよう。
●文 j=rand( )%15; で、j の値が 0 から 14 の範囲内になる理由を
 説明しなさい。

【発展問題】
●間違えた回数をカウントするように改造してみよう。

/**********************************/
/*  早打ち単語ゲーム(C言語編)  */
/**********************************/
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <time.h>
#include <windows.h>

/*--単語--*/
char   word[15][32]={ "printf","void","main","int","long",
                     "double","while","for","break","if",
                     "#include","char","fflush","time","gets"};
void  main( )
{
    char  c[128];                                  // 入力文字列
    int   t0,t1;                                   // 開始,終了時刻
    int   i,j;

    printf("\n***表示された単語をタイプしてください***");
    printf("\n※単語は10回表示されます。\n※どれかキーを押すと始まります。\n");
    getche( );                                     // 1文字入力

    t0=time(NULL);                                 // 現在の時刻
    srand(t0);                                     // 乱数の準備

    for ( i=0; i<10; i++ )                         // 10回繰り返す
      {
        j=rand( )%15;                              // 乱数発生(0〜14)

        while ( 1 )
          {
            printf("%s: ",&word[j][0]);            // j番目の単語表示
            fflush(stdout);
            gets(c);                               // 文字列入力
            if ( strcmp(c,&word[j][0])==0 ) break; // 文字列一致
            Beep(500,1000);                        // ブザー
          }
      }

    t1=time(NULL);                                 // 現在の時刻
    printf("\nタイムは %d秒でした\n",t1-t0);
}
   

※SSL暗号化通信対応

佐伯英子技術士事務所 〒542-0073 大阪市中央区日本橋 1-14-13 サンオフィス日本橋601  E-mail: info@saeki-pe.com