数値解析ⅡーI ~オセロゲームのプログラム~ リーダー:溝口友基 プログラマー:白鳥翔 アリゴリズム作成:三木浩志 プレーヤー:高橋宏一 アルゴリズム・パワーポイント作成:加藤 尭 参考プログラム: H18 A‐グループ 項目 1、基本方針 2、基本アルゴリズム 3、点数配置を決める過程 4、結果 5、考察 1、基本方針 角を取ることを目指す 序盤取る枚数をなるべく少なくする 1番外の枠を取り、自分の色で統一する 2、基本アルゴリズム オセロボードの個々の場所にその場所の重要 度から点数を配置し、自分が置く場所と、そこに 置いた時にひっくり返る場所の点数の合計が高 い所を優先的に取っていくアルゴリズムとした。 このことで、ボード上の配置点数が同じ場所で も、ひっくり返る場所も考慮することができるた め、より状況に合わせた手が打てる。 点数配置 アルゴリズムの例 A: -50+(-10)×2=-70 B: -10+(-10)×2=-30 よってBを選択する 3、配置点数を決める過程 4×4の点数配置 自分の取る枚数が少なくなるようにする 4×4の1つ外側 ゲーム序盤に置かないようにする場所 「-50」の配置理由 Aの場合、ひっくり返る枚数は「-10」が4枚、打つ場 所の点数は「-10」より合計は-50。 Bの場合、ひっくり返る枚数は「-10」が1枚、打つ場 所の点数は「-50」より合計は-60。よって、Aを選ぶ。 1番外の枠 角に近いため、あまり置きたくない場所。た だし、状況に応じて置かなければならない。 「-170」の配置理由 Aの場合、ひっくり返るところの点数合計は150、打 つ場所の点数は「-170」より合計は-20 Bの場合、ひっくり返るところの点数合計は170、打 つ場所の点数は「-170」より合計は0 この「-20」、「0」はひっくり返る枚数の多くなる後半戦 では比較的小さくはない点数である。 角の斜めとなり できる限り置きたくない場所 角 置けるチャンスがきたらなるべくおきたい場所 ただし下図のように角を自分を自分が取った 跡に「A」のようなマスが残っているときになる べくそこを埋めるようなプログラムを補ってお いた。 4、結果 改良前のプログラム 対戦回数20回 プレーヤ-の勝利数12回 プレーヤー勝率60% 改良後のプログラム 対戦回数20回 プレーヤ-の勝利数9回 プレーヤー勝率45% 5、考察 僕たちのアルゴリズムは、最初から決めてる点数 配置に従って打つ手を決めさせるものなので、一般 化された打ち方となり、相手の動き、または変化に 対応しているアルゴリズムとは言いがたい。 よって相手の手によって点数配置を変えていくア ルゴリズムにすればさらに強くなると思われる。 しかし、そのようなプログラムを作るとなると、膨大 な手間と時間がかかるので今回着手するまでには 至らなかった。
© Copyright 2024 ExpyDoc