Othello G班 山崎 木下 山本 上手 §1 オセロの表現方法 1:盤面の表現 2:石が置けるかどうかの判定 3:パスについて 4:勝ち負けの判定 1:盤面の表現 (1)8×8の盤面上で行、列それぞれに 左上から0~7の番号をつける。 列 の 番 号 0 1 2 3 4 5 0 0 1 2 3 4 5 (2)マス目の位置n1は n1=行の番号×8+列の番号 で表現する。(0≦n1≦63) (3)どのマス目をクリックしたかは、その 座標をマス目の幅で割り、マス目の行と 列を計算し、判定する。 行 1 6 7 6 7 8 9 の 2 番 3 号 4 5 6 55 7 61 62 63 2:石が置けるかどうかの判定 (1)まず石がそこに置けるかどうかを、そのマス目とその 周囲8方向のマス目をチェックする。 (2)置いた石の隣に、置いた石と違う色の石がある限り 調査を進めていき、置いた石と同じ色の石があれば、 石を置けるとする。 (3)違う色の石を挟んだら、石を同じ色にしながら置いた 場所に戻ってくる。 3:パスについて (1)プレイヤー(黒)の番では、石の置ける置けないにかか わらず『PASSボタン』が押された時に、相手(白)に順番を ゆずる。順番は黒を1、白を2として 次の順番=3-現在の順番 という式を用いて黒と白を交互にまわして行く。 (2)コンピュータ(白)の番では、石を置ける位置を調べ、 置ける場所が見つからなかった時、相手(黒)に順番を ゆずる。 4:勝ち負けの判定 (1)ゲーム中は黒の石と白の石の数を 常に数えて、表示するようにする。 (2)黒も白も石を置けなくなった時、 ゲームを終了させ、そのときの石の数に よって勝ち負けを判定する。 §2 コンピューターの戦略 1:最弱Version 2:普通Version 1:最弱Version (1)石を置くマス目を、乱数を用いた計算によって決定し、 §1の2:で述べたように石を置けるかどうかの判定を行う。 (2)石を置くことが出来ればそこに石を置き、プレイヤー (黒)に順番をゆずる。 (3)置くことが出来なければ再び(1)に戻る。 300回以上繰り返しても置ける場所が見つからない場合、 プレイヤーに順番をゆずる。 2:普通Version その1 (1)先程の乱数頼みの最弱の戦略をベース にして、新たに戦略を付け加えていく。 (2)白の第一手は『斜め取り』が最も有利 であり、『並び取り』が最も不利である。 したがってコンピュータの第一手目 (第二手目)に斜め取りをするという条件 を付け加える。 3:普通Version その2 (3)次に基本的な戦略として角(右図の 赤い部分)を取ることは重要であり、辺 (黄色の部分)も重要である。また、角の 周りの部分(青い部分)は出来るだけ取ら ないほうがよい。 したがってまず角に石を置けるかどうかを 判定し、置けるなら置くようにする。同時に 数箇所の角に置ける場合はランダムに置く 角を決める。 0 0 1 2 3 4 5 6 7 1 2 3 4 5 6 7 4:普通Version その3 (5)角に置けない場合は、角の場合と同様に辺に置けるかどう かを判定し、置けるなら置くようにする。同時に数箇所の辺に 置ける場合は、ランダムに置く辺を決める。 (6)角にも辺にも置けない場合は、角でも辺でも角の周りでも ない部分(白い部分)に置くようにする。同時に数箇所に置ける 場合は、ランダムに置く場所を決める。 普通Version その4 (7)角でも辺でも角の周りでもない部分にも置けない場合は、 角の周りの部分(青い部分)に置く。同時に数箇所に置ける 場合は、ランダムに置く場所を決める。 END
© Copyright 2024 ExpyDoc