授業/C言語基礎/じゃんけんゲーム
をテンプレートにして作成
開始行:
これまでに勉強したことを使って、次のような簡単なじゃんけ...
プレイヤーがコンピューターと勝負がつくまでじゃんけんをす...
*実行結果をイメージする [#p272a86c]
[[数当てゲーム>授業/C言語基礎/数当てゲーム]]のところでも...
じゃんけんでは、グーかチョキかパーを出しますが、プレイヤ...
プレイヤーが入力した後にコンピューターが自分の手を選ぶの...
とりあえず、コンピューターがグーを選んだとして話を進めま...
プレイヤーに入力を要求するメッセージは、じゃんけんらしく...
じゃんけんぽん!(1: グー、2: チョキ、3: パー):
プレイヤーが手を選んで入力すると、プレイヤーが選んだ手と...
ここでは、プレイヤーがパーを選んで 3 を入力したとします。
じゃんけんぽん! (1: グー、2: チョキ、3: パー):
3
あなた: 3、コンピューター: 1(1: グー、2: チョキ、3: パ...
プレイヤーがパーを選んだ場合は、プレイヤーの勝ちなので、...
じゃんけんぽん! (1: グー、2: チョキ、3: パー):
3
あなた: 3、コンピューター: 1(1: グー、2: チョキ、3: パ...
あなたの勝ち!
プレイヤーがチョキを選んで 2 を入力したとすると、プレイヤ...
じゃんけんぽん! (1: グー、2: チョキ、3: パー):
2
あなた: 2、コンピューター: 1(1: グー、2: チョキ、3: パ...
あなたの負け!
プレイヤーがグーを選んで 1 を入力したとすると、あいこなの...
じゃんけんぽん! (1: グー、2: チョキ、3: パー):
1
あなた: 1、コンピューター: 1(1: グー、2: チョキ、3: パ...
あいこでしょ! (1: グー、2: チョキ、3: パー):
これを、勝負がつくまで繰り返します。
このように、実行結果をイメージすることで、プログラムの中...
*フローチャートを作る [#p5d52f9c]
次に、イメージした実行結果になるように、プログラムのフロ...
このプログラムも、[[数当てゲーム>授業/C言語基礎/数当てゲ...
+コンピューターが自分の手を選ぶ
+プレイヤーが自分の手を選ぶ
ただし、[[数当てゲーム>授業/C言語基礎/数当てゲーム]]とは...
プレイヤーの手はキーボードから入力してもらうので、繰り返...
+「じゃんけんぽん」と出力する
+rand関数で自分の手を選ぶ
+scanf関数でキーボードから入力する
--引き分けなら、「あいこでしょ」と出力し、2へ戻る
--そうでないなら、結果を出力し、プログラムを終了する
この流れを、そのままフローチャートにすると、次のようにな...
#ref(./janken1.png,nolink,50%)
*プログラムを作る [#fa42e20f]
フローチャートができたら、プログラムを作ります。
まず初めに、「じゃんけんぽん」と出力して、無限ループを用...
#geshi(c){{
#include <stdio.h>
int main(void) {
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
while (1) {
}
return 0;
}
}}
無限ループに入ると、乱数を使って自分の手を選びます。
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
while (1) {
r = rand() % 3 + 1;
}
return 0;
}
}}
ここでは、1から3までの整数を乱数で生成し、1ならグー、2な...
rand関数、srand関数、time関数の使い方については、[[計算ゲ...
その次に、キーボードから入力する部分を加えます。
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
while (1) {
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: ...
}
return 0;
}
}}
ここで、h はプレイヤーが入力した数を記憶しておくための変...
(同時に、新しく登場した変数 a の宣言も追加しています。)
また、入力された手とコンピューターが選んだ手を画面に出力...
ここで、引き分けでない場合は、無限ループを中断します。
そうでない場合(引き分けの場合)は、「あいこでしょ」と出...
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
while (1) {
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: ...
if (h != r) { break; }
printf("あいこでしょ!(1: グー、2: チョキ、3: パー)...
}
return 0;
}
}}
無限ループが中断されたら(勝負がついたら)、結果を判定し...
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
while (1) {
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: ...
if (h != r) { break; }
printf("あいこでしょ!(1: グー、2: チョキ、3: パー)...
}
if (r == 1 && h == 3 || r == 2 && h == 1 || r == 3 && h...
printf("あなたの勝ち!\n");
} else {
printf("あなたの負け!\n");
}
return 0;
}
}}
結果を判定するif文の条件は、勝ちのパターン3通りをすべて列...
これで完成です(プログラム1)。
**演習1 [#g7b4befb]
プログラム1を作成し、実行結果を確認せよ。
*前置判定while文でプログラムを作る [#pcfb4868]
繰り返し(for文、while文、do-while文)でbreakやcontinueを...
そのため、できる限りbreakやcontinueを使わずにプログラムを...
そこで、フローチャートを次のように書き換えます(フローチ...
#ref(./janken2.png,nolink,50%)
これをプログラムにします。
まず初めに、「じゃんけんぽん」と出力して、乱数を使って自...
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: チ...
return 0;
}
}}
次に、繰り返し処理を行う前置判定のwhile文の形を用意します。
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: チ...
while (h == r) {
}
return 0;
}
}}
ここでは、繰り返し条件を先に考えることができるので、先に...
繰り返し条件は、引き分け、つまり、コンピューターの手とプ...
つぎに、繰り返し処理の中だけを考えると、次のようになりま...
#geshi(c){{
printf("あいこでしょ!(1: グー、2: チョキ、3: パー):\...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: チ...
}}
そこで、これをwhile文の波括弧 { } の中に入れます。
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: チ...
while (h == r) {
printf("あいこでしょ!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: ...
}
return 0;
}
}}
繰り返しが終了したら(勝負がついたら)、結果を判定して、...
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: チ...
while (h == r) {
printf("あいこでしょ!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: ...
}
if (r == 1 && h == 3 || r == 2 && h == 1 || r == 3 && h...
printf("あなたの勝ち!\n");
} else {
printf("あなたの負け!\n");
}
return 0;
}
}}
これで完成です(プログラム2)。
**演習2 [#n6066e70]
プログラム1をプログラム2に変更し、実行結果を確認せよ。
*プログラムをテストする(おまけ) [#fa2130c8]
[[数当てゲーム>授業/C言語基礎/数当てゲーム]]と同様に、ま...
プログラム2は、次の四つのモジュールに分割できます。
+コンピューターが自分の手を選ぶ
+プレイヤーが手を入力する
+あいこのときにもう一度勝負する
+勝敗を判定する
そこで、まず、コンピューターが自分の手を正しく選べている...
[[数当てゲーム>授業/C言語基礎/数当てゲーム]]と同様に、乱...
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
int i; // テスト用
srand((unsigned int) time(NULL)); // 乱数のシード
// テスト用
for (i = 1; i <= 1000; i++) {
r = rand() % 3 + 1;
printf("# r = %d\n", r);
if (r < 1 || r > 3) { exit(1); }
}
/*
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: チ...
*/
while (h == r) {
printf("あいこでしょ!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: ...
}
if (r == 1 && h == 3 || r == 2 && h == 1 || r == 3 && h...
printf("あなたの勝ち!\n");
} else {
printf("あなたの負け!\n");
}
return 0;
}
}}
つぎに、コンピューターの手をグー、チョキ、パーのそれぞれ...
ここでは、テスト・ケースが限定されているので、ホワイト・...
つまり、r が 1, 2, 3 のそれぞれについて、h が 1, 2, 3 の...
コンピューターの手をグーに固定するには、乱数を生成した直...
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
r = 1; // テスト用
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: チ...
while (h == r) {
printf("あいこでしょ!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
r = 1; // テスト用
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: ...
}
if (r == 1 && h == 3 || r == 2 && h == 1 || r == 3 && h...
printf("あなたの勝ち!\n");
} else {
printf("あなたの負け!\n");
}
return 0;
}
}}
このテスト用プログラムに対して、1, 2, 3 とすべてのパター...
#geshi(sh){{
luna% a.out
じゃんけんぽん!(1: グー、2: チョキ、3: パー):
1
あなた: 1、コンピューター: 1(1: グー、2: チョキ、3: パー)
あいこでしょ!(1: グー、2: チョキ、3: パー):
2
あなた: 2、コンピューター: 1(1: グー、2: チョキ、3: パー)
あなたの負け!
luna% a.out
じゃんけんぽん!(1: グー、2: チョキ、3: パー):
3
あなた: 3、コンピューター: 1(1: グー、2: チョキ、3: パー)
あなたの勝ち!
}}
**演習3 [#fee024dc]
プログラム2のテストを行え。
----
*まとめ [#d3e87cb3]
プログラム作成は、設計、コーディング、テストの順に行いま...
まず、出力結果のイメージを作成し、プログラムの流れをフロ...
フローチャートができたら、フローチャートに基づいてプログ...
プログラムができたら、正しく動くことを確認します(テスト...
終了行:
これまでに勉強したことを使って、次のような簡単なじゃんけ...
プレイヤーがコンピューターと勝負がつくまでじゃんけんをす...
*実行結果をイメージする [#p272a86c]
[[数当てゲーム>授業/C言語基礎/数当てゲーム]]のところでも...
じゃんけんでは、グーかチョキかパーを出しますが、プレイヤ...
プレイヤーが入力した後にコンピューターが自分の手を選ぶの...
とりあえず、コンピューターがグーを選んだとして話を進めま...
プレイヤーに入力を要求するメッセージは、じゃんけんらしく...
じゃんけんぽん!(1: グー、2: チョキ、3: パー):
プレイヤーが手を選んで入力すると、プレイヤーが選んだ手と...
ここでは、プレイヤーがパーを選んで 3 を入力したとします。
じゃんけんぽん! (1: グー、2: チョキ、3: パー):
3
あなた: 3、コンピューター: 1(1: グー、2: チョキ、3: パ...
プレイヤーがパーを選んだ場合は、プレイヤーの勝ちなので、...
じゃんけんぽん! (1: グー、2: チョキ、3: パー):
3
あなた: 3、コンピューター: 1(1: グー、2: チョキ、3: パ...
あなたの勝ち!
プレイヤーがチョキを選んで 2 を入力したとすると、プレイヤ...
じゃんけんぽん! (1: グー、2: チョキ、3: パー):
2
あなた: 2、コンピューター: 1(1: グー、2: チョキ、3: パ...
あなたの負け!
プレイヤーがグーを選んで 1 を入力したとすると、あいこなの...
じゃんけんぽん! (1: グー、2: チョキ、3: パー):
1
あなた: 1、コンピューター: 1(1: グー、2: チョキ、3: パ...
あいこでしょ! (1: グー、2: チョキ、3: パー):
これを、勝負がつくまで繰り返します。
このように、実行結果をイメージすることで、プログラムの中...
*フローチャートを作る [#p5d52f9c]
次に、イメージした実行結果になるように、プログラムのフロ...
このプログラムも、[[数当てゲーム>授業/C言語基礎/数当てゲ...
+コンピューターが自分の手を選ぶ
+プレイヤーが自分の手を選ぶ
ただし、[[数当てゲーム>授業/C言語基礎/数当てゲーム]]とは...
プレイヤーの手はキーボードから入力してもらうので、繰り返...
+「じゃんけんぽん」と出力する
+rand関数で自分の手を選ぶ
+scanf関数でキーボードから入力する
--引き分けなら、「あいこでしょ」と出力し、2へ戻る
--そうでないなら、結果を出力し、プログラムを終了する
この流れを、そのままフローチャートにすると、次のようにな...
#ref(./janken1.png,nolink,50%)
*プログラムを作る [#fa42e20f]
フローチャートができたら、プログラムを作ります。
まず初めに、「じゃんけんぽん」と出力して、無限ループを用...
#geshi(c){{
#include <stdio.h>
int main(void) {
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
while (1) {
}
return 0;
}
}}
無限ループに入ると、乱数を使って自分の手を選びます。
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
while (1) {
r = rand() % 3 + 1;
}
return 0;
}
}}
ここでは、1から3までの整数を乱数で生成し、1ならグー、2な...
rand関数、srand関数、time関数の使い方については、[[計算ゲ...
その次に、キーボードから入力する部分を加えます。
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
while (1) {
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: ...
}
return 0;
}
}}
ここで、h はプレイヤーが入力した数を記憶しておくための変...
(同時に、新しく登場した変数 a の宣言も追加しています。)
また、入力された手とコンピューターが選んだ手を画面に出力...
ここで、引き分けでない場合は、無限ループを中断します。
そうでない場合(引き分けの場合)は、「あいこでしょ」と出...
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
while (1) {
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: ...
if (h != r) { break; }
printf("あいこでしょ!(1: グー、2: チョキ、3: パー)...
}
return 0;
}
}}
無限ループが中断されたら(勝負がついたら)、結果を判定し...
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
while (1) {
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: ...
if (h != r) { break; }
printf("あいこでしょ!(1: グー、2: チョキ、3: パー)...
}
if (r == 1 && h == 3 || r == 2 && h == 1 || r == 3 && h...
printf("あなたの勝ち!\n");
} else {
printf("あなたの負け!\n");
}
return 0;
}
}}
結果を判定するif文の条件は、勝ちのパターン3通りをすべて列...
これで完成です(プログラム1)。
**演習1 [#g7b4befb]
プログラム1を作成し、実行結果を確認せよ。
*前置判定while文でプログラムを作る [#pcfb4868]
繰り返し(for文、while文、do-while文)でbreakやcontinueを...
そのため、できる限りbreakやcontinueを使わずにプログラムを...
そこで、フローチャートを次のように書き換えます(フローチ...
#ref(./janken2.png,nolink,50%)
これをプログラムにします。
まず初めに、「じゃんけんぽん」と出力して、乱数を使って自...
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: チ...
return 0;
}
}}
次に、繰り返し処理を行う前置判定のwhile文の形を用意します。
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: チ...
while (h == r) {
}
return 0;
}
}}
ここでは、繰り返し条件を先に考えることができるので、先に...
繰り返し条件は、引き分け、つまり、コンピューターの手とプ...
つぎに、繰り返し処理の中だけを考えると、次のようになりま...
#geshi(c){{
printf("あいこでしょ!(1: グー、2: チョキ、3: パー):\...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: チ...
}}
そこで、これをwhile文の波括弧 { } の中に入れます。
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: チ...
while (h == r) {
printf("あいこでしょ!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: ...
}
return 0;
}
}}
繰り返しが終了したら(勝負がついたら)、結果を判定して、...
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: チ...
while (h == r) {
printf("あいこでしょ!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: ...
}
if (r == 1 && h == 3 || r == 2 && h == 1 || r == 3 && h...
printf("あなたの勝ち!\n");
} else {
printf("あなたの負け!\n");
}
return 0;
}
}}
これで完成です(プログラム2)。
**演習2 [#n6066e70]
プログラム1をプログラム2に変更し、実行結果を確認せよ。
*プログラムをテストする(おまけ) [#fa2130c8]
[[数当てゲーム>授業/C言語基礎/数当てゲーム]]と同様に、ま...
プログラム2は、次の四つのモジュールに分割できます。
+コンピューターが自分の手を選ぶ
+プレイヤーが手を入力する
+あいこのときにもう一度勝負する
+勝敗を判定する
そこで、まず、コンピューターが自分の手を正しく選べている...
[[数当てゲーム>授業/C言語基礎/数当てゲーム]]と同様に、乱...
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
int i; // テスト用
srand((unsigned int) time(NULL)); // 乱数のシード
// テスト用
for (i = 1; i <= 1000; i++) {
r = rand() % 3 + 1;
printf("# r = %d\n", r);
if (r < 1 || r > 3) { exit(1); }
}
/*
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: チ...
*/
while (h == r) {
printf("あいこでしょ!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: ...
}
if (r == 1 && h == 3 || r == 2 && h == 1 || r == 3 && h...
printf("あなたの勝ち!\n");
} else {
printf("あなたの負け!\n");
}
return 0;
}
}}
つぎに、コンピューターの手をグー、チョキ、パーのそれぞれ...
ここでは、テスト・ケースが限定されているので、ホワイト・...
つまり、r が 1, 2, 3 のそれぞれについて、h が 1, 2, 3 の...
コンピューターの手をグーに固定するには、乱数を生成した直...
#geshi(c){{
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
int r, h;
srand((unsigned int) time(NULL)); // 乱数のシード
printf("じゃんけんぽん!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
r = 1; // テスト用
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: チ...
while (h == r) {
printf("あいこでしょ!(1: グー、2: チョキ、3: パー)...
r = rand() % 3 + 1;
r = 1; // テスト用
scanf("%d", &h);
printf("あなた: %d、コンピューター: %d(1: グー、2: ...
}
if (r == 1 && h == 3 || r == 2 && h == 1 || r == 3 && h...
printf("あなたの勝ち!\n");
} else {
printf("あなたの負け!\n");
}
return 0;
}
}}
このテスト用プログラムに対して、1, 2, 3 とすべてのパター...
#geshi(sh){{
luna% a.out
じゃんけんぽん!(1: グー、2: チョキ、3: パー):
1
あなた: 1、コンピューター: 1(1: グー、2: チョキ、3: パー)
あいこでしょ!(1: グー、2: チョキ、3: パー):
2
あなた: 2、コンピューター: 1(1: グー、2: チョキ、3: パー)
あなたの負け!
luna% a.out
じゃんけんぽん!(1: グー、2: チョキ、3: パー):
3
あなた: 3、コンピューター: 1(1: グー、2: チョキ、3: パー)
あなたの勝ち!
}}
**演習3 [#fee024dc]
プログラム2のテストを行え。
----
*まとめ [#d3e87cb3]
プログラム作成は、設計、コーディング、テストの順に行いま...
まず、出力結果のイメージを作成し、プログラムの流れをフロ...
フローチャートができたら、フローチャートに基づいてプログ...
プログラムができたら、正しく動くことを確認します(テスト...
ページ名: