[前へ]   [目次へ]   [次へ]

簡単な単語当てゲームの仕様(C/C++)


今回から、簡単な単語当てゲームを作っていきます。
「簡単な」と言ってもこのあたりからは侮ってはいけません。

今回の単語当てゲームは7段階に分けて作っていきますが、
最終段までいく頃にはC言語の基礎と文法事項はほとんどをカバーする域になります。
「入門書1冊に書いてある内容総動員」クラスですね。
私はプログラミングは文法事項を覚えてからが本当の始まりだと思っているので、
これが終わるころには「初級編」になる予定です。
このゲーム完成までに軽く50回分ぐらいの記事書けそうだなぁ・・・(笑)

以下に作成するゲームの各段階の概要を示します。

●Lv1 まずは形を作る
   ●仕様:
      ソース上に直接書き込んだ問題を乱数を使って選択し、表示します。
      その問題の答えをプレイヤーはキーボードから入力し、成否を判定します。
   
   ●要点:
      文字列同士の比較が必要になります。
      C言語標準の文字列系関数についての導入です。


●Lv2 ヒントを付けてみる
   ●仕様:
      Lv1に加え、入力すべき文字を*で隠して表示します。(パスワード風味)
      プレイヤーが入力した答えが部分的に合っていた場合、その部分だけ開示します。
   
   ●要点:
      簡単なものとはいえ、文字列操作を直接行う必要があります。
      日本語への対応も必要なので、2バイト文字の扱いを考慮します。


●Lv3 問題を用意したテキストファイルから読みだすようにする
   ●仕様:
      Lv2に加え、別途用意したテキストファイルから問題を読み出して出題します。
      読み出せる問題の数は10とします。
   
   ●要点:
      ファイルからの読み込みが必要になります。
      いわゆる「借り物タグ」である「ハンドル」の概念が必要になります。


●Lv4 問題ごとの履歴を作る
   ●仕様:
      Lv3に加え、各問題の総ミス数、総正解数、総正解率、最近5回の正解率を計算します。
      問題の履歴はプログラムを終了すると消えます。
   
   ●要点:
      各問題の情報を分かりやすく管理するために、構造体を導入します。


●Lv5 問題ごとの履歴を保存するようにする
   ●仕様:
      Lv4に加え、作成した履歴をファイルに保存し、次回も利用できるようにします。
   
   ●要点:
      ファイルの書き込みが必要になります。


●Lv6 問題をメモリが許す限り登録できるようにする
   ●仕様:
      10問だった問題の登録数上限を解除し、ファイルに書いてあるだけ利用できるようにします。
      当然ですが、PCのメモリが尽きたら登録できません。
   
   ●要点:
      メモリの動的確保が必要になります。
      ここからはC++言語の内容が本格的に導入されます。


●Lv7 全体をクラスを使って効率化する
   ●仕様:
      プログラム全体をC++のクラス機能を使って整理し、分かりやすくします。
   
   ●要点:
      C++のクラスの基本機能の紹介を行います。



Lv7まで行ってもやれることは「ただの単語当てゲーム」なのですが、
これらの過程には様々な応用が利く汎用性の高い内容がてんこもりです。
Lv7を自力で完成できるぐらいになれば、「ちょっとしたツール」ぐらいは自力で作れるようになっているはずです。

かなりの長丁場になりそうな感じですが、ゆるりとお付き合いくださいませ。

次回は「文字列系関数を使ってみる」の予定です。

[前へ]   [目次へ]   [次へ]

プログラミング講座 総合目次

最終更新 2009/01/01