C言語

【C言語】第9章第10回:C言語を使ったプロジェクト例:ゲーム、ツール開発

C言語を使ったプロジェクトでスキルを磨きましょう。本記事では、ゲームやツールの実装例を通して実践的なスキルを習得します。

0. 記事の概要

この記事を読むメリット

  • 実践的なスキル:実際に動作するプログラムを作成しながら学べます。
  • 応用力の向上:ゲームやツールを作ることで、C言語の柔軟性を理解できます。
  • モチベーションアップ:完成物があることでプログラミング学習が楽しくなります。

この記事で学べること

  • 簡単なゲームの作成方法
  • ツール開発の基本的な考え方
  • プロジェクトを通じたC言語の活用スキル

1. プロジェクト例1:数当てゲーム

1.1 数当てゲームの概要

数当てゲームは、プレイヤーがコンピュータが選んだ数を当てるシンプルなゲームです。範囲内の数を予想して入力し、ヒントを基に正解を目指します。

1.2 コード例

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int secret, guess;
    srand(time(0));
    secret = rand() % 100 + 1; // 1から100のランダムな数

    printf("数当てゲームを始めます!(1〜100の間の数字を当ててください)\n");

    do {
        printf("あなたの予想を入力してください: ");
        scanf("%d", &guess);

        if (guess < secret) {
            printf("もっと大きいです!\n");
        } else if (guess > secret) {
            printf("もっと小さいです!\n");
        } else {
            printf("正解です!%dが正しい数字です。\n", secret);
        }
    } while (guess != secret);

    return 0;
}
動作解説
  1. ランダムな数の生成:`rand`関数を使用して1〜100のランダムな数を生成します。
  2. ユーザーの入力:`scanf`でプレイヤーの予想を取得します。
  3. ヒントの出力:予想が正解より小さい場合は「もっと大きい」、大きい場合は「もっと小さい」と表示します。

2. プロジェクト例2:簡易計算機

2.1 簡易計算機の概要

このツールは、基本的な四則演算(加算、減算、乗算、除算)を行います。ユーザーが2つの数値と演算子を入力することで計算を行います。

2.2 コード例

#include <stdio.h>

int main() {
    char operator;
    double num1, num2, result;

    printf("簡易計算機\n");
    printf("使用可能な演算子: +, -, *, /\n");

    printf("数式を入力してください(例: 5 + 3): ");
    scanf("%lf %c %lf", &num1, &operator, &num2);

    switch (operator) {
        case '+':
            result = num1 + num2;
            break;
        case '-':
            result = num1 - num2;
            break;
        case '*':
            result = num1 * num2;
            break;
        case '/':
            if (num2 != 0)
                result = num1 / num2;
            else {
                printf("エラー: 0で割ることはできません。\n");
                return 1;
            }
            break;
        default:
            printf("無効な演算子です。\n");
            return 1;
    }

    printf("結果: %.2lf\n", result);
    return 0;
}
動作解説
  1. 入力の取得:ユーザーが数値と演算子を入力します。
  2. 演算の実行:`switch`文を使用して対応する計算を実行します。
  3. エラー処理:除算時に分母がゼロの場合、エラーメッセージを表示します。

3. 練習問題

以下の課題に挑戦して、プロジェクトの作成スキルを向上させましょう。

  1. 数当てゲームに、試行回数を表示する機能を追加してください。
  2. 計算機に、累乗(^)演算を追加してください。
  3. 2人プレイの簡単な対戦ゲームを設計してください。

4. 練習問題の解答と解説

以下は、課題の解答例の一部です。

問1の解答例

// 数当てゲームに試行回数を追加
int attempts = 0;

do {
    attempts++;
    printf("試行回数: %d\n", attempts);
    // 残りのロジックは同じ
} while (guess != secret);

5. まとめ

本記事では、C言語を使用したプロジェクト例として数当てゲームと簡易計算機を紹介しました。これらを基にさらに複雑なプロジェクトに挑戦してみてください。