目次
ある条件によりプログラムの流れを変えるためには、条件判定文を使います。条件判定文には、if文とswitch文の2種類があります。
| 条件判定文 |
|
|
条件式に使う比較演算子は「簡単な数値計算プログラム」のところに出てきましたね。
次に、if文、switch文の例を示します。分かりますか?
| if文の例 |
|
|
| switch文の例 |
|
|
ある条件の下で繰り返し処理を行なうには、条件ループを使います。
条件ループの書き方は幾つかありますが、ここではfor文とwhile文の2つ
を説明します。
| 条件判定ループ |
|
|
これだけでは分かりづらいですね。次の例を見て下さい。
| for文の例 |
|
|
| 条件判定ループ |
|
|
こちらの方がfor文よりも簡単そうですね。では次の例を見てみましょう。
| while文の例 |
|
|
条件判定、条件ループを使って、じゃんけんゲームを作りましょう。
じゃんけんゲームの流れは次のようになります。
| じゃんけんゲームの流れ |
|
|
たったこれだけで作れ!というのも酷だと思いますので、以下に上の流れに沿っ
た雛型を示します。全部自分で作る自身がない人はこれを参考に穴埋めをしてゲー
ムを完成させて下さい。
/* "jgame.c" --- じゃんけんゲームプログラム */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/* メイン関数(必ず必要。C言語ではこの中が最初に実行される) */
int main(void)
{
int game_end; /* ゲーム終了フラグ */
int player; /* プレーやの手 */
int computer; /* コンピュータの手 */
game_end = 0; /* ゲーム終了フラグの初期化 */
srand48(time(NULL)); /* 乱数列の初期化 */
/*
* ゲームが終了するまでのループ
*/
while ( game_end != 1 )
{
/* メニュー表示 */
printf("1. グー 2.チョキ 3.パー 4.終了\n");
printf("input>");
/* 入力(変数playerに入る) */
scanf("%d", &player);
/* 入力が4なら*/
if ( player == 4 )
{
game_end = 1; /* ゲーム終了フラグを1にする */
}
else /* そうでなければ */
{
/* 乱数によりコンピュータの手を作る(1 or 2 or 3) */
computer = (int)( 2.9999 * drand48() ) + 1;
/* 自分とコンピュータの手が同じ場合 */
if ( player == computer )
{
printf("あいこでしょ\n");
}
(残りのif文は自分で考えよう)
}
}
printf("ゲーム終了\n");
return 0;
}
|
/* "jgame.c" --- じゃんけんゲームプログラム */ #include |
drand48()は0.0〜1.0の間の乱数を生成する関数です。
drand48()を使用する前には、srand48()を呼び出して乱数を初期化する必要があります。
プログラムを打ち込み終ったら、コンパイルし、実行して下さい。
ゲームはちゃんとできるでしょうか。早く終った人は、コンピュータの手の表示等、
工夫を凝らして下さい。