コンピュータ対戦版(内部設計)

以下の手順に従い内部設計を行います。

  1. ファイル設計
  2. モジュール設計

1.ファイル設計

  1. 戦績ファイル
    対戦型と同じ
  2. 打ち手判定ファイル
    可能な打ち手、優先順位、反転できる駒(数は可変)

2.モジュール設計(メインモジュールは1本で、人間がセルをクリックしたら起動する)

  1. 場所の判定(盤面上で、空白の場所か?)
    打てない場所の場合、処理終了
  2. 打った手の反転処理(共通モジュール化する)
    打った手とオプションボタンの状態から打てる手かどうかの判定を行いながら反転する。
    同時に、戦績ファイルに記録する
  3. 上記処理の結果、打てない場所の場合は処理終了
  4. 勝敗判定(モジュール化)
    オプションボタンの状態とすべてのセルのチェックで以下の判定を行う

    1. 終了(打てる場所なし、全部黒または全部白
    2. 黒の攻撃(オプションボタンが白で黒の攻撃可能)
    3. 白の攻撃(オプションボタンが黒で白の攻撃可能)
  5. 勝敗判定で終了又は黒の攻撃の場合、処理終了
  6. 上記以外の場合、コンピュータの処理を行う
    1. 空白のセルをすべて調べ、打ち手判定ファイルを作る
    2. 打ち手判定ファイルを調べ、打ち手を決定する
    3. 決定した打ち手で、打った手の判定処理を行う
  7. 4.の勝敗判定に戻る

こんな感じでしょうか?

2.と4.と6.の処理をサブモジュール化します。