Othelloのプログラム

Othelloのプログラム
班長:佐々木 悠二
班員:石黒 護
井上 雄滋
齊藤 良裕
清水 裕亮
製作上の理念




なるべく簡単なプログラム
→プログラミングのスキルはあまりないため
アルゴリズムもシンプルなもので
→凝ってしまうとプログラミングでつまずく
しかし、手強く中級者向けを目指す
→強すぎても弱すぎても楽しめない
低スペックでも動く
→誰でも楽しめる
プログラミング言語の選択
選ぶポイント
 プログラミングの能力は低いので簡単なもの
 既に学習済みのもの
→以上の理由よりC言語で行うことにした。
CPUの思考についてのアルゴリズム(1)


まず第一における場所を確認する
次に、オセロ盤に予め決められている優先順位の
高い場所を選択する。
(何回か人間同士で対戦することで、どこが優位か
を決めた)
オセロ盤の優先順位
1
7
2
4
4
2
7
1
7
7
6
5
5
6
7
7
2
6
3
5
5
3
6
2
4
5
5
× ×
5
5
4
4
5
5
× ×
5
5
4
2
6
3
5
5
3
6
6
7
7
6
5
5
6
7
7
1
7
2
4
4
2
7
1
(※数字が少な
い程優先順位
は高い)
CPUの思考についてのアルゴリズム(2)
51枚以上の時
→取れる枚数が少ない所を選択
 50枚以下の時
→取れる枚数が多い所を選択
(前半はあまり取らずに後半は多く取るように設定。
具体的な条件は、何度か試した後に一番適当と
思われたものを採用)

CPUの思考についてのアルゴリズム(3)


同じ条件が2つ以上ある場合は、左上から順に選
ぶ作業で一番最初にある場所を採用する。
(ランダムやその他の決め方にしなかった理由は後
ほど記述)
以上の条件に合う場所があればそこに置く
特徴

前頁のようにランダムにしなかったのは、オセロは
前半できるだけかためて配置すると都合がいいこ
とが何度か試行するうちに分かったためである。

角の周りの場所の優先順位が一番低くなっている
ので、角を取るには工夫が必要である。
強さ

前頁に記した特徴により単純なアルゴリズムの割
には強い。当初目標にしていた中級者レベルには
達したと思う。

型にはまれば脅威的な強さになるが、弱点をつか
れると途端に弱くなる傾向にある。
感想

簡単なプログラムを目指したが、結局は程々に難
しいものとなり色々な人に助けをもらわなければ
完成には至らなかった。

もう少し条件を細かくして得点形式で置く場所を決
めるようにしたらもう少し強くなっていたかもしれな
い。
(作:齊藤)