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);
}
   

©著作者からのお願い

●プログラムの著作者、著作権者は佐伯英子です。
●このページで公開するプログラムは、複製、改変、無償再配布できます。
●再配布に当たっては、必ず著作者名を明記し、ソースも公開してください。
●改変後に再配布される場合も、原著作者を明記していただき、ソースも公開してください。
●これらのプログラムを使って、有償サービスをしていただいてもかまいません。
●これらのプログラムは、改変されたものも含めて、無断で有償再配布しないでください。
●これらは、再再配布以降にも引き継がれます。

         【ご利用例】
●ブログやホームページ、印刷物に掲載していただいてもかまいません。(出典明記)
●学校の授業や実習、会社の研修、有料の講座などでお使いいただけます。(出典明記)
無断で販売しないでください。
----------------------------------------
●お問合せはどうぞこちらから
----------------------------------------
■著作権法全文(e-Govウェブサイト)■
法令全般



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