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