プログラマーの登竜門、国民的対戦ゲーム「オセロ」公開
2018/06/10
こんにちは。えいたです。
「生涯プログラマー」の方を尊敬します。
目標:定年を迎えても、オセロを制作できる技術力が欲しい
IT技術者として最低限のマナー、年齢は関係なし。
- ITの仕事をしているから、IT技術者?
- ソースコードのコピー&ペーストが仕事、プログラマー?
極端な例ですが、現実の一端です。自分でモノづくりをせず、技術力は衰退。
プライベートの時間も勉強せず、家族サービスの名を借りた逃げの姿勢!
しかし、業務経験は長いので重宝されます。
「いつまでも、その仕事があると思うな!」
不測の事態に備えて、アラサー後半がオセロを制作しました。
外部設計:石と背景
小学生の頃、オセロで遊んだ記憶が甦る・・・
両面が白黒の石と緑の背景
相手の石を挟めば、石を裏返します。
どこでもOKならば、誰でも四隅に置くから。
オセロのルールを知っていれば、制作は簡単?
白黒の石・背景(8×8のマス目)があれば、外部設計は終了です。
「オセロ」で遊ぶ
「オセロ」について
ルール
相手の石を裏返して、個数を競うゲームです。
対戦モードは「CPU・対人」の2種類を実装しました。
- 先手(黒石):あなた
- 後手(白石):CPU・対人
相手の石が挟める箇所をクリックして下さい。
挟める箇所がない場合は、自動的にパスの判断をします。
ゲーム終了判定は「全マス目が埋まる or 双方が石を挟めない」です。
石の個数を競い、多い方が勝利
画面構成
開始前画面、対戦相手をクリックします。
マス目:石の配置箇所を決定します。
RESETボタン:開始前画面に戻ります。
操作方法
石の配置 → マス目をクリックして下さい。
内部設計:CPUのロジック
一番苦労した部分は、CPUのロジックです。
僕は年齢を重ねて、思考が変化しました。
四隅は石で挟めない → 自分の石が確定
- 小学生時代:絶対に四隅を渡すな
- 現在:四隅を渡しても、勝利優先
四隅をとれば、有利ですが・・・100%の確率で勝利できない。
その部分をAIで再現するには、先読みの導入が必要!
CPUロジックの構築にあたり、小学生時代の思考を詰め込みました。
ロジックが複雑化 → 処理時間が長い → ユーザがイライラ
先読みの導入は見送り、処理を軽くしています。
さいごに
プログラムの面白さは、上司の命令では経験できません。
外部設計 → 内部設計 → プログラム → テスト → 完成
社会人は簡単なモノづくりでも、1人で実行する機会は限られるから。
よって、プライベートの時間を使用しました。
結果:「現在の僕 vs 小学生の僕」が実現
四隅を2つ渡して、勝利!
小学生相手に大人げない?
仕方ないなぁ・・・あなたがCPUの相手をお願いします。
敗北したら、小学生の僕を褒めて下さい。
他のゲームも遊んで下さいね。