v1) コンピュータが発生させた数を当てるゲームを作る。
v2) コンピュータに、「@」「#」「*」「$」の4つの記号を組合せて、5文字の記号列を発生させ、それをプレイヤーが当てるゲームを作る。
v3) パズルゲーム「マスターマインド」を作りなさい。
これは1973年にイギリスのインビクタ社から発売されて、世界中で3500万セット以上売れたといわれるパズルゲームで、次の写真(省略)はその標準的なセットである。
マスターマインド
2人ゲームで、1人が出題者、もう1人が解答者になる。出題者は、6色のコマのうち、好きなコマを4つ選び覆いの中に並べる。この場合、同色のコマがあってもかまわない。解答者はこのこまの色と配列を当てるのである。
まず解答者は、その色と配列を予測して、コマを並べる。出題者は、この予測に対する判定をピンで示す。場所と色の双方が合っているものがあればその数だけ黒いピンを、色は合っていて場所が違うものがあればその数だけ白いピンを刺す。この判定をヒントにして、解答者は次の予測を行い、出題者はこれに対して判定を行う。これを繰り返して、何回で全部の色と場所が当たるかを競うのである。
【乱数の発生】 “乱数”というのは、サイコロを振るようにそのときそのときで発生するでたらめな数である。乱数がないとプログラムはいつも同じをするので、ゲームには乱数はいつも必要である。0以上N未満の乱数を発生させるには以下のようにする。
#inlucde <stdlib.h> /* 標準ライブラリ関数randを使うのに必要 */ #include <time.h> /* 標準ライブラリ関数timeを使うのに必要 */が必要である。
srand(time(NULL));さらに、何回か使わない乱数を発生させて“かき混ぜる”とよい。
for (i = 0; i < 100; i++) rand();
n = rand() % N;と、剰余演算子を用いるのが、よくあるやり方である。