数値解析   大富豪 佐藤玲子 堀智恵実 高山明秀 西田直毅 春田常典.

Slides:



Advertisements
Similar presentations
数値解析シラバス C言語環境と数値解析の概要(1 回) C言語環境と数値解析の概要(1 回) 方程式の根(1回) 方程式の根(1回) 連立一次方程式(2回) 連立一次方程式(2回) 補間と近似(2回) 補間と近似(2回) 数値積分(1回) 数値積分(1回) 中間試験(1回) 中間試験(1回) 常微分方程式(1回)
Advertisements

坊さんと妖怪(仮) 企画書. ・概要 タイトル:「坊さんと妖怪( 仮)」 ジャンル:妖怪退治カードゲ ーム プレイ人数:2人~5人 キャッチコピー:「日本のファンタジー」 修行僧の妖怪退治をイメージしたゲーム。 他の修行僧と妖怪の山から下山するために 協力(時には手柄の横取り?)しながら ふもとを目指します。
単貧民と偶然手番感度 電気通信大学 西野順二 ○ 西野哲朗. 研究の背景 多人数 [sturvant2000 〜 ] ポーカー(不完全情報 [bowling2007] The University of Alberta GAMES Group 多人数不完全情報ゲームはまだ未開拓の困難対象である §1.
リーダー 辻元健照 プログラム 北川泰士 アルゴリズム 水野雄太 ユーザー 松田邦久 プレゼン 戸所風士
ハノイの塔 1年9組 馬部 由美絵.
UECコンピュータ大貧民大会 参加後の考察
数当てゲーム (「誤り訂正符号」に関連した話題)
Problem A: ねこかわいがり♪ 問題作成: 山本 解法作成: 山本・高橋 解説: 山本.
ある最適化問題 スポーツスケジューリング スポーツスケジューリングとは? 生成方法 プログラムと問題点 2001年2月7日(水)
アルゴリズムとデータ構造 2013年6月18日
アルゴリズムとデータ構造1 2005年7月8日
独自ルールを用いた “ハノイの塔”の拡張 立命館高校 3年9組 馬部 由美絵.
アルゴリズムとデータ構造 2010年7月5日
On the Enumeration of Colored Trees
「生き残り競争」から抜け出したい! -ゲーム理論入門- 東京国際大学オープンキャンパス (2014年8月23日) 経済学部体験授業
4枚カード問題.
疫学概論 コウホート生命表 Lesson 7. 生命表 §A. コゥホート生命表 S.Harano,MD,PhD,MPH.
プロセッシング入門3 初歩のプログラミング.
An Algorithm for Enumerating Maximal Matchings of a Graph
情報知能学科「アルゴリズムとデータ構造」
プログラミング論 I 関数の再帰呼び出し
アルゴリズムとデータ構造 2012年6月14日
A班 ランダム選択に一言加えたら・・・ 成田幸弘 橋本剛 嶌村都.
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
ヒープソートの復習.
UCB+ 法を用いた Big Two AI の研究
アルゴリズムとデータ構造 2011年6月14日
Selfish routing 川原 純.
データ構造とアルゴリズム論 第7章 探索のアルゴリズム
データ構造とプログラミング技法 (第10回) ー文字列照合(KMP法、BM法)ー.
思考力・表現力を高める 学習の流れ 本時のねらい 「数学的活動を通して思考力・表現力を高める」 ↓
アルゴリズムとデータ構造 2012年6月28日
アルゴリズムとデータ構造 2011年6月27日
アルゴリズムとデータ構造1 2006年7月4日
ソートアルゴリズムの種類 選択ソート (selection sort) バブルソート (bubble sort)
プログラミング2 関数の再帰呼び出し
「手塚キャラクター発想支援カード」の使い方
BLACK JACKの作成 ブラックジャックのルール 概要 勝敗の判定 開発中の問題点 Aの扱いについて 配り直し(DEAL) 工夫した点
アルゴリズムとデータ構造 第3章 ヒープ 6月10日分
実践プログラミング入門2 配列を使ってゲームを作ろう 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
Cプログラミング演習 第10回 二分探索木.
博士たちの愛する確率 徳山 豪 東北大学 Probability that professors love
アルゴリズムとデータ構造 2010年7月26日
情報とコンピュータ 静岡大学工学部 安藤和敏
プログラミング 4 木構造とヒープ.
2011年度 情報科学&情報科学演習 ~ 定番プログラム(2) ~.
1~15までの数字の中から、 1個の数字を選び、覚えて下さい。
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
アルゴリズムとプログラミング (Algorithms and Programming)
アルゴリズムとデータ構造 --- 理論編 --- 山本 真基
Leader;平尾 仲達 Programmer;古川 智啓 Player , Algorithmer; 長畑 弘樹,吉村 達也,河本 拓哉
第Ⅱ部 協力ゲームの理論 第7章 提携形ゲームと配分 2008/07/01(火) ゲーム理論合宿 M1 藤井敬士.
近畿大学 理工学部 情報学科 情報論理工学部研究室 潘小月
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
アルゴリズムとデータ構造 2012年7月2日
数値解析ⅡーI ~オセロゲームのプログラム~
アルゴリズムとデータ構造1 2008年7月24日
アルゴリズムとデータ構造 2013年7月1日
ヒープソートの復習 第12回.
情報工学概論 (アルゴリズムとデータ構造)
アルゴリズムとデータ構造1 2009年7月2日
アルゴリズムとデータ構造 2013年7月2日
アルゴリズムとデータ構造 --- 理論編 --- 山本 真基
数値解析Ⅱ ~五目並べのプログラミング~ C班.
1~15までの数字の中から、 1個の数字を選び、覚えて下さい。
栗原正純 UEC Tokyo 電気通信大学 情報通信工学科 2007/5/2(修正2008/08/21)
プログラミング2 関数の再帰呼び出し
数値解析Ⅱ ーCheckers Game プログラムー
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
アルゴリズム ~すべてのプログラムの基礎~.
Presentation transcript:

数値解析   大富豪 佐藤玲子 堀智恵実 高山明秀 西田直毅 春田常典

インターネットから大富豪のプログラ「dohin」 を入手し、土台とした。その後ゲームのプログラムの解析を行い、ゲーム上でコンピュータの出す手に変更を加えた。

Dohin

大富豪のルール 大富豪では、合計52枚のトランプカードを使用する。 親の出したカードと同じ枚数で、自分よりひとつ前に出した人のカードよりも、大きい数のカードを出す。カードが出せない時はパスをする。メンバー全員が出せない時は、最後にカードを出した人が親になる。カードを出す、「場」に全部カードを出し切り、最初にあがると「大富豪」というランクが与えられる。さらに、2番目にあがったプレーヤーには「富豪」、3番目にあがったプレーヤーには「貧民」、そして最下位となった4番目のプレーヤーには「大貧民」というランクが与えられる。

改良前 コンピュータのカードの出し方 ☆コンピュータが親のとき 親の一枚目が0以上の時、一番 左を出す。二枚目、三枚目と、 If(PlayerNo==PPLY) {if(hands[PlayerNo][0]>=0) {wn=(int)hands[PlayerNo][0]/SUITS; wc=1;for(i=1;i<MAX_HAND;i++){ if(hands[PlayerNo][i]>=0) {n=(int)hands[PlayerNo][i]/SUITS; if(n==wn){wc++;}}} putCard(PlayerNo,wn,wc);} ☆コンピュータが親のとき 親の一枚目が0以上の時、一番 左を出す。二枚目、三枚目と、 一枚目と同じ数字が続くときは、 同時にそれも出す。 if(hands[PlayerNo][i]>=0) {n=(int)hands[PlayerNo][i]/SUITS; if(n>PNUM){ if(n==wn){wc++;} else{wn=n;wc=1;} if(wc==PCNT) {putCard(PlayerNo,wn,wc); changeturn();return;}}}} messages[PlayerNo]= "Pass";}changeturn();} ☆コンピュータが親ではないとき 場の数字よりも大きく、場の枚数と同じ枚数のカードが出せるとき出す。 場の数字よりも小さい数しかない ときや、場の数字よりも大きいカー が場の枚数に足りないときは、パス する。

