目次> 第9章> 9.5 TOPUPPREVNEXT

9.5 回答システムの仕様と設計

数あてゲームの「回答者」の役割をするプログラムを作成しましょう。

「出題者」が決めた数値をあてるには、いろいろな方法があると思いますが、 二分探索というアルゴリズムを参考にして、 できるだけ効率よくあてる方法を工夫しましょう。

【ユースケース図】

page-9-5-1.gif

【二分探索 binary search

整列された一連のデータを検索する方法で、 探しているデータが 「一連のデータの前半分にあるか、後半分にあるかを判定する」 ことを繰り返すアルゴリズム。

整列されていないデータに対しては、 先頭から順に探してゆく 順次探索 sequential search が用いられる。

【バイナリ・サーチのアルゴリズム】

配列 data の 0 番目から ndata - 1 番目までに ndata 個のデータが小さい順に格納されているとする。 変数 value に格納されているデータに等しいものが 配列の何番目にあるかを検索する手順を以下に示す。
  1. top ← 0
  2. bot ← ntata-1
  3. top <= bot ならば以下を繰り返す
    top > bot ならば 「見付からなかった」 としてアルゴリズムを終了
  4. mid ← (top + bot) / 2
  5. value = data[mid] ならば、「mid 番目にあった」 としてアルゴリズムを終了
  6. value < data[mid] ならば、 bot ← mid - 1
  7. value > data[mid] ならば、 top ← mid + 1
  8. 3.へ戻る

【機能に関するキーワードの抽出】

page-9-5-3.gif

「表示」機能について調整(下図)

page-9-5-4.gif

【クラス図】

page-9-5-2.gif
( Eiwa System Management, Inc. の Jude 竹 (現在 astah community) で作図 )

【ボタンの生成】

4.2 イベントとリスナ


更新日:2004/12/12 TOPUPPREVNEXT