オセロな日々・・・

Preview:

DESCRIPTION

オセロな日々・・・. メンバー リーダー・・佐藤 嶺樹 プログラマー・・・田島 佑輔 エキストラ1・・・中島 健護 エキストラ2・・・嶋村 剛士 エキストラ3・・・山谷 悠. 我々のオセロ作成は 慣れないプログラミング言語 Java との戦いとなった・・・. 中島は 常に的確な指示でリーダーを リードした. プログラマー田島は 連日の徹夜作業に追われた・・・. しまむら. みねき. さんや. 次々と倒れゆく仲間たち. プログラミングの道のり - PowerPoint PPT Presentation

Citation preview

オセロな日々・・・

メンバーリーダー・・佐藤 嶺樹

プログラマー・・・田島 佑輔エキストラ1・・・中島 健護エキストラ2・・・嶋村 剛士エキストラ3・・・山谷 悠

我々のオセロ作成は慣れないプログラミング言語Java との戦いとなった・・・

中島は常に的確な指示でリーダーをリードした

プログラマー田島は連日の徹夜作業に追われた・・・

次々と倒れゆく仲間たち

みねきさんや

しまむら

プログラミングの道のり

 今回は java による、オセロのプログラミングに挑戦した。ただし、 java に関してはほぼ、未知の領域なので、どこかからオセロのソースコードを取ってきて、それを改造することにした。と言う訳で、今回は牧瀬 芳太郎さんのオセロのページ( http://homepage3.nifty.com/ymakise/java/OthelloApplet/ )からソースコードを頂いた。改造した思考ルーチンは ManyReversePlayerである。

最小・最大プログラム(抜粋、一部省略)int minCount = 60, maxCount = -1, maxX = 0, maxY = 0;

int Empty = board.countPieces(OthelloBoard.EMPTY);for (int y = 0; y < 8; y++)

for (int x = 0; x < 8; x++) int count = board.countReversiblePieces(x, y, myColor);if (Empty > 10)

if (0 < count)if (count < minCount)

minCount = count; maxX = x; maxY = y;if (Empty <= 10)

      if (count > maxCount) maxCount = count;

maxX = x; maxY = y;

“ 隅っこでの枚数補正プログラム”追加後(抜粋、一部省略)

int minCount = 1000, maxCount = -1, huka1 = 0, huka2 = 0,           maxX = 0, maxY = 0; int Empty = board.countPieces(OthelloBoard.EMPTY); for (int y = 0; y < 8; y++) for (int x = 0; x < 8; x++) int count = board.countReversiblePieces(x, y, myColor);

・・・次ページに続く

/*4 隅を優先してとる */if (x == 0) {

if (y == 0){huka1=-100;}}if (x == 7) {

if (y == 0){huka1=-100;}}

・・・省略 /*4 隅の周辺は他がとれるならとらない */

if (x == 1) {if (y == 0){huka2=100;}

}if (x == 0) {

if (y == 1){huka2=100;}}

             ・・・省略・・・次ページに続く

/* コマが 55 個以上置かれるまでその回で出来るだけ少なくとる */if (Empty > 10) {   if (0 < count) {     if (count + huka1 + huka2 <= minCount) {

   minCount = count + huka1 + huka2; maxX = x; maxY = y;}}}

huka1 = 0;huka2 = 0;

/* コマが 55 個以上置かれたときその回で出来るだけ多くとる */if (Empty <= 10) {

if (count > maxCount) { maxCount = count;

maxX = x; maxY = y; }}

Recommended