これはKAZOONの不定期日記(チラシの裏)の2010年版です。下に行くほど新しいです。 2010/1/10 Wiiの謎 ずっと謎だったことの理由が分かった気がする。 Wiiの「はい」が右で「いいえ」が左という気違いじみたインターフェースは, もしかしてファミコンのコントローラーのAボタンとBボタンの配置が原因だったのか。 もし本当にこれが原因だとしたら,Wiiの設計者は気違いと言わざるを得ない。 コントローラーと動作の対応と,画面と動作の対応の区別ができない変人だ。 たとえキーボードでエンターキーが右でエスケープキーが左に配置されていたとしても, (普通のqwertyキーボードではこの配置である。) 「はい」は左で「いいえ」が右にあるのがコンピュータ界では普通なのである。 エンターキー(かつてはリターンキーだったが)はずっと右に配置されてきたし, 「はい」ボタンはずっと左に配置されてきたのである。 いくらWiiがライトユーザー向けとはいえあまりに酷い選択である。 最近は「これはWiiだから右」というのはある程度慣れてきてはいるが……。 コントローラーの配置違いに比べて画面の配置違いが, いかに大きな常識へのチャレンジであるか,理解しているのだろうか……。 2010/1/25 属性書き換え型スキルパターン スキルパターンの変更をパネルの属性書き換えに置き換えるのは実はいい方法なのではないだろうか。 キャラクターは一つのパネルアレーといくつかのスキルパターンを持つ。 旧来の「スキルパターンAに変更する」に変わって「(パネルアレーに)スキルパターンAを転写する」とする。 ロールについては,同時に状態異常「Roll」を与え,この状態異常が付いているパネルは属性を上書きできない。 修復可能となるが,パターンの変更のみで無力化されるよりはましだろう。 パネルアレーがスキルパターンより長い(開拓など)場合はパネルアレーの右側のパネルの属性は書き変わらない。 スキルパターンがパネルアレーより長い(災厄の剣など)場合はスキルパターンの右側の属性は無視される。 スキルパターンには変更なしを意味する無属性を選ぶこともできる。(これはオプション) 例えば,パネルアレー「火火R火火火」にスキルパターン「剣剣無白」を転写すると「剣火R火白火」となる。 (ここで白パネルはMeteoraでいう黒パネルに相当する) スキルパターンの転写によって維持コストが不正になると維持は解除される。 そのとき,使用済み/未使用状態は変わらない。 また,スキルパターンの転写によって状態異常は変化しない。 この方法は旧来のスキルパターンの変更とほぼ等しい戦術特性を持ちながら, パネルが受ける状態異常の効果を強力にする効果がある。 「最も健常なスキルパターン」も基本的には無意味な表現となる。 また,実体がパネルアレーにとって代わられるため,スキルパターンはプランと同様の精神的な概念となる。 そこで,途心の観点でプランと同一視するのが不自然でなくなる。 例えば「スキルパターンを一つ持つことはプランを10文字分消費することに等しい」とする。 つまり高知性時の「無駄なスキルパターン」を作らずに済むルールを比較的自然に導入できる。 なお,試合開始時は疾風剣などの存在を考慮し,一番上のスキルパターン(イニシャルパターン)が転写されているものとする。 イニシャルパターンに含まれる無属性に対応するパネルや,イニシャルパターンを所持していない場合, そのパネルまたは全てのパネルは白属性となる。 パネルアレーに含まれるパネルと同様にスキルパターンは神経反射に等しい属性を持つものとする。 上記の長さの不整合はスキルによって異常が生じることによってのみ起こる。 2010/1/29 属性書き換え型スキルパターンのつづき 災厄の剣の効果を受けると実際にパネルを失います。 マーガレットのリミ剣と同様に,失われた部分は詰められます。 パネルアレー「火火B剣」が災厄の剣の効果を受けると「火剣」になります。 これにスキルパターン「水風地」を転写すると「水風」になります。 ……というつもりでしたが,スキルパターン「火火剣」を転写して「火火」になるのはちょっとまずいですかねえ。 喪失を考えなくとも「転写後に状態異常のない風パネルが最も多くなるスキルパターンを転写」のようなプランの需要はできますねえ。 練り直しと祝福のコンボも考えられますが,許容されるコンボでしょうか。 まあ練り直しはそれ自体があれだからどうでもいいか。 2010/2/8 はじめてのPython といっても入門記事ではなく,初めて使っての感想である。 私は普段Ruby使いであるので,Rubyとの違いを中心に述べていく。 まず,Pythonの特徴として挙げられるインデントブロックはさほど気にならない。 endがないことが最初はやや奇妙に見えるが,すぐに慣れる。 スペースとタブを誤って混用するなどした場合に正常に動かなくなるバグが最初は気づきにくいかもしれない。 Rubyでしばしば省略されるかっこや,Rubyのdoやthenに相当する:が省略不可能であるため, 最初はRubyの感覚で書いて怒られてしまい,Pythonはやや硬い印象を受ける。 文が省略不可能な箇所が多く,pass文を必要とするケースが出てくるのもこれに含まれる。 Rubyはそのインスタンス変数へのアクセサすらその実態がメソッドであるという仕様であるが, Pythonはメソッドだけではなく,呼び出し可能型でないインスタンス変数も属性になりうる。 むしろPythonにおけるメソッドは,クラスが呼び出し可能型であるインスタンス変数,という感じである。 そのため,レシーバーのみによって決まる属性がメソッドなのかインスタンス変数なのか気にしなくてはならない。 これは大した問題ではないが,初めて使う段になってやや気になったものである。 Pythonの呼び出し可能型は,呼び出しを示すかっこを付けないだけでオブジェクトとして扱えるため, 呼び出し可能オブジェクトとして頻繁に関数が定義され,関数定義のネストもごく普通に行われる。 これらの点はRubyのProcよりも軽い印象を受ける。 インスタンスメソッドでselfを明示する必要がある点は最初は気になるが,そういうものだと思えば大したことではない。 むしろPythonの仕様を考えればselfを明示する必要がある方が自然である。 Rubyではイテレータはブロック付きメソッドで回すのが普通だが, PythonはジェネレータがRubyのEnumerable::Enumeratorオブジェクトのようなオブジェクトを返し, それをfor文で回してイテレータとするのが普通のようだ。 Rubyのイテレータでないブロック付きメソッド呼び出しは実引数にlambdaを使うのが普通だろうか。 (RubyのEnumerable::Enumeratorはイテレータっぽいメソッドにブロックを渡さないときに生成されるという慣習ができた, 1.9の新仕様によって日向に出てきたクラスである。array.map.with_index{}等が主な便利機能である。 (1.8.7ではmapはブロックを渡さないときの挙動が別に定義されているため,このようには書けない。each.with_indexなら書ける) なんかオブジェクトができて,それをブロック付きメソッド呼び出しで実際に回すのとfor文で実際に回すのが似ている。 また,Enumerable::Enumerator#nextを使って回すことができる点も似ている) キーワード引数はデフォルト値付き引数の一部を変えたいときに便利だし, 引数の順番が関係なくなるので覚えることが減るメリットがある。いい仕組みだと思う。 最後に,公式のリファレンスマニュアルがすごく読みにくい。 Rubyについては何度も読み返しているということはあるが,それを差し引いて考えてもわかりやすいとは言い難い。 特に原語が日本語ではないため,日本語マニュアルはあくまで翻訳物に過ぎず, とんでも訳にこそなってはいないものの,決して読みやすい日本語で書かれているわけではないことが大きい。 TeraPadがPythonに対応していないのと,Rubyの/の解釈の甘さと折り返し機能の貧弱さに愛想が尽きてきたので, そろそろ新しいテキストエディタに乗り換えたい。 2010/2/9 ルールの厳密な適用 私は回路チャットなどで厳密とよく言われる。 人よりも厳密にものを言いたがる傾向があることは自他ともに認めるところであるが, もちろんありとあらゆる事象に対して厳密でありたいと考えているわけではない。 また,逆に自覚して積極的に厳密にすべきと考えるものもあり,その一つがゲームのルールの適用である。 無論あいまいさを残すルールを持つゲームを否定するわけではないし,あいまいな部分はあいまいでよい。 厳密にできる部分は可能な限り厳密にすべきだという考えである。 そのために掛けるべきと考える努力量は人が見積もるそれよりも多いかもしれない。 ディスクオリアのルールの厳密化に深くかかわった理由は,処理系の作成のためだけではないのだ。 また,ディスクオリアやTCGWにおいては,微妙なルールの差が実際に勝敗に関わるケースも少なくない。 例えイベントで現実に発生した戦闘で大した問題ではなかったとしても,キャラ構築に影響を与えることはままある。 (絡み蔦と真空波の処理順の悩ましさなどはその典型と言えよう) 例え勝敗に影響がなかったとしても,この手の処理の誤りを訂正しないのは, そこまで深く思考したという事実を否定・拒絶されたような印象さえ受け, そのため,かのイベントにおいて多少なりとも怒りの感情を覚えたことは否定できない。 この辺りは私の個人的な思想であり,全ての場面で「そうあるべき真理」であると考えているわけではないことは申し添えておく。 もちろんそこまで思考が及ばず思い通りの挙動を示さないキャラになってしまうことも多々あるが, どこが足りなかったのかを残す意味でも,厳密にできる部分は厳密にわかりやすく記述されるべきと考えるのである。 ハンドレッドの結果表記法はあれはあれでそういうものであるので,間違った記述とは意を大きく異にする。 また,エタンやブタンを「処理系」と称し,頑なに「シミュレータ」と呼ばないのには理由がある。 ディスクオリアのルールは厳密であり,それを100%忠実に処理しているというニュアンスを大事にしているのだ。 シミュレーションと言うと,非常に複雑な事象を,何らかのより簡易なモデルに基づいて模擬実験・検証を行うことだ。 つまり,実際の現象とは異なる部分があるという意味を含む。 一方で,エタンは(バグを除けば)マーガレットのルールを完全に周到して,本来のそれと全く等しい結果を導き出すプログラムである。 マーガレットの戦闘処理において,本当の処理法ではないモデルを用いているわけではない。 エミュレータという言い方であれば,この問題は生じないが,エミュレートする「本物」が何か定かでない。手処理だろうか。 どちらかといえばマーガレットの戦闘処理の処理系の一つという位置づけがしっくりくると思う。 ポケモンバトルシミュレータについては「本物」が何かは明確で,もし完璧に再現できているならエミュレータと呼ぶべきだろう。 細部に違いがあり,それを重視するのであればシミュレータと呼ぶのは適切である。 マーガレットでは概念上の存在であるルールがまずあって,それに対して処理系を実装するという形であるが, ポケモンでは実機のプログラムが(物理シミュレータに対する自然に相当する)「本物」であり, それをエミュレータないしシミュレータで模倣するという形になる。 この辺りがエミュレータと呼ぶのがさほど適切とは思われない理由である。 (シミュレータは上記のとおりに全く適当でない呼び方である) なお,共進化などによる強剣師の探索などは一種のシミュレーションといえよう。 現実世界の進化をモデル化し,淘汰条件をマーガレット剣師の強さに置き換えて実験を行うものだからだ。 処理系と称しているのは純粋に戦闘処理の部分のみである。 エタンそのものとエタンを使ったシミュレーションは別のものである。 2010/2/12 CraftLaunch3 使用を開始して少し経つが,フリーズはないようだ。よかったよかった。 しかしAPIリファレンスは本当にコード閲覧以外使えないな。 window.command_ShellExecue()の定義の改変等でちょっと動かしている。 今のバージョンはドラッグアンドドロップでコマンドを登録できるみたいだが, 2ではできないような動作をさせたい場合はソースコードを直接読む程度のバイタリティは必要となる。 今のところはPythonのコードの一部だけで,C++のコードは読んでないけど,とりあえずそれでも満足に動いている。 そのあたりはまあ救いかなあ。 2010/2/24 不夜麻雀の最高記録を考える ネタばれ全開で行きます。 まず最重要スペカは幽香の「花鳥風月、嘯風弄月」です。 花鳥風月状態になるのはどうでもいいのですが,全員の飜数が2乗になる点が重要です。 次に重要なのが幽香の「幻想郷の開花」と「フラワーシューティング」です。 「幻想郷の開花」によって捨牌全てがドラ表示牌となり, 「フラワーシューティング」によって捨牌が全て同一の牌になるため, とてつもないドラ数を稼ぐことができます。 なお「花鳥風月、嘯風弄月」の2乗効果は複合しません。 そして,ドラ地獄をサポートするスペカが穣子の豊符「オヲトシハーベスター」です。 これによりドラが倍加してから2乗されます。 一人が複数回使用しても重複しませんが,複数人が使用するとその分複合します。 なので幽香一人穣子三人……といきたいところですが, さすがに穣子で同じ牌を18枚集めるのは無理があるので,自キャラは別のキャラにします。 手牌を全て同一牌にして和了することのできるスペカはいくつかあります。 まずはフランのQED「495年の波紋」です。 これはこの類のスペカの中では最強の部類に入ります。 現在のランキングトップのキャラがフランであることからもそれが伺えます。 が,次のミスティの鷹符「イルスタードダイブ」の方が理想的ではあります。 イルスタードダイブは東しかツモれない上に時間はかかりますが, 同じくミスティのスペカである猛毒「毒蛾の暗闇演舞」が強力です。 フラワーシューティングでは捨牌のみしか操作できないので, 毒蛾の暗闇演舞を使わない場合の本来のドラ表示牌がどこまで望めるのか不明であるためです。 他には輝夜の新難題「金閣寺の一枚天井」,藍の式神「十二神将の宴」, 妖夢の修羅剣「現世妄執」などがありますが, 上記のとおりミスティがベストと考えられます。 ドラ数が最も重要なので,自キャラは南家。海底であがります。 暗槓が4回あるので,このとき河には65枚の牌があります。 これに加え,本来のドラ・槓ドラ・裏ドラが10枚。 バグによるドラの数え間違いがなければドラ1350となります。 (他の役のためにドラ表示牌を一枚減らすと倍加を含めてドラが72も減るので割に合いません なので理想的には南家でなければならず,紫を入れるわけにもいかないので八連荘はなしです) また,次の役が成立します。 黒一色・字一色・四暗刻単騎・四槓子 立直・一発・門前清自摸和・海底摸月・東・東・東・東 ただし,不夜麻雀では同じ役牌は複合せず,何故か対々和と混一色が複合するので, 一般役は次のようになります。 立直・一発・門前清自摸和・海底摸月・東・対々和・混一色 よって,総飜数は(75+1350*2*2)^2=29975625(本来成立すべき役なら29953729)飜となります。 なお,フランを使う場合は九萬なら黒一色・字一色の代わりに百万石・清老頭, 一索か九索なら紅孔雀・清老頭が成立し,ともに東・混一色の代わりに清一色が成立します。 字牌なら發なら黒一色の代わりに緑一色,中なら黒一色の代わりに紅孔雀が成立します。 客風でも役牌が成立しないだけなので,十分な威力となり,このあたりが狙い目にります。 牌の種類による役満は以上のように二個が限界で,一般役は本来成立すべき役であれば 連風が8飜,老頭牌が6飜,圏風または門風が4飜,客風が0飜 となり,不夜麻雀では対々和の2飜に加え, 老頭牌が6飜,連風が5飜,圏風または門風が4飜,客風が3飜 となります。 とはいえこれらはドラ表示牌が一つ増減することに比べれば,(役満二つの成否を含めて)微々たる差です。 現実的に海底の直前でフラワーシューティングを使ってもらう確率がかなり低いうえ, ミスティを使う場合はドラ表示牌が北にならなければならず,実行するのはかなり難しいでしょう。 また,幽香は「花鳥風月、嘯風弄月」を使う時点で必ず聴牌しているので,先にあがられてしまう危険も大きいです。 微々たる飜数の増大を狙っての立直も四家立直の危険をはらみます。 現実性をさらに無視し,秋符「秋の空と乙女の心」で10枚のドラ表示牌が一致する可能性があるとすれば, プレイヤーはフランで,海底牌をツモってからQEDを発動し, QEDによる捨牌もドラ表示牌になるとして,次のようになります。 百万石(または紅孔雀)・清老頭・四暗刻単騎・四槓子 ダブル立直・門前清自摸和・嶺上開花・対々和・清一色 ドラ1440×2×2 34070569飜160符 2010/4/6 更新記録 久しぶりの更新はFirefox拡張リンク集の更新です。 主なリンク先を Add-ons for Firefox に変更しています。 2010/4/24 更新記録 マルチスレッドに対応したエテンを公開しました。 一応旧版へのリンクをのこしておきます。 新版は旧版に比べてバグを孕んでいる可能性が高いので気づいたことがあれば連絡願います。 2010/4/26 更新記録 エテンの地味なバグを修正した。 これは場合によって重大な欠陥をもたらすバグであるため,旧版も更新した。 2010/4/29 更新記録 rireki.txtを年ごとに分割した。 古い分はリンクは張らないが,直接URLを書き換えて参照できる。 2010/5/10 禁書20巻 ちょっとあまりにも頭が悪いのでほかの人も書いてるだろうけどつっこむ。 まず,対戦車地雷の話。 あまりにも敏感すぎる。かぶと虫が乗っただけで起爆とか何考えてるんだ? どう考えてもそんな敏感では誤爆だらけだし,そもそも戦車が接近しただけでその振動で爆発するだろう。 地雷というのは,目標を攻撃するときと撤去するとき以外は爆発してはならないものだというのが理解できないのだろうか。 こんなくそ敏感な地雷を素人が手で撤去?毎年,もとい毎日何人死んでるんですか? これを投げようというはまづらだが,ここまで敏感だと投げるときの加速度で起爆するだろ。 また,対戦車地雷ってのは装甲の薄い車体下部から攻撃するから有効なのだ。 高射砲の装甲がどんなものなのかは知らないが, 基本的に地雷で正面から殴ったところでろくなダメージが与えられるはずがない。 いくらはまづらが素人だとは言え,その程度のことには気づいてもいいと思うのだが。 次に,無人機の話。 前提として,禁書の学園都市の外の世界の科学技術は,現実世界のそれと同程度であると考えられる。 この日本に住む人で,無人機が実線登用されていると聞いて非現実的な話だと考える人間はいるだろうか。 無人偵察機が実用化された話はもはや記憶に新しいとは言えないほど昔の話だし,無人攻撃機も既に実用化されている。 外の科学技術が現実のそれより劣っているにしろ,それなりに科学技術の恩恵は受けている。 (おそらく,われわれが彼の世界を訪れたとして,そこまで生活に不便を感じることはない程度には) そんな中,20~30年の技術の進歩を演繹して,それが現実味を持って感じられないとは,少々ロシア人を馬鹿にしすぎではあるまいか。 大体,技術的には世界でダントツで,経済的にも豊かだが,人口は極めて少ないというのが学園都市だ。 常識的に考えて学園都市の部隊が無人機を中心に構成されていないということがありえるだろうか? 今までの学園都市の描写から考えると,人がいるのはせいぜい旗艦機程度で,ほとんどが無人機で構成されていなければおかしい。 そういった事情を差し引いても,半身冷凍などのような奇妙な技術より遠隔操作型の無人機を使うほうが効果的であるといえよう。 (反応速度などは技術力の差からいって問題にならないはずだし,あったとしてもマスターサイドのVR技術で解決できるだろう) 細かいところはいろいろあるにはあるが,とりあえず目立って気になったこの二点についてつっこんだ。 今までは笑って許せないではなかったが,最近はもう許容しがたい無知・浅慮が多すぎる。 ついでに10ページで読む気をなくしたオブジェクトなんちゃらの話をしよう。 早々に読む気をなくしたのは,レーションをわざとまずく作っているというのを読んだところだ。 兵士にとって食事は数少ない娯楽のひとつであり,レーションがまずいだけで士気ががた落ちだ, だから軍にとって,おいしいレーションを作ることは重要な課題のひとつであると言う話があるが, 万人向けの味など存在しないからわざとまずく作るという作者の話と,どちらが説得力があるだろうか。 さらについでにいつか言おうと思ってたことを書く。 禁書系で一番面白いのは漫画のレールガンです。アニメは単体としては楽しめるけど,劣化といえます。 アニメは見たけど漫画は読んでない回路民はちょっと気にしてくれるとうれしいな。 2010/5/31 place lqr 特定の次元でplace関数と同等に動くようにしたのを眺めてたら, 比較的簡単な方法で一般の次元に適用できることが分かったので実装した。 nchoosek()が動く範囲内の任意の次元のシステムで動く。 一応MATLABでもOctaveでも動くような書き方にしてある。 なお,引数の次元数のチェックは面倒なのでしてない。 function [ F ] = my_place( A, B, P ) %MY_PLACE 与えられたシステム(A, B)に対して与えられた極Pに配置するフィードバックゲイン行列Fを返す。 [n, n] = size(A); M = zeros(n); N = zeros(1, n); M(:,1) = B; N(1) = sum(P) - trace(A); for d = 2:n for i = 1:n for x = nchoosek([1:(i-1),(i+1):n],d-1).' mat = [B([i;x]), A([i;x],x)]; M(i,d) = M(i,d) + det(mat); end end for y = nchoosek(1:n,d).' p = P(y); a = A(y, y); N(d) = N(d) + prod(p) - det(a); end end F = N/M; end MとNの一列目を特別扱いしているのは,nchoosek()とforが望ましい動きを示さないため。 (第二成分が0となるが,このとき第一成分を無視してxに空行列を代入して一回だけループを回す, という挙動を示すのならば,特別扱いしなくていい。 が,まあnchoosek()はより一般的な関数であるため,仕方がないといえば仕方がない。 forも何れかの方向の次元数が0の行列を回す場合は一度も回らない方が望ましいことが多いと思う。 今回はそうではないのだが(_nC_0=1というのは,この場合に一回ループするということだ)) あんまりforは使いたくないし,アルゴリズム的には並列化可能なのだが, MATLABでどう書いていいのか分からないのでとりあえずこのままで。 こういう書き方があるというのがあれば教えていただければ幸いだ。 おまけでlqrも書いてみたので載せる。 function [ K ] = my_lqr( A, B, Q, R ) %LQR 最適フィードバックゲイン行列K=-Fを返す。 H = [A -B/R*B.'; -Q -A.']; [V, D] = eig(H); [n, n] = size(A); [m, m] = size(H); W = V(:, real(diag(D))<0); P = W((n+1):m, :)/W(1:n, :); K = R\B.'*P; end Riccati方程式の正定解は有本-Potterの方法で求めている。 2010/7/31 E2 3791610 久しぶりの更新はE2の記録更新です。 多少のミスを残すものの道中2M越えを達成し,まずまずの記録。 道中がかなり疲れたので,今回のボス戦は得点よりスピードを重視しました。 中ボス戦は今回の核となる部分で,特に二回目の中ボス戦で確実に3体出す, つまり二回目の中ボス戦よりも早く8個目の赤アイテムを取るのが重要でした。 また,ミスを可能な限り避けるのは言うまでもないですが,ミス回避のためのボムすらより少なく, というか無しにする勢いじゃないとこれより上は難しいです。 変なところでストックを使ってしまうと,本当にストック不足に陥ってしまいます。 スピードを重視したために得点的にはいまひとつにはなりましたが, 運も味方してそこそこ安定したボス戦を演じることができました。 ボス戦をより高スコア化するのも有効な手ですが, やはり4M越えには道中をもう一波こすのが先かなという気がします。 追記: 1739380 Lightも記録更新です。OMEGA tuyoi。 ボス戦で何回かミスってるのが痛い。なお,この段階だと道中はノーミス必須。道中のが重要。 Lightは赤7で行くのがいいみたい。敵生成速度は7で頭打ちになってる印象を受ける。 あと両方の記録の動画をアップしました。 あんまりやる気はしないけどHeavy通常ボスは赤7のストック4以下で挑むのがいいのかな。 現在の記録があれだから YOU ARE GOD はいけると思うけど。 隠しボスに慣れた状態でほかのボスに挑むと毎回黄を落としてくれない誤算に気付く。 Lightはストックには余裕があるけど時間が厳しい。 Heavyはストックがきつくて敵を避けるのが難しい。そしてプレイ時間が長い。 2010/8/8 東方仲良雀 東方仲良雀(http://3-me.net/flashdir/thjan/)がちょっと面白かったので解説する。 まず,ステージ連番とステージ同番のみでアガれないというルールだが,いまいち分かりにくいので, 経験的に得られた役の確定法を紹介する。 完全に突き詰めてはいないし,ソースを見たわけではないので間違っているかもしれないし, バージョンの更新によって変更されるかもしれない。その点はご容赦を。 まず,状況役が確定する。状況役はリーチ・一発・メンゼンツモである。 これはアガったときの状況に基づいて確定する役で,疑いの余地はない。 つづいて,アガリの形と「アガリの形に基づく役」が確定する。 アガリの形に基づく役は,オールペアと,ペアを除くアガリの形に直接関わる役である。 具体的には,トリオ×2でアガった場合の三枚役二種,カルテット+ペアでアガった場合の四枚役, セクステットでアガった場合の六枚役のことである。 このとき,一つの組に付き一つのみが付けられる。 例えば,プリズムリバーライブと,その三枚に対してのステージ同番は複合しない。 注意すべきは,ステージ連番・ステージ同番はこの時点でのみ発生する役で, ステージ○○ボスは必ずステージ同番×2によるアガリとなり,セクステットによるアガリにはならないことである。 そして,ここまでの間でステージ連番とステージ同番以外の役が付いていない場合はアガリは認められない。 なお,ポンした場合のアガリの形の制約は今のところよく分かっていない。 ポンした後でもセクステットでアガれることは確認しているが, 他の形(でポンをアガリの形におけるトリオやカルテットに含まない形のアガリが認められるか)に関しては不明である。 次に,アガリが認められた場合は,各ペア役およびアガリの形に関わらない三枚役・四枚役・六枚役が確定する。 この段階にはステージ連番・ステージ同番は登場しないので,例えばルナサ・妖夢・幽々子をポンして, リティ・橙・アリスをそろえて東方妖々夢でアガった場合,ステージ連番は付かない。 (リーチかメンゼンツモが付いていればトリオ×2のアガリとなり,付く。その場合,東方妖々夢はこの段階で付く) 最後にボーナス役が確定する。ボーナス役は,ボーナスカード・裏ボーナスカード・パートナーカードである。 以上のようにして役が確定するので「ステージ連番とステージ同番のみでアガれない」とは, ステージ連番とステージ同番以外に状況役とアガリの形に基づく役がない場合はアガれないということである。 ステージ○○ボスやペアがアガリの形に基づく役に含まれない点は特に注意が必要だ。 麻雀との大きな違いの一つとして,役確定の第三段階でアガリの形を無視して役が付いていく点が挙げられる。 これによって多様な役の複合が存在する。 続いて待ちについての考察。 待ちは当然ペア・トリオ・カルテット・セクステットの何れかの待ちとなる。 まずペア待ち。麻雀の用語を借りれば単騎待ちだ。 トリオ×2とオールペアが比較的自然なアガリの形である東方仲良雀では頻出の形。 カルテット+ペアでもカルテットを先に完成させてペアを待つことが多い。 最大の特徴は待ちに使うカードによって広さが大きく変化することだ。 ペア相手のいないミスティなどは待ちがなく,顔の広い霊夢は最大で8種もの待ちとなる。 待ちが簡単に変えられる単騎待ちに似た特徴を持ち,リーチなしで出上がれる点も麻雀の七対子に似た形と言える。 広いキャラを待ってのリーチは(意味は若干異なるが)字牌単騎に似ている。 次にトリオ以上の待ちだが,麻雀との関連のため, 「ステージ連番」の待ち,「ステージ同番」の待ち,その他の待ちにわける。 まずステージ連番の待ち。麻雀の用語を借りれば両面・嵌張・辺張の何れかの待ちとなる。 ただし待ちの広さは待ちの形よりも待つ作品とステージによってきまる。 多くは同じ作品の同じステージには一種しかないため,待ちの形に依らず待ちは狭い。 両面でも片方が切られていて一種の待ちなどざらである。 一方で,妖々夢の4は三種あるなど,このあたりの待ちは広くなる。 妖々夢の47待ちならば最大で6種の待ちとなる。 このような例外を除いて待ちは狭いが,完成しているトリオがステージ連番かステージ同番の場合, リーチをかけなければ出上がりできないという点で重要な待ちといえる。 次にステージ同番待ち。麻雀の用語に近くすれば単ポン待ちとなる。 ペア待ちと並んで東方仲良雀の主要な待ちになる。 何れであってもそこそこ広い待ちになるが,巡目が進むとほとんど切られてしまっていることもしばしば。 完成しているトリオがステージ連番かステージ同番の場合,リーチをかけなければ出上がりできないため, リーチに対してはこのステージ同番待ちを特に警戒するべきである。 ただしフリテンはないようなのであまり河を過信しすぎるのも考えものだが。 最後がその他の待ち。麻雀に近いものが存在しない東方仲良雀の特徴的な待ちである。 作品別六枚役を除いて一般的に一種の待ちとなり,リーチなしでも上がれることもあり, 多少安くなってもステージ同番などに手替わりできる場合は普通手替わりを待つ。 霊夢魔理沙ペアを抱えてのもう一種の待ち等は安目としてステージ同番待ちがあり,便利な待ちである。 そして,麻雀のようにこれらの役の複合がある。その一つは既に出たステージ同番と特殊トリオの複合待ちである。 ステージ連番と特殊トリオの複合待ちもあり,連番の狭さをカバーするよい待ちである。 同様に重要なのはオールペアにおけるノベタンのような待ちである。 手の内で入り組んだペアが成立している場合,複数のキャラのペアが待ちになることがある。 あまり重要ではないが,ステージ連番に絡んで麻雀のような複合待ちが存在する。 例えば勇儀・さとり・燐・美鈴・アリスを持っての空・3ボス待ちというエントツ型のような待ちである。 麻雀の王道である5連数牌による三面張は東方仲良雀では非常に難度が高く,見たことはないが, そもそもその場合は作品別六枚役との複合待ちになる。 この他,ペアに基づくオールペアとの複合などでさらに複雑な待ちが発生しうる。 2010/8/15 更新記録 WRBSのチャンピオンシップ攻略動画のエキスパートをようやくアップし,それに伴って攻略記事も更新しました。 動画は実に2年4ヶ月ぶりの更新です。もはやどれだけの人が覚えているのか不安なほどです。 WRBSのプレイ自体も実に久しぶりでしたが,動きはしっかり覚えていて数回のプレイで簡単に思い出すことができました。 追記: 動画のページに中画質のものをアップしました。 時間が長いのでそれなりに重いです。 2010/8/9 んー,やっぱり良く分からないなあ。 とりあえず作品別六枚役は必ずアガリの形に基づく役になり, ステージ○○ボスは必ずアガリの形に関わらない役となるのかな。 2010/8/18 更新記録 KoKの記事の更新をしました。 コンボいろいろに載っている全てのコンボに動画を添付し,消費MPをいくつかのコンボについて追加しました。 さらに他者のコンボのページも追加しました。 追記: コンボの分類と一部の誤謬修正を行いました。 2010/9/8 東方仲良雀 命蓮寺をアガった(いまは ./misc/test.jpg にSSがある)ので再び仲良雀(ver1.3c)についてちょっと語る。 仲良雀では下位役もことごとく複合するので,命蓮寺は命蓮寺・東方星蓮船・DS-LEVEL5・ペア6の実質45P役である。 同様にして他の六枚役を見ていくと,「全人類の緋想天」は黄昏・ペア2と複合して36P, 紅魔館は東方紅魔郷・ペア6と複合して41P,神は東方風神録・守矢神社・ペア4と複合して43P役となる。 中ボスは複合せずに30Pのままである。実質的に固有六枚役である東方花映塚は花映塚・ペア3と複合して37Pとなる。 その他の大物手としては永遠亭に妹紅と慧音またはEX慧音からなる,東方永夜抄・永遠亭・蓬莱人・ペア7の25Pが挙げられる。 四枚役がらみを見ると, 東方地霊殿・地霊殿+・地霊殿・ペア5の19P(残りはキスメ・ヤマメ), 妖怪の山・地霊殿霊夢サポート・ペア6の19P(残りは霊夢), 妖精・ペア4の13P(残りはルーミア・リグル or リリーB・映姫), 天空の花の都・プリズムリバーライブ・ペア3の14P(残りは霊夢・魔理沙), エイトフォー・[妖怪と式と式の式(残りは幽々子) or 守矢神社]・ペア4の17P, 同じステージ・同じステージ・文花帖-LEVEL EX・蓬莱人・ペア3の20P, といったところ。未出の作品別六枚役は 東方妖々夢・プリズムリバーライブ・妖怪と式と式の式・ペア2の15P となる。ペア数を最大化すると 霊夢・魔理沙・アリス・パチュリー・レミリア・フランのオールペア・旧作-怪綺談・ペア8の16Pか。 オールペアでポイントを追えば霊夢・魔理沙・アリス・幽香・早苗・[慧音 or 神奈子 or 諏訪子 or こいし]の, オールペア・旧作-怪綺談・旧作-幻想郷・星蓮船自機・ペア6の22Pか。 最高役である命蓮寺は命蓮寺抜きでも15Pとなる強力な手であることが確認できる。 さらにこれらは全てリーチ・一発・メンゼンツモ・ボーナスカード・裏ボーナスカード・パートナーカードが付き, 6Pまたは7P増加する。命蓮寺では最大で51Pの132000点となり,これが仲良雀の最高得点と思われる。 ペア8の手からフランを除いた5枚は広大なノベタン(5枚全ての単騎待ち)になり, ルナサ・紫・文・早苗・萃香・リリカ・幽香・にとり・慧音・小悪魔・美鈴・フラン・咲夜の13面待ちとなる。 高目がフランで,他は全てペアが一つ落ち,咲夜の場合はオールペアが消えてステージ連番になってしまう。 以前自分が経験した永遠亭と霊夢の東方永夜抄と霊夢単騎の複合待ちは, 魔理沙・レミリア・アリス・ルナサ・紫・文・早苗・萃香・リグル・ミスティア・慧音・EX慧音・妹紅の13面待ち。 複雑な待ちならいくらでも作れるが,広さで言うと,このあたりが限界だろうか。 続いて最重要役である同じステージに関する補助として以下の表を示す。     1 2 3 4 5 6 7 - 計 紅魔郷 1 1 1 1 1 1 1 2 9 妖々夢 1 1 1 3 1 1 2 0 10 永夜抄 1 1 1 2 1 2 1 2 11 花映塚 0 0 0 0 1 1 0 4 6 風神録 1 1 1 1 1 1 1 2 9 緋想天 0 0 0 0 1 2 0 0 3 地霊殿 1 1 1 1 1 1 1 1 8 星蓮船 1 1 2 1 1 1 1 0 8  計  6 6 7 9 8 A 7 B 64 (Aは10,Bは11) 同じステージとしての6ボス,4ボスの重要性や,作品別六枚役で永夜抄や妖々夢が重要であることが分かりやすい。 (1ボス待ちは多面張を除いて最大4枚待ちであるのに対し,6ボスは最大で8枚も待つことができる) さしずめ麻雀の老頭牌と中張牌のような関係だ(ステ番なしが字牌か)。使いやすく,危険でもある。 1ボスと2ボスは実質的な固有6枚役となり,発生頻度は一段と下がるが,特に優遇されてはいないようだ。 追記 オールペア・永遠亭・蓬莱人・文花帖-LEVEL4・ペア7が28Pで,こちらの方が東方永夜抄より高いことが分かった。 というかオールペア四枚役(四枚役でない二枚がペアにならず,バラの3ペアがあることが条件)は強い。 オールペア・地霊殿+・地霊殿・ペア6の19P(残りはにとり・早苗)は東方地霊殿と同じ。 オールペア・妖怪の山・地霊殿霊夢サポート・ペア5の22P(残りは魔理沙 or 空)はペア6より高い。 オールペア・エイトフォー・ペア3の16P(残りは永琳と神奈子のそれぞれのペア相手何れか)は, 三枚役と複合せず,内部ペアが少ないために低い。 他の四枚役はオールペアとは複合しない。 エイトフォーの場合は正しく反応するか(カルテット+ペアの形にもなっている)怪しいが 同じステージ・同じステージ・エイトフォー・蓬莱人・ペア4の21Pのほうが高くなる。 2010/10/1 不夜麻雀 さて,現在は白蓮の登場により最高得点事情が大きく変化したのであるが,白蓮なしの最高得点が間違っていることが判明した。 不夜麻雀特有の「役なし和了はドラ2倍」という仕様を見逃していたためである。 三暗刻・対々和・三槓子・混一色・断幺九・混全帯幺九などの役をすべて回避する必要があるが, ポンまたはチーを行った上でQEDを使い,暗槓二つと雀頭の10枚だけドラを揃えれば四槓子の18枚を超えることができます。 理想的には数牌のポンを行えば,役牌を除くすべてのドラに対応できます。 (ポンした牌と異なる色で,断幺九と混全帯幺九を回避するように順子を手の中で作る) フラワーシューティングによる表示牌と通常の3枚の表示牌が一致し,ポンした牌がドラになり, さらに海底牌ツモ後にQEDを起動して2回槓をする状況を考えると, ドラ表示牌が67+3枚(槓が少ない分河が多い),それを受ける牌が13枚となり, ドラ910×2×2 ドラ910×2×2 52998400飜100符(中張牌なら60符) の和了となります。符の付く待ちであがらないと90符に下がるのでやや注意が必要です。 まあ不夜麻雀における三暗刻の正確な条件が分からないのでその点は微妙ですが……。 続いて白蓮を使う場合を考えます。 まず,9000万飜までしかランキングに載れないので,いかにこれに近づくかを考えます。 現在のランキングトップ4が皆表示役より飜数が88529281だけ大きいので, 超人「聖白蓮」をある回数重ねた時のボーナスがこの値なのでしょう。 つまり,これに1470719飜加えてやればよいわけです……が, 白蓮で比較的出し易い6一色との複合を考えると, [百万石 or 緑一色]・四槓子・四暗刻単騎・八連荘 立直・一発・門前清自摸和・断幺九・対々和・清一色・ドラ1332(通常の表示牌を含む)×2×2 の88534686飜90符(超人分を除いて5405飜)が関の山。 (上記のドラドラ和を使えば幾分かましにはなりますが,上記と全く同じあがり方でも7280飜です) しかも連荘中に「花鳥風月、嘯風弄月」を使われたら連荘解除というシビアなもの。 ここはやはり「花鳥風月、嘯風弄月」を利用するアプローチがよいでしょう。 √9000万≒9486.8なので9486飜を目指します。超人は10回で+1万飜になるので9回とします。 このときの超人ボーナスは6561飜となるので,役では2925飜を目指すことになります。 白蓮と幽香のどちらを自キャラにすべきかはやや難しい問題ですが,とりあえず白蓮自キャラとして話を進めます。 対面と下家はいつものように穣子とします。魔法「紫雲のオーメン」による6一色との複合を考えると, 緑一色・四暗刻単騎・八連荘 (六萬一色で百万石を成立させるためには槓子が3以上必要) 立直・一発・門前清自摸和・断幺九・対々和・清一色・ドラ714(表示牌は51枚)×2×2 (表示牌51枚は自分が親で,13巡目に上家の幽香がフラワーシューティングを使用し, 13巡目の幽香を含め,フラワーシューティング後の捨て牌及び通常の表示牌が全てハズレの場合に成立する) で89889361飜40符(役のみで2920飜)といったあたりが比較的現実的な範囲での限界と言えるでしょう。 とはいえ,フラワーシューティングが一巡早いと85692049飜にまで下がってしまうのであまりにシビアといえばシビアですが。 逆にドラ表示牌が一枚でも多いと9000万飜を余裕で突破して失敗になる点も要注意です。(立直をかけると裏ドラ乗ってもアウト) 嘯風弄月なしでの限界を超えるにはこれより(二乗前に)71飜少なくてもよいので, ドラ表示牌一枚減(二乗前に56飜減)&六筒一色or六萬一色(同13飜減)&立直なし(同2飜減)程度ならOKです。 まあ嘯風弄月なしの場合は超人を規定回数使用すればあとは高い役が出るまで連荘するだけでよいので, 難易度そのものは嘯風弄月を利用する方が高いです。が,この接近精度はかなり魅力的とは言えるでしょう。 なお,三槓子を付ける場合,表示牌42枚で同じドラ714を達成できるので,現実性をさらに無視すれば [百万石 or 緑一色]・四暗刻単騎・八連荘 ダブル立直・嶺上開花・門前清自摸和・断幺九・対々和・三槓子・清一色・ドラ714×2×2 で89946256飜80符(役のみで2923飜)まで接近することができます。 あと2飜詰める方法は少なくともすぐには思いつきませんが,達成できれば89984196飜になります。 (ドラドラ和の限界が7280飜なので超人を少なくするルートもあるかもしれない) なお,9000万飜制限を無視した上限は超人のボーナス上限が不明なので不明です。 嘯風弄月状態でできるだけ超人を多く使用していることだけが重要で,役やドラなどは微々たる差にしかなりません。 超人の上限があるなら役を含めた議論も可能と言えば可能ではありますが……。 2010/10/18 勝った方が強い? 「強いものが勝つんじゃない,勝った方が強かったんだ」という言葉がある。が,私は嫌いだ。 勝負というのは概ね確率的な揺らぎがあり,たまたま勝ったり負けたりもする。 そんな中,たまたま勝ったものが「強い」というのはどうにも気持ち悪い。 もちろん,たまたまにしろ勝ったものは「えらい」と思うが,そのことは強いこととは関係ない。 (何らかの条件の下)勝ちやすいもの,つまり勝率が高いものをこそ「強い」と呼ぶべきだろう。 「勝った→強いのでは?」という推論は問題ないが,一度や二度勝ったぐらいで (少なくともその条件で)勝者が強いと認定するのはいかにも愚かしいと思う。 「強いものがえらいのではなく,勝ったものがえらいのだ」なら同意する。 まあ「強い」の定義の問題と言えばそうなのだが。