機能構成
処理フローチャート
1回のオセロを動かすための処理フローは以下のようなものにする。この部分だけなら、将棋やチェスといった他のボードゲームでも同様の構成になると思われる。
処理内容
暫定案なところもあるが、とりあえず以下のような処理とする。
- 初期化
盤面の配列等、各変数を定義する。 - 対戦条件設定
先手の条件(人間又はCPU)、後手の条件(人間又はCPU)、及びCPUのアルゴリズムを指定する。 - ゲーム終了判定
先手・後手ともに石を置ける場所がなければゲーム終了とする。 - 状況表示
現在の局面を表示する。ユーザーインターフェースにこだわるつもりはないので、以下のような単純なものとする。a b c d e f g h
—————–
1| 0 0 0 0 0 0 0 0 |
2| 0 0 0 0 0 0 0 0 |
3| 0 0 0 0 0 0 0 0 |
4| 0 0 0 1 2 0 0 0 |
5| 0 0 0 2 1 0 0 0 |
6| 0 0 0 0 0 0 0 0 |
7| 0 0 0 0 0 0 0 0 |
8| 0 0 0 0 0 0 0 0 |
—————–※・・・0が石なし、1が黒石、2が白石を示す。
- 打ち手決定
ここが一番のキモ。詳細別途。 - ログ記録・書き出し
一手ごとに以下をロギングする。
- 対局日時
- 手数
- 手番(先手/後手)
- 着手した手
- 候補手数
- 先手石数
- 後手石数
- 先手情報
- 後手情報
- 優勢プレイヤー
- 局面
こんな感じで進めていきます。はてなブログの使い方にも慣れないとですね。。。