110 likes | 246 Views
麻雀ゲーム. 和島研究室 ソ 18011 小林巧人. http://www.aomori-u.ac.jp/staff/wajima/lab/GR_2009/kobayashi /. 目次. 目標 開発環境 設計 達成 com の思考 改善案. 目標. 人間と com の対戦ができる麻雀の制作 一連の麻雀の流れを全て実装する 鳴き あがり 点数計算 局の進行 細かいルールなどの実装 com の思考ルーチンの実装. 開発環境. 使用ツール: Visual Studio 2005 言語: Visual C++
E N D
麻雀ゲーム 和島研究室 ソ18011 小林巧人 http://www.aomori-u.ac.jp/staff/wajima/lab/GR_2009/kobayashi/
目次 • 目標 • 開発環境 • 設計 • 達成 • comの思考 • 改善案
目標 • 人間とcomの対戦ができる麻雀の制作 • 一連の麻雀の流れを全て実装する • 鳴き • あがり • 点数計算 • 局の進行 • 細かいルールなどの実装 • comの思考ルーチンの実装
開発環境 • 使用ツール:Visual Studio 2005 • 言語:Visual C++ • グラフィック作成:ペイント、Tinuous 3.30
設計 • 麻雀を進める上で行われる作業 • 判定系 • 鳴き、あがりができるか • 実行系 • 鳴き、リーチ、あがりの実行 • 表示系 • 牌、点数、点棒の表示
達成 • 麻雀のルールの実装 • 鳴き、あがり、点数計算・・・ • マウスによる操作 • ボタンクリックによる鳴き・あがり • クリックで切る牌を選ぶ • com思考の実装 • 牌をツモって切る • あがる
comの思考 • 麻雀であがるには • あがりには基本的に、面子×4、対子×1が必要 • 上記のあがり形の他にも七対子、国士無双という役があるが、ここでは説明は省略する 対子 面子
comの思考 • 原則 • 鳴かない • 手牌のうちから見つかる限りの面子、最大1つの対子を除き、残った牌の中からランダムに切る • テンパイしたら即リーチをかける • あがりが可能なときはツモ、ロンに関わらずあがる
compの思考 これは残したい • 面子、1つの対子を候補から除く • 残したい牌を切ってしまうこともある 切らない牌 この中から切る
改善案 • 切る牌に優先順位をつける • 他の牌と並んでいない牌 • 塔子(面子になる前の牌の並び) • 対子 • 面子 優先度4 優先度3 優先度2 優先度1
改善案 • ルールの拡張 • 現在実装していないローカルルールの採用 • ルールの切り替え • 表示の改善 • comがした動作を分かりやすく表示 • あがりなどがあったときに他のプレイヤーの手牌を見られるようにする