新刊ピックアップ
実際に小一時間でゲームをつくってみた!^^
この記事を読むのに必要な時間:およそ 1.5 分
徐々にできあがっていくわくわく感を体験!
プログラムを書いては実行を繰り返し徐々に完成していくとわくわくしますよね。ここでは,
最初に,
// [1]ヘッダーをインクルードする場所
// [2]関数を宣言する場所
プレイヤーが丁か半かを選択できるようにする
まず,main()
関数の中でwhile
でループするようにします。
// [2]関数を宣言する場所
// [2-1]プログラムの実行開始点を宣言
int main() {
while (1)
{
}
}
プレイヤーからの入力を受け付けるために<conio.
を,<stdio.
をインクルードします。
// [1]ヘッダーをインクルードする場所
#include <stdio.h> // [1-1]標準入出力ヘッダー
#include <conio.h> // [1-4]コンソール入出力ヘッダー
while
ループ内に,
while (1)
{
// [2-2-2]プレイヤーが丁(偶数)か半(奇数)かを入力
int in;
do
{
printf("AI「丁(偶数)か半(奇数)か入力してください。」([0]丁 [1]半)\n");
in = _getch() - '0'; // [2-2-3]文字を入力して数値に変換
} while ((in != 0) && (in != 1));
// [2-2-4]入力結果を出力
printf("in:%d\n", in);
if (in % 2 == 0)
printf("あなた「丁(偶数)!」\n");
else
printf("あなた「半(奇数)!」\n");
}
実行すると,
サイコロを2つふる処理を実装する
乱数を扱うため<stdlib.
と<time.
をインクルードします。
// [1]ヘッダーをインクルードする場所
#include <stdio.h> // [1-1]標準入出力ヘッダー
#include <stdlib.h> // [1-2]標準ライブラリヘッダー
#include <time.h> // [1-3]時間管理ヘッダー
#include <conio.h> // [1-4]コンソール入出力ヘッダー
乱数をシャッフルする処理を実装します。
int main() {
// [2-2-1]乱数をシャッフル
srand((unsigned int)time(NULL));
while (1)
{
...
}
}
サイコロの目を取得する処理を実装します。
while (1)
{
...
// [2-2-5]サイコロの目を取得
int dice0 = 1 + rand() % 6;
int dice1 = 1 + rand() % 6;
}
丁か半かの結果を出力する
最後に,
while (1)
{
...
// [2-2-6]サイコロの目の結果を出力
printf("AI「%d %d の", dice0, dice1);
if ((dice0 + dice1) % 2 == 0)
printf("丁(偶数)!」\n");
else
printf("半(奇数)!」\n");
if ((dice0 + dice1) % 2 == in)
printf("AI「あなたの勝ちです!」\n");
else
printf("AI「あなたの負けです!」\n");
printf("\n");
}
おめでとうございます! ゲームが完成しました。
本書では,
記事中で紹介した書籍
-
小一時間でゲームをつくる ──7つの定番ゲームのプログラミングを体験
C言語によるコンソールアプリで,ゲームを一手ずつ作成する手順を解説する,画期的な本の登場です。0から完成まで,手順通りに進めれば必ず完成する仕組みになっていま...