Excelでオセロ:見た目変わりませんが・・・
今後の機能アップなどに備えて、戦績を記録できるようにしました。
戦績を記録することで、元に戻すや再現が可能になります。(未実装ですが・・・)
- 戦績シートを追加します。
- 追加したシートの名前を戦績シートにします
- 戦績シートを追加したので、盤面のシートにも名前(盤面)を付けます
- プログラム中でセル指定している部分にシート名を追記します。
- 初期化処理に戦績シートの初期化を追加します
- 戦績シートには、打ち手の色、打った場所、反転した場所を記録します
- セル位置をセル文字(”A1″、”A2″等)に変換する関数を作ります。(セル文字 function)
- セル位置をもらい、戦績シートの空いてる行の3列目以降に反転したセル位置を格納するSubを作ります。(反転履歴セット Sub)
- セル文字をもらい、反転履歴をセットした行の1列目に打ち手の色、2列目に打った場所をセットするSubを作ります。(打ち手履歴セット Sub)
- メインのSubの打ち手をセットした後で、打ち手履歴セット Subを呼び出します。
- セルチェックFunction の反転後、反転履歴セット Subを呼び出します。
履歴は出来ましたが、使ってないので動きは同じです。
遊んだあとで履歴を確認して反省くらいはできるのではないかともいます。初期化したら消えるので、残したいときは名前を付けて保存しましょう。
簡単なので、再生機能作りました。
- 盤面シートをコピーする。
- マクロとオプションボタンは全部消去する
- コマンドボタンを「再生開始」にする
- 再生シートの盤面を初期化する
- 戦績シートを2行目から順番に読込み以下の処理を行う
- 色により、置く駒の文字を設定
- 打ち手セルの場所に駒を書き込む
- 反転セルも順番に書き込む
- 書き込む際に1秒づつ待つ。
- 判定方法を変更
- ここまで作って翌日テストしたら、再生した結果と実際のゲームの結果が違ってました。反転有無のチェックで問題がありました。(いままでの仕様では問題なしでしたが、若干無駄な動作があったようです。)