数値解析Ⅱ 「オセロプログラムの作成」 <班員> C班 A 班長 B プレイヤー C アルゴリズム D プログラマー E 広報 塩澤 拓哉 笹川 拓真 板村 直樹 木村 和寛 楠田 勇輝 目次 はじめに ポイント制について 改良点 まとめ はじめに 先生からもらったプログラムで、実際に自分たちでオセロをやって みて、自分たちが一番強いと思うものと、一番弱いと思うものについ て比較してみた。そこから、ヒントを得てみることにした。 <一番強いもの> 平成18年度のA班 オセロ盤のそれぞれのマスに点数をつけて、点数の高いところから優先的に石をおく プログラムになっている。もし、同じ点数のところがでてきた場合はランダムにおいて いる。その結果、勝つために有利な場所をとれる必要な手順をとっている。 <一番弱いもの> 平成17年のG班 角を取ったり、端を取ったりするために必要なプログラムになってはいるのですが、角 の周りだけ残ったときに、その状況に応じた判断が出来ず、ランダムに石を置いてし まうので、終盤の肝心なところで大きく逆転されたりしてしまい、負けてしまう。 以上2つのプログラムを比較した結果、いろいろな場面に対応できる プログラムにすることで、より強いオセロプログラムを作っていくことが できるとわかる。私たちはこの平成18年のA班のポイント制を取り入 れて、改良を加えることで、より一層強いものを作ることにした。 まず、平成18年度A班のポイント制をチェックした。 ポイント制について① 平成18年度のA班が使用したポイント制 【 初期ポイント表 】 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 40 15 30 × × 30 15 40 40 15 30 × × 30 15 40 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 ポイント制について② 【 角(50ptの所)に自分の石が置けている時 】 例) 左上の隅に自分の石があるとする 50 5 40 +40 40 5 5 15 +40 +40 40 15 30 15 ● 40 15 30 30 × ●自分の石 ●相手の石 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 40 15 30 × × 30 15 40 40 15 30 × × 30 15 40 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 ポイント制について③ 【 ●○○○○○●←ここに置きたい時 】 [↑角(50pt)] 50 5 5 +40 5 40 ● 15 40 ● 15 40 ● 15 40 ● 15 5 ● 50 ● ●自分の石 ●相手の石 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 5 40 15 30 × × 30 15 40 40 15 30 × × 30 15 40 5 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 ポイント制について④ 【 端で、できるだけあいての隣に置きたくない時 】 50 5 5 5 40 15 40 -15 15 15 40 ● 40 -15 15 5 5 50 5 ●自分の石 ●相手の石 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 40 15 30 × × 30 15 40 40 15 30 × × 30 15 40 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 ポイント制について⑤ 【 ○_○←このような間ができた時 】 50 5 5 5 40 15 40 15 40 ● 15 40 +40 15 5 5 ● 5 50 ●自分の石 ●相手の石 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 40 15 30 × × 30 15 40 40 15 30 × × 30 15 40 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 ポイント制について⑥ 【 ●__●←このような間ができた時 】 50 5 5 5 40 ● 15 40 -30 15 40 -30 15 ●自分の石 ●相手の石 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 15 30 × × 30 15 40 40 ● 5 15 5 40 40 15 30 × × 30 15 40 50 5 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 ポイント制について⑦ 【 ○__○←このような間ができた時 】 50 5 5 5 40 ● 15 40 -20 15 40 -20 15 ●自分の石 ●相手の石 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 15 30 × × 30 15 40 40 ● 5 15 5 40 40 15 30 × × 30 15 40 50 5 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 ポイント制について⑧ 【 __○●←このような形ができた時 】 [↑角(50pt)] 50 5 5 +35 5 40 ● 15 40 ● 15 40 (●) 15 15 40 ●自分の石 ●相手の石 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 15 30 × × 30 15 40 5 5 40 40 15 30 × × 30 15 40 50 5 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 ポイント制について⑨ 【 __○○●←このような形ができた時 】 [↑角(50pt)] 50 5 5 +35 5 40 ● 15 40 ● 15 40 ● 40 15 5 50 ●自分の石 ●相手の石 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 5 40 15 30 × × 30 15 40 40 15 30 × × 30 15 40 5 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 15 ポイント制について⑩ 【 __○○○●←このような形ができた時 】 [↑角(50pt)] 50 5 5 +35 5 40 ● 15 40 ● 15 40 ● 15 40 ● 5 15 50 ●自分の石 ●相手の石 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 5 40 15 30 × × 30 15 40 40 15 30 × × 30 15 40 5 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 ポイント制について⑪ 【 _●●●○_←このような形ができた時 】 [↑角(50pt)] 50 5 40 40 40 40 5 ● ● ● ● +25 5 ●自分の石 ●相手の石 15 15 15 15 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 15 30 × × 30 15 40 5 5 40 40 15 30 × × 30 15 40 50 5 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 ポイント制について⑫ 【 _ _○●●●_ _ ←序盤において…このような形ができた時 】 40 15 +14 ●自分の石 ●相手の石 30 ● 30 ● 30 ● 50 5 40 40 40 40 5 50 30 ● 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 15 40 15 30 × × 30 15 40 40 15 30 × × 30 15 40 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 40 ポイント制について⑬ 【 _ _○○●●_ _ ←序盤において…このような形ができた時 】 40 15 +14 ●自分の石 ●相手の石 30 ● 30 ● 30 ● 50 5 40 40 40 40 5 50 30 ● 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 15 40 15 30 × × 30 15 40 40 15 30 × × 30 15 40 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 40 ポイント制のまとめ 以上の13点が平成18年度A班の設定 したポイント制でした。このプログラム自体、 オセロにあまり慣れていない僕たちにとっ てはとても、強いプログラムであると感じま した。しかし、何度もオセロをしていくうちに このプログラムは、まだまだ詰めが甘い部 分があることに気づきました。 そこで、僕たちが考える改良点を示して いこうと思います。 改良点① 【 _●●○_←このような形ができた時 】 [↑角(50pt)] 50 5 5 ● 40 ● 40 ● 40 +25 5 40 15 5 50 ●自分の石 ●相手の石 15 15 15 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 5 40 15 30 × × 30 15 40 40 15 30 × × 30 15 40 5 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 改良点② 【 __○●●●←このような形ができた時 】 [↑角(50pt)] 50 5 5 +35 5 40 ● 15 40 ● 15 40 ● 15 40 ● 15 5 (●) 5 5 50 ●自分の石 ●相手の石 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 40 15 30 × × 30 15 40 40 15 30 × × 30 15 40 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 改良点③ 【 _●●●○○←このような形ができた時 】 40 15 ● 30 ● 30 ● 30 ● 30 ● 15 40 +35 ●自分の石 ●相手の石 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 40 15 30 30 30 30 15 40 40 15 30 × × 30 15 40 40 15 30 × × 30 15 40 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 改良点④ 【 __●_○←このような形ができた時 】 40 ●自分の石 ●相手の石 15 30 ● 30 -30 30 ● 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 15 40 15 30 30 30 30 15 40 40 15 30 × × 30 15 40 40 40 15 30 × × 30 15 40 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 30 改良点⑤ 【 ___●_○←このような形ができた時 】 40 ●自分の石 ●相手の石 15 30 30 ● 30 -30 30 ● 50 5 40 40 40 40 5 50 5 5 15 15 15 15 5 5 15 40 15 30 30 30 30 15 40 40 15 30 × × 30 15 40 40 40 15 30 × × 30 15 40 40 15 30 30 30 30 15 40 5 5 15 15 15 15 5 5 50 5 40 40 40 40 5 50 対戦成績 VS 平成18年A班のオセロ 19戦 16勝2敗1分 VS 改良したオセロ 19戦 11勝8敗 まとめ 以上、この2点を追加することで、このオセロのプログラムは、 より一層強いものとなったと思いますが、僕たちのような素人 が考えたことなので、果たしてこのすべてが正しいものなのか は正直なところわかりません。それに加え、ポイント制では先 の手を読むことができず、その場その場の最もポイントの高い 所におくので、最後の詰めのところで逆転されることがあり、ポ イント制の限界を感じたのは事実です。 きっとまだまだ強いオセロのプログラムは存在するはずであ り、もっと時間をかけることができれば、さらなる強さを持つオ セロのプログラムを作ることが出来たかと思います。ミニマック ス法をとりいれるのもひとつの方法でしょう。 また、今回のことを通して、僕たちのオセロの強さもきっとあ がったことでしょう。
© Copyright 2024 ExpyDoc