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つ以上ある場合は、左上から順に選 ぶ作業で一番最初にある場所を採用する。 (ランダムやその他の決め方にしなかった理由は後 ほど記述) 以上の条件に合う場所があればそこに置く 特徴 前頁のようにランダムにしなかったのは、オセロは 前半できるだけかためて配置すると都合がいいこ とが何度か試行するうちに分かったためである。 角の周りの場所の優先順位が一番低くなっている ので、角を取るには工夫が必要である。 強さ 前頁に記した特徴により単純なアルゴリズムの割 には強い。当初目標にしていた中級者レベルには 達したと思う。 型にはまれば脅威的な強さになるが、弱点をつか れると途端に弱くなる傾向にある。 感想 簡単なプログラムを目指したが、結局は程々に難 しいものとなり色々な人に助けをもらわなければ 完成には至らなかった。 もう少し条件を細かくして得点形式で置く場所を決 めるようにしたらもう少し強くなっていたかもしれな い。 (作:齊藤)
© Copyright 2024 ExpyDoc