オセロな日々・・・ メンバー リーダー・・佐藤 嶺樹 プログラマー・・・田島 佑輔 エキストラ1・・・中島 健護

Slides:



Advertisements
Similar presentations
C 言語講座第 5 回 構造体. 構造体とは ... 異なる型の値をまとめて新しい型とする 機能がある . つまり , 複数の変数を 1 つのまとまりにできる . 配列と違って同じ型でデータをまとめるのではな く違った型のデータをまとめられる .
Advertisements

Othello Let us cling together. メンバー 班長 杉本友宏 プログラマー 京谷貴平 アルゴリズム 佐野祐之 パワーポイント 菊澤遼平 発表 川本敏和.
プロジェクト演習Ⅱ インタラクティブゲーム制作
研究内容の紹介 電磁場の計算機シミュレーション 卒業研究 研究室の紹介
ループで実行する文が一つならこれでもOK
アルゴリズムとデータ構造 2012年6月27日
総評 野田久順.
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
アルゴリズムとプログラミング (Algorithms and Programming)
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
Lispとは ゲーム理論 minimaxアルゴリズム αβアルゴリズム ソースコードの一部
プログラミング論 I 関数の再帰呼び出し
プログラミング言語論 第6回 型 情報工学科 篠埜 功.
IT入門B2 (木曜日1限) 第一回 講義概要 2004年月9日30日.
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
2007/1/18 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井 英二郎
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
プログラミング言語論 プログラミング言語論 プログラミング言語論 演習1 解答と解説 演習1解答と解説 1 1.
単位 おねだり ☆オセロ おねだり隊☆D班.
ゲームプログラミング体験演習
①データ構造 ②アルゴリズム ③プログラム言語 ④マークアップ言語
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
ML 演習 第 7 回 新井淳也、中村宇佑、前田俊行 2011/05/31.
データ構造と アルゴリズム 第四回 知能情報学部 新田直也.
第7回 条件による繰り返し.
CGと形状モデリング 授業資料 長井 超慧(東京大学)
C 言語について 補足資料 資料および授業の情報は :
細かい粒度でコードの再利用を可能とするメソッド内メソッドのJava言語への導入
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
細かい粒度で コードの再利用を可能とする メソッド内メソッドと その効率の良い実装方法の提案
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
第4回 javaのプログラミング 04A2029           古賀慎也.
関数の定義.
プログラミング2 関数の再帰呼び出し
リーダー 亀山奈央 プレゼンター 橘貴志 アルゴリズム 古森愛美 プログラマー 中島宏基 パワーポイント 公文ゆい
第7回 条件による繰り返し.
オブジェクト指向 プログラミング 第七回 知能情報学部 新田直也.
東京大学人間環境学専攻 奥田・橋本研究室 修士1年 相良 光志
プログラミング言語論 第五回 理工学部 情報システム工学科 新田直也.
コードクローンの動作を比較するためのコードクローン周辺コードの解析
p101 team_project03 問題 B湖のひみつ contrwsim03 水位115cm以上の日数
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
プログラミング基礎a 第12回 Java言語による図形処理入門(3) アニメーション入門
プログラミング基礎a 第11回 Java言語による図形処理入門(3) アニメーション入門
プログラミングコンテストシステムへの 提出履歴データとその分析
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
アルゴリズムとデータ構造1 2006年7月11日
アルゴリズムとデータ構造 2011年6月23日
ゲームプログラミング体験演習 :30-14:15 九州産業大学 情報科学部 米元.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
数値解析ⅡーI ~オセロゲームのプログラム~
Othelloのプログラム 班長:佐々木 悠二 班員:石黒 護     井上 雄滋     齊藤 良裕     清水 裕亮.
隔週、楽しみにアクセスさせていただいております。
11.1 標準ライブラリ関数 11.2 関数呼び出しのオーバーヘッド 11.3 大域変数 11.4 プロトタイプ宣言 11.5 関数引数
アルゴリズムとデータ構造 2012年6月25日
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
オブジェクト指向 プログラミング 第四回 知能情報学部 新田直也.
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
プログラミング2 関数の再帰呼び出し
データ構造と アルゴリズム 第四回 知能情報学部 新田直也.
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
CGと形状モデリング 授業資料 1,2限: 大竹豊(東京大学) 3,4限: 俵 丈展(理化学研究所)
C#プログラミング実習 第1回.
情報処理Ⅱ 第3回 2004年10月19日(火).
第5回 配列.
プログラミング演習I 補講用課題
Presentation transcript:

オセロな日々・・・ メンバー リーダー・・佐藤 嶺樹 プログラマー・・・田島 佑輔 エキストラ1・・・中島 健護 リーダー・・佐藤 嶺樹 プログラマー・・・田島 佑輔 エキストラ1・・・中島 健護 エキストラ2・・・嶋村 剛士 エキストラ3・・・山谷 悠 メンバー 班長・・・佐藤嶺樹 プログラマー・・・田島 佑輔

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

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

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

みねき さんや しまむら 次々と倒れゆく仲間たち

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

“隅っこでの枚数補正プログラム”追加後(抜粋、一部省略) 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;} } ・・・省略 /*4隅の周辺は他がとれるならとらない*/ if (x == 1) { if (y == 0){huka2=100;} 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; maxY = y; }}