Upload
amos-duran
View
32
Download
2
Embed Size (px)
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; }}