「2013年04月」の記事

コンピュータ対戦版(ちょっと改造)

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

オセロについて調べたら、多く取れない所を選んだ方がいいらしいのでそのあたりを変えてみました。

Office2007以降でないと動作しないことがわかったので、2003でも動作するよう変換かけました。(以前アップしたエクセルも全て変換しました。)

コンピュータ対戦オセロ1

Excelのバージョン(2013?)によっては、ダウンロード後実行すると保護ビューエラーが出ますが、編集を有効にするをクリックしてください。再度、エラーメッセージが出ますが終了をクリックすれば動作します。(Chromeで起こるようです。)

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

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

内部設計に基づいて実装しましたが、コンピュータの攻撃の判定がなかなか難しくって・・・・・・
結局、半徹夜。明け方の地震で起こされた時は完全に寝ぼけてました。

一応完成しましたが、コンピュータの手を考える処理を次の一手だけで行っているため弱いみたいです(私には勝ちますが、嫁には負けます)

考える処理の理屈は以下の通りです。(優先度が高い順が優先順位とする)

  1. 基本は反転数が多い順に順序付けする(反転数を優先度にする)
  2. 以下の場合、優先度を変える
    1. 4隅を打つことができれば最優先(優先度+12)
    2. 4隅から1つ飛ばしたところは2番目に優先(優先度+6)
    3. 4辺の真ん中は、優先度を1にする
    4. 4隅の隣は、優先度ゼロ

こうすれば強くなるという理論(ただし1手判定に限ります)があれば教えてください。

コンピュータ対戦オセロ0

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

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

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

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

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

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

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

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

 

プロフィール

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


大きな地図で見る

カテゴリー

WordPress

セキュリティニュース


TOPへ戻る

PAGE TOP