カテゴリー「仕事」の記事

コンピュータ対戦版(実装)

2013年4月13日 / エクセル, パソコン, 仕事

内部設計が出来たら実装します。

大規模のシステムであれば、更にプログラム設計を行います。
プログラム設計は、通常、共通のモジュールから設計します。
プログラム設計で重要なことは、インターフェースと処理内容を明確にすることです。
例えば、勝敗判定モジュールで現在の攻撃者をインターフェースでやり取りするのかオプションボタンの状態で判定するのかなどです。

今回は一人で実装するのと、対戦型のプログラムが利用できるのでプログラム設計は割愛します。

プログラムはメインモジュール(Worksheet_SelectionChange)と打った手の反転処理、勝敗判定処理、コンピュータの処理の4つです。内容によっては更にサブモジュール化しますが、これも一人なので実装しながら決めていきます。(二人以上で開発する場合は、完全にモジュールを決定する必要があります)対戦型では、戦績ファイルの書き込みなどをサブモジュール化しています。
サブモジュール化の基準は、複数の場所で同じ処理があるか?、プログラムを修正する際にわかりやすくなるか?などで決定しますが、できるだけ独立性が高くなるよう設計します。

内部設計で忘れていましたが、初期化処理も差必要ですね^^;;

実装の結果は、完成したから報告します^^

 

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

2013年4月13日 / エクセル, パソコン, 仕事

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

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

1.ファイル設計

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

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

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

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

こんな感じでしょうか?

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

 

Excelでオセロ:コンピュータ対戦版(設計)

2013年4月12日 / エクセル, パソコン, 仕事

そろそろコンピュータ対戦の作成をしたいと思います。

前回までの対戦型オセロは、最初の思い付きから徐々に機能を追加していきました。こういう作り方も実際にはあると思いますが、今回は要件を作ってから作成していこうと思います。

ということで、今回は「要件定義」を行っていきます。

  1. 人間側を「黒」、コンピュータを「白」とし、黒の先攻とする。
  2. 対戦の履歴を残す。
  3. コンピュータが打つ手のロジックを検討できるよう、コンピュータが打てる場所と打った結果(反転する駒の場所など)を記録した後でコンピュータの手を決定する。
  4. 盤面の形式及び終了時の動き等は対戦型オセロと同じにする。

とりあえずこんなところでしょうか?

上記の要件4.で動きなどは明確なので、外部設計も完了したとみなしていいと思います。

プロフィール

志多木義浩
732-0821
広島市南区大須賀町17-5-709
TEL  080-3622-4171


大きな地図で見る

カテゴリー

WordPress

セキュリティニュース


TOPへ戻る

PAGE TOP