画像(logo)

HOME/[C言語]サンプルプログラム集 目次/数当てゲーム

広告

[C言語 サンプルプログラム集]
数当てゲーム

広告

↓発売日:2018年09月22日↓

たった1日で基本が身に付く! C言語 超入門

新品価格
¥2,225から
(2018/10/8 23:10時点)

目次へ戻る

数当てゲーム

今回は数当てゲームをつくります。

画像(cs_11_1)

正解の数字になるまで数字の範囲をせばめながら入力していくというゲームになります。

今回正解の数は最初に入力するカタチをとっておりますが、自分一人でもこのゲームを楽しみたいという方は乱数などで最初の数を発生させてください。

ゲームテクニック集の乱数

乱数の説明になります。

ヘッダファイル

今回必要なヘッダファイルです。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

<stdio.h>以外を説明します。

<stdlib.h>

乱数を発生させる「srand()」、「rand()」、画面を消去する「system("cls")」などで使います。

#define _CRT_SECURE_NO_WARNINGS

ヘッダファイルとは少し違いますがこちらは「scanf()」命令などを使う時の警告を無視するものになります。

ヘッダファイルの意味についてはわからなそうな用語集のヘッダファイルを見てください。

変数

int ans, ans2, count;
int min = 0;
int max = 100;

大事な役割を持つ変数が

/*正解の数を保存*/
int ans;
/*入力された数を保存*/
int ans2;
/*答えの下限*/
int min = 0;
/*答えの上限*/
int max = 100;

になります。

その他はゲームの回数をカウントする変数などになります。

正解の数を決める

正解の数を決めます。

なにもしないとどのような数でも入力できてしまうのであらかじめ範囲を定めます。

int min = 0;
int max = 100;

while (1){
	printf("正解の数字を入力してください(%d < x < %d) > ",min,max);
	(void)scanf("%d", &ans);
	if (ans > min && ans < max)break;
	else{
		printf("不正な数です。やり直してください。\n");
		continue;
	}
}

まず変数初期化の際、上限と下限をきめます。

int min = 0;
int max = 100;

その範囲内の数が入力されるまで「while()」ループを使って入力を促します。

while (1){
}

「while()」は中の条件を「1」にして無限ループにしてしまいます。

printf("正解の数字を入力してください(%d < x < %d) > ",min,max);
(void)scanf("%d", &ans);

数を入力させます。

そしてここで入力された数を判定、ループ脱出か継続かを条件分岐していきます。

ループ脱出

まずはループ脱出です。

if (ans > min && ans < max)break;

入力された数が上限・下限の範囲内におさまっていれば「break」文でループを抜けます。

ループ継続

次はその「else」文にあたるループ継続処理です。

else{
	printf("不正な数です。やり直してください。\n");
	continue;
}

警告を出して「continue」文でさきほどのループの先頭に処理をもどします。

これで正解の数を決める処理は完了です。

数当て処理

数当ての処理部分になります。

基本的には最初の正解の数を決める処理と似たような処理で数を入力させてその数を判定していくようなカタチになります。

while (1){
	printf("残り%dゲーム\n",10 - count);
	printf("数を当ててください(%d < x < %d) > ", min, max);
	(void)scanf("%d", &ans2);
	if (ans2 > min && ans2 < max)break;
	else{
		printf("不正な数です。やり直してください。\n");
		continue;
	}
}

さきほどと同じように決まった範囲内で数を入力させます。

入力→数字が範囲内におさまっているか判定→おさまっていれば「break」→そうでなければ「continue」

さきほどとほとんど変わらないですね。

最後に正解の数と比較する部分になります。

if (ans == ans2){
	printf("正解\n");
	break;
}
else{
	printf("残念\n");
	if (ans2 < ans){
		min = ans2;
	}
	else{
		max = ans2;
	}
}

まず正解の数と同じかどうか比較

if (ans == ans2){
	printf("正解\n");
	break;
}

そうでなければ

else{
	printf("残念\n");
	if (ans2 < ans){
		min = ans2;
	}
	else{
		max = ans2;
	}
}

大きさを比較して上限、下限の数を入れ替えれば完了です。

完成

あとは数を当てるまでの回数などゲーム全体のカタチを整えれば完成です。

ソースになります。

数当てゲームソース

□ページの先頭へ□

□目次へ戻る□

□HOME□

広告

↓発売日:2016年02月29日↓

12歳からはじめる ゼロからのC言語 ゲームプログラミング教室

新品価格
¥2,462から
(2018/10/8 23:25時点)

↓発売日:2018年06月22日↓

スッキリわかるC言語入門

新品価格
¥2,916から
(2018/10/8 23:15時点)

↓発売日:2018年03月09日↓

C言語本格入門 ~基礎知識からコンピュータの本質まで

新品価格
¥3,218から
(2018/10/8 23:16時点)

↓発売日:2017年06月14日↓

やさしいC 第5版 (「やさしい」シリーズ)

新品価格
¥2,700から
(2018/10/8 23:17時点)

↓発売日:2018年05月21日↓

作って身につく C言語入門

新品価格
¥2,462から
(2018/10/8 23:18時点)

↓発売日:2017年12月07日↓

新・標準プログラマーズライブラリ C言語 ポインタ完全制覇

新品価格
¥2,678から
(2018/10/8 23:19時点)

↓発売日:2017年02月08日↓

新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ)

新品価格
¥2,700から
(2018/10/8 23:20時点)

↓発売日:2017年09月26日↓

かんたん C言語 [改訂2版] (プログラミングの教科書)

新品価格
¥2,916から
(2018/10/8 23:22時点)