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

単語当てゲームLv3の設計(C/C++)


今回は、単語当てゲームLv3の設計を行います。
Lv3の仕様はLv2から機能追加したものなので、
まずLv2の仕様から振り返ってみます。

●Lv2の仕様
[要素]ソース上に直接書き込んだ問題
   [属性]複数:問題
         入力 固定:[機能]乱数を使って選択し表示します→[処理]問題を選択する
[要素]選択された問題
   [属性]参照 単体:問題
         作成:[機能]乱数を使って選択し表示します→[処理]問題を選択する
         入力 固定:[機能]乱数を使って選択し表示します→[処理]選択された問題を表示する
         入力 固定:[機能]成否を判定します→[処理]結果を判定し、分岐する
         入力 固定:[機能]ヒント文字列の更新→[処理]入力と正解の比較
[要素]入力された答え
   [属性]単体:プレイヤーの回答
         出力:[機能]その問題の答えをプレイヤーはキーボードから入力し→[処理]プレイヤーから答えが入力されるのを待つ
         入力 固定:[機能]成否を判定します→[処理]結果を判定し、分岐する
         入力 固定:[機能]ヒント文字列の更新→[処理]入力と正解の比較
[要素]問題
   [属性]単体:問題文 正解文
         被参照:選択された問題
[要素]ヒント文字列
   [属性]単体:ヒントとして表示する文字列
         作成:[機能]乱数を使って選択し表示します→[処理]ヒント文字列を初期化する
         入力 出力:[機能]ヒント文字列の更新→[処理]ヒント文字列を更新
         入力 固定:[機能]ヒント文字列の表示→[処理]ヒント文字列を表示する
[機能]乱数を使って選択し表示します
   [処理]乱数を発生させる
   [処理]問題を選択する:「[要素]選択された問題」を作成
   [処理]選択された問題を表示する
   [処理]ヒント文字列を初期化する:「[要素]ヒント文字列」を作成
[機能]ヒント文字列の表示
   [処理]ヒント文字列を表示する
[機能]その問題の答えをプレイヤーはキーボードから入力し
   [処理]プレイヤーから答えが入力されるのを待つ:「[要素]入力された答え」へ結果を出力
[機能]ヒント文字列の更新
   [処理]入力と正解の比較
   [処理]ヒント文字列を更新:「[要素]ヒント文字列」を更新
[機能]成否を判定します
   [処理]結果を判定して分岐:正解なら「[機能]クリア表示して終了」へ進む
                         間違いなら「[機能]その問題の答えをプレイヤーはキーボードから入力し」へ進む
[機能]クリア表示して終了
   [処理]クリアを表示する
   [処理]プログラムを終了する

各要素の関係図


変更点の詳細については 第82回 を参照していただくとして、
一言で言えば問題ファイルを使えるようにすることです。

これまでの「[要素]ソース上に直接書き込んだ問題」は今回からソース上に書くわけではなくなるので、
「[要素]問題セット」に名前を変更します。

そして問題セットを構成する機能を追加します。
[機能]問題セットの構築
   [処理]問題をファイルから読み込んで問題セットを構築する:問題ファイルから「[要素]問題セット」を作成する


追加点はこれだけです。
これを仕様に合うようにLv3の仕様の中に組み込めばOKです。

●Lv3の仕様に合わせて作成した新しい関係(赤太字部分が変更点)

[要素]問題セット
   [属性]複数:問題
         作成:[機能]問題セットの構築→[処理]問題をファイルから読み込んで問題セットを構築する
         入力 固定:[機能]乱数を使って選択し表示します→[処理]問題を選択する
[要素]選択された問題
   [属性]参照 単体:問題
         作成:[機能]乱数を使って選択し表示します→[処理]問題を選択する
         入力 固定:[機能]乱数を使って選択し表示します→[処理]選択された問題を表示する
         入力 固定:[機能]成否を判定します→[処理]結果を判定し、分岐する
         入力 固定:[機能]ヒント文字列の更新→[処理]入力と正解の比較
[要素]入力された答え
   [属性]単体:プレイヤーの回答
         出力:[機能]その問題の答えをプレイヤーはキーボードから入力し→[処理]プレイヤーから答えが入力されるのを待つ
         入力 固定:[機能]成否を判定します→[処理]結果を判定し、分岐する
         入力 固定:[機能]ヒント文字列の更新→[処理]入力と正解の比較
[要素]問題
   [属性]単体:問題文 正解文
         被参照:選択された問題
[要素]ヒント文字列
   [属性]単体:ヒントとして表示する文字列
         作成:[機能]乱数を使って選択し表示します→[処理]ヒント文字列を初期化する
         入力 出力:[機能]ヒント文字列の更新→[処理]ヒント文字列を更新
         入力 固定:[機能]ヒント文字列の表示→[処理]ヒント文字列を表示する
[機能]問題セットの構築
   [処理]問題をファイルから読み込んで問題セットを構築する:問題ファイルから「[要素]問題セット」を作成する

[機能]乱数を使って選択し表示します
   [処理]乱数を発生させる
   [処理]問題を選択する:「[要素]選択された問題」を作成
   [処理]選択された問題を表示する
   [処理]ヒント文字列を初期化する:「[要素]ヒント文字列」を作成
[機能]ヒント文字列の表示
   [処理]ヒント文字列を表示する
[機能]その問題の答えをプレイヤーはキーボードから入力し
   [処理]プレイヤーから答えが入力されるのを待つ:「[要素]入力された答え」へ結果を出力
[機能]ヒント文字列の更新
   [処理]入力と正解の比較
   [処理]ヒント文字列を更新:「[要素]ヒント文字列」を更新
[機能]成否を判定します
   [処理]結果を判定して分岐:正解なら「[機能]クリア表示して終了」へ進む
                         間違いなら「[機能]その問題の答えをプレイヤーはキーボードから入力し」へ進む
[機能]クリア表示して終了
   [処理]クリアを表示する
   [処理]プログラムを終了する

新しい各要素の関係図

これで単語当てゲームLv3を作成するのに必要な情報が揃いました。
次回は単語当てゲームLv2をLv3に改造していきます。

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

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

最終更新 2011/09/09