場のカード 改良前 6 6 コンピュータの手持ちのカード 7 7 7 10 J

改良後 6 6 場 コンピュータ 場の枚数と同じ枚数 あるカードがない! 7 7 7 10 Q J

改良後 6 6 場 コンピュータ 8 8 7 7 7

変更のためのアルゴリズム public void computers(int PlayerNo){int i,c,n,wn=(-1),wc=1,cn=(-1);if(PlayerNo==PPLY){ if(hands[PlayerNo][0]>=0){wn=(int)hands[PlayerNo][0]/SUITS;wc=1;for(i=1;i<MAX_HAND;i++){if(hands[PlayerNo][i]>=0){ n=(int)hands[PlayerNo][i]/SUITS;if(n==wn){wc++;}}}putCard(PlayerNo,wn,wc);}}else{for(i=0;i<MAX_HAND;i++){ if(hands[PlayerNo][i]>=0)n=(int)hands[PlayerNo][i]/SUITS; if(n>PNUM){if(n==wn){wc++; }else{wn=n; wc=1;}if(wc==PCNT && (int)hands[PlayerNo][i+1]/SUITS!=n){putCard(PlayerNo,wn,wc); changeturn();return;} if(wc==PCNT && (int)hands[PlayerNo][i+1]/SUITS==n){ cn=1; wc=1; } }}} if(cn==1){for(i=0;i<MAX_HAND;i++){if(hands[PlayerNo][i]>=){n=(int)hands[PlayerNo][i]/SUITS;if(n>PNUM){if(n==wn){ wc++;}else{ wn=n;wc=1; }if(wc==PCNT){putCard(PlayerNo,wn,wc);changeturn();return;}}}}}messages[PlayerNo]="Pass"; }changeturn();}

fin