以前社内で開催されたプログラミングコンテストの第二回目が行われた。
今回も社員誰もが参加できるようにJavaを用いたもので行われた。
今回の課題は以下のようなものである。
オセロゲームのAIロジックを実装し、他の人のAIと戦って誰が一位になるかを競います。
相手と戦って勝つことが重要となります。
- 盤面は8x8
- 置ける場所がない場合はスキップ扱い
- 両者とも置ける場所がない場合はその時点でゲーム終了し、置かれている石の数で勝敗
- 勝者は勝ち点3
- 敗者は勝ち点0(減点なし)
- 引き分けは両者に勝ち点1
- 全AIの組み合わせで対戦する
- 同じ相手とは先攻と後攻の2回戦う
具体的にはOthelloAIインタフェースの以下の3つのメソッドを実装することになる。
- initメソッド
各ゲーム開始時に一度だけ呼ばれる初期化処理。
「自分の石(色)」が通知されます。
黒が先行で白が後攻です。 - getNameメソッド
AIの名前です。ランキングに載るのでかっこいいのをつけましょう。 - nextメソッド
現在の盤の情報が渡されるので、その情報などを使って、次にどの位置に石を置くのかの情報を返してください。
これがほぼAIのロジックになります。