Leader;平尾 仲達 Programmer;古川 智啓 Player , Algorithmer; 長畑 弘樹,吉村 達也,河本 拓哉

Slides:



Advertisements
Similar presentations
坊さんと妖怪(仮) 企画書. ・概要 タイトル:「坊さんと妖怪( 仮)」 ジャンル:妖怪退治カードゲ ーム プレイ人数:2人~5人 キャッチコピー:「日本のファンタジー」 修行僧の妖怪退治をイメージしたゲーム。 他の修行僧と妖怪の山から下山するために 協力(時には手柄の横取り?)しながら ふもとを目指します。
Advertisements

単貧民と偶然手番感度 電気通信大学 西野順二 ○ 西野哲朗. 研究の背景 多人数 [sturvant2000 〜 ] ポーカー(不完全情報 [bowling2007] The University of Alberta GAMES Group 多人数不完全情報ゲームはまだ未開拓の困難対象である §1.
リーダー 辻元健照 プログラム 北川泰士 アルゴリズム 水野雄太 ユーザー 松田邦久 プレゼン 戸所風士
F5 を押すか、または [スライド ショー] > [最初から] をクリックして、コースを開始してください。
到着時刻と燃料消費量を同時に最適化する船速・航路計画
SPSS操作入門 よい卒業研究をめざして 橋本明浩.
ハノイの塔 1年9組 馬部 由美絵.
ゲーム理論・ゲーム理論Ⅰ(第2回) 第2章 戦略形ゲームの基礎
UECコンピュータ大貧民大会 参加後の考察
数当てゲーム (「誤り訂正符号」に関連した話題)
Problem A: ねこかわいがり♪ 問題作成: 山本 解法作成: 山本・高橋 解説: 山本.
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
経営戦略は 本当に必要か? 経営戦略班.
懐かしき日の思ひで Aチーム リーダー 福島則行 吉武優一郎 水谷聡 石松孝之 近藤悠介
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
第6回 Flashによるゲームの作成 04A2029           古賀慎也.
ゲーム理論・ゲーム理論Ⅰ (第6回) 第4章 戦略形ゲームの応用
JavaによるCAI学習ソフトウェアの開発
整数計画法を用いた スリザーリンクの解法 杉村 由花 (東京大学)
高等部の知的障害児が、 購入する物の代金を一人で 財布から出して支払うための支援
電子黒板を活用した 小学校外国語活動研修 (入門編)
A班 ランダム選択に一言加えたら・・・ 成田幸弘 橋本剛 嶌村都.
モンテカルロ法によるミニ囲碁 増井拓視 情報理論工学研究所.
情報科学1(G1) 2016年度.
オブジェクト指向を使った設計: ソフトウェア開発プロセス
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
おすすめPOPの分析 越智 大介.
UCB+ 法を用いた Big Two AI の研究
JAVAでつくるオセロ 伊東飛鳥、宮島雄一 長畑弘樹、ソギ原直人.
データ構造とアルゴリズム論 第7章 探索のアルゴリズム
第7回 条件による繰り返し.
シミュレーション論 Ⅱ 第15回 まとめ.
薬物乱用と健康 あなたはNOとはっきりいえますか・・・  .
携帯ゲーム機の進化 情報モラル研修 ~Nintendo3DSを例に~
思考力・表現力を高める 学習の流れ 本時のねらい 「数学的活動を通して思考力・表現力を高める」 ↓
MPIを用いた並列処理 ~GAによるTSPの解法~
生命情報学入門 配列のつなぎ合わせと再編成
プログラミング入門 電卓を作ろう・パートIV!!.
Snake Game.
第7回 条件による繰り返し.
東京大学人間環境学専攻 奥田・橋本研究室 修士1年 相良 光志
4人版リバーシYoninの解析 情報論理研究室 藤本 侑花
BLACK JACKの作成 ブラックジャックのルール 概要 勝敗の判定 開発中の問題点 Aの扱いについて 配り直し(DEAL) 工夫した点
 情報の授業 アルゴリズムとプログラム(1) Go.Ota.
データ構造とアルゴリズム論 第6章 整列(ソート)のアルゴリズム
携帯ゲーム機の進化 情報モラル研修 ~Nintendo3DSを例に~
VBで始めるプログラミング こんにちは、世界。 /28 NARC.
第5回放送授業.
アルゴリズムとプログラミング (Algorithms and Programming)
Data Clustering: A Review
プログラミング 4 整列アルゴリズム.
任意数の制約階層化 2007/10/31 上田研究室 M2 西村 光弘.
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
数値解析   大富豪 佐藤玲子 堀智恵実 高山明秀 西田直毅 春田常典.
21  ~ぜったい負けたくない君へ~ 8班.
超短期トレードで生き残るためのテクニックと考え方
アルゴリズムとプログラミング (Algorithms and Programming)
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
第Ⅱ部 協力ゲームの理論 第7章 提携形ゲームと配分 2008/07/01(火) ゲーム理論合宿 M1 藤井敬士.
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
数値解析ⅡーI ~オセロゲームのプログラム~
Othelloのプログラム 班長:佐々木 悠二 班員:石黒 護     井上 雄滋     齊藤 良裕     清水 裕亮.
アルゴリズムとプログラミング (Algorithms and Programming)
F班 メンバー 班長 雨堤 智宏 アルゴリズム解析 角田 泰彬 竹林 秀高 ppt作成 清水 貴史
アルゴリズム入門 (Ver /10/07) ・フローチャートとプログラムの基本構造 ・リスト ・合計の計算
モグラたたき.
プレイ風景 PARANOIA: Mondatory BONUS FUN Card Game プレイの準備 プレイの流れ チームリーダ死亡!
アルゴリズム ~すべてのプログラムの基礎~.
プログラミング論 バイナリーサーチ 1.
ファーストイヤー・セミナーⅡ 第10回 if文による選択処理(2).
Presentation transcript:

Leader;平尾 仲達 Programmer;古川 智啓 Player , Algorithmer; 長畑 弘樹,吉村 達也,河本 拓哉 1

作成方針 プログラムの作成する人と,アルゴリズムを考える人にわかれて作業を進めた。 メンバーの中でパソコンを使い慣れている古川にプログラムの作成をメインで進めてもらった。 他のメンバーで,アルゴリズムを考えた。

アルゴリズムの方針 基本ルールの確認 追加ルールの決定 人がプレイする時の思考方法の確認 半アルゴリズム化 アルゴリズムの作成 半Algorithmを利用して,フローチャートを作成 プログラムを作成 3

大富豪 基本ルール 大富豪とは,トランプゲームの一種である。 カードは52(~54枚)をプレイヤーに均等にすべて配り分ける。 大富豪 基本ルール 大富豪とは,トランプゲームの一種である。 カードは52(~54枚)をプレイヤーに均等にすべて配り分ける。 カードの強弱は弱い順に3,4,5,…,K,A,2である。 最初の人は,好きなカードを場に出すことができる。出し方は,同じ数字を複数枚出すことができる。1枚の時をシングル,2枚の時をペア,3枚の時をトリプルと呼ぶこともある。 基本的に時計回りで順番が回り,自分の番に場に出ているカードより強い,同じ枚数のカードを出す。出せるカードがないときや,出したくないときは,パスをする。 最後に出した人以外全員パスをしたら,場が流れ,最後に出した人が場にカードを出す。 手札を先に全部出した人の勝ちになる。全員が上がるまで,ゲームを続け,順位を決める。 4

大富豪 採用追加ルール 4人プレイ 革命 八流し(八切り) イレブンバック(バック) 大富豪 採用追加ルール 4人プレイ 革命 4枚同じ数を同時に出したときから,3から2までの強さが逆転する。 一度革命された後に(3が強いときに)革命することを,革命返しということもある。 八流し(八切り) 8を出したら,場のカードが流れる。 イレブンバック(バック) 11を出したときにその場が流れるまで革命状態になる。 5

人の思考 何もない場に出す時 何か出ている場に出す時 革命 8流し イレブンバック 手札が多いとき 手札が少ないとき 弱いカードから出す。シングル(ペア,トリプルになってないカード)の手札から出す。 手札が少ないとき 他の人に上がられないように,かつ自分が上がれるように出す。手札により様々に出し方が変化する。 何か出ている場に出す時 出せるカード中で弱いカードから使う。強いカードは出せる場面があっても出さない。ペアやトリプル,4枚はなるべく崩さない。 勝てると思ったときに強いカードを使う。弱いカードをなるべく残さない。 革命 革命対策で最弱カードを手札に残しておく。 革命時,強弱を入れ替えて思考する。 8流し 最後のほうに場を流すために使う。 イレブンバック 手札に最弱カードを残しておいて,Jackが出てきたときに使う。 6

半アルゴリズム化(1) Algorithmを考える上で,3~10までの数値はそのままの数値として扱う。J→11,Q→12,K→13,A→14,2→15として扱う。 手札の種類で,序盤(3種類以下),中盤(4種類),終盤(5種類以上)というように場合分けをする。 7

半アルゴリズム化(2) 何もない場への出し方 序盤と中盤(4種類以上) 最弱カードを除いたカードから出す。ペアよりシングルの手札から出す。 シングル>ペア>トリプルの順に出しやすくするために,ペアのときはカードの値+4.5,トリプルのときはカードの値+7.75の修正値を与えて,出すカードの順位を評価させる。 終盤(3種類以下) 2と8が同時に手札にあれば,8,2の順に出す。 それ以外の時は,弱いカードから出す。 8

半アルゴリズム化(3) 場にシングルカードが出ている時 場にペアやトリプルが出ている時 序盤,中盤は出すことができるペアやトリプル以外の弱いカードから出す。Q以上のトリプルは崩して出す。最強カードは出さない。 終盤はペアを崩してでも積極的に出す。 場にペアやトリプルが出ている時 序盤,中盤は最強カード以外のカードで出すことができる弱いカードから出す。 終盤は積極的に出す。 9

場;Empty(なにも出ていない) 何種類カードを持っている? 最弱カード(3or4)を残す 8を所持? 8をだす 弱いものを出す アルゴリズム化 場;Empty(なにも出ていない)  何種類カードを持っている? 3種類 以下 4種類以上 最弱カード(3or4)を残す 8を所持? yes no 8をだす 弱いものを出す ダブル→カードの値+4.5 トリプル→カードの値+7.75 4枚は3,4,5とK,A,2の枚数を比較 2を持っている? yes no 値の小さいものを出す 2を出す 弱いものから出す

場;ダブル 4種類以上所持 場;カードが3? 考慮カード;手札に3枚? 手札;3を所持? 考慮カード;手札に2枚ちょうど? アルゴリズム化 場;ダブル 4種類以上所持 場;カードが3? Yes No Yes No 考慮カード;手札に3枚? 手札;3を所持? 考慮カード;手札に2枚ちょうど? Yes No Yes No Yes 考慮カード=場のカード+2 出す 考慮カード=場のカード+1 考慮カード⇒考慮カード+1 No 考慮カード;手札に2枚ちょうど? 出す No Yes 考慮カード;12以上? No 考慮カード;最強の手持ちカード? Yes PASS

場:Empty 非革命 4種類以上所持 i=1 c[i] (カードの枚数) 1 2 3 4 cs[i]=100 cs[i]=i Flowchart 場:Empty 非革命 4種類以上所持 i=1 c[i] (カードの枚数) 1 2 3 4 cs[i]=100 cs[i]=i cs[i]=i+4.5 cs[i]=i+7.75 i++ i=>14

場:Empty 非革命 4種類以上所持 i 6<=i<=12 3<=i<=5 i=1,2 i=13 4 Flowchart 場:Empty 非革命 4種類以上所持 4 i 6<=i<=12 3<=i<=5 i=1,2 i=13 3・c[3]+2・c[4]+1・c[5]  >3・c[2]+2・c[1]+1・c[13] 3・c[3]+2・c[4]+1・c[5]  >3・c[2]+2・c[1]+1・c[13]-(1+i)・c[i] yes no yes no cs[i]=-20 cs[i]=50 cs[i]=-20 cs[i]=50 3・c[3]+2・c[4]+1・c[5]  >3・c[2]+2・c[1] 3・c[3]+2・c[4]+1・c[5]-(6-i)・c[i]  >3・c[2]+2・c[1]+1・c[13] yes no yes no cs[i]=-20 cs[i]=-20 cs[i]=50 cs[i]=50 16

場:Empty 非革命 4種類以上所持 i=1 c[i] (カードの枚数) 1 2 3 4 no cs[i]=100 cs[i]=i Flowchart 場:Empty 非革命 4種類以上所持 i=1 c[i] (カードの枚数) 1 2 3 4 no cs[i]=100 cs[i]=i cs[i]=i+4.5 cs[i]=i+7.75 i++ i=>14 yes cs[1]=cs[1]+13,cs[2]=cs[2]+13,cs[3]=cs[3]+20,cs[8]=cs[8]+20 no cs[4]=cs[4] c[3]=0 MINcs[i]を出す yes cs[4]=cs[4]+20

プログラム構造 CPUクラスの プログラムを変更 MainPanelクラス CardDeckクラス Cardクラス Fieldクラス Programming プログラム構造 MainPanelクラス メイン画面の制御。結果の表示などを行う。 CPUクラスの プログラムを変更 CardDeckクラス Playerのインスタンスにカード1~52を配る。 Cardクラス 配られた整数表現のカードに柄とナンバーを与える。 Fieldクラス 場の状態を管理する。 カードの強弱の判断も行う。 Playerクラス プレイヤーのコンストラクタ。 プレイヤーの各定義。 Userクラス 人間が扱うPlayerについての記述 CPUクラス CPUが扱うPlayerについての記述。思考

プログラム変更 Playerクラス CPUクラス Programming 持っているカードの種類の数を表す変数kindと出しやすさの指標である配列cs[ ]を定義 CPUクラス 元のプログラム 変更後のプログラム 場合分けの仕方  革命の場合     場にカードがない場合     場にカードがある場合  革命でない場合 カードの出し方  ルールに従って所持しているカードのうち弱いものから順に出す。 場合分けの仕方  元のプログラム中のおのおのの場にカードがある・ない場合の中にCPが所持しているカードの種類に応じたプログラムを追加。 カードの出し方  アルゴリズムに従って行動するようにプログラム。

結果 改造前の対戦結果 改造後の対戦結果 25回中 期待値・・・1.16位 25回 期待値・・・1.88位 1位・・・23回(92%) 2位・・・1回(4%) 4位・・・1回(4%) 期待値・・・1.16位 改造後の対戦結果 25回 1位・・・12回(48%) 2位・・・6回(24%) 3位・・・5回(20%) 4位・・・2回(8%) 期待値・・・1.88位

考察 元のプログラムより強くなった。 元のプログラムから引き継いだバグは解決できなかった。 停止するバグが多い。 できればもっと,人の思考に近付けたアルゴリズムを考えたい。

感想 今回完成した大富豪に当初考えていたアルゴリズムすべてを組み込むことは出来ませんでした。半アルゴリズム化の時点ではより人の考えに近いカードの切り方を検討していたのですが実際それをアルゴリズム化してプログラムすることは非常に難しく、私たちが普段何気なく行う判断がいかに複雑かを知る良い機会となりました。

Thanks for your listening Member of Group Tatsuya Yoshimura Takuya Komoto Hiroki Nagahata Tomohiro Furukawa Chutatsu Hirao Thanks for your listening Staff Roll 大富豪 Reference 2008 F-Daifugo Produced by 2009-A group Algorithmer Tatsuya Yoshimura Takuya Komoto Hiroki Nagahata PowerPoint made by Tomohiro Furukawa Chutatsu Hirao Programmer Tomohiro Furukawa Leader Chutatsu Hirao The End