天鳳の安定段計算ツール シンプル版 鳳凰用 特上用 上卓・三人打ち用はこちらから
背景指定  

天鳳のタメロン通報制度

天鳳にタメロン通報制度が出来た模様

正確には特定の場面でのみ行われる遅延行為での通報が多かったので、通報項目に「不快な遅延行為」という項目を作成したとの事。

つのブログ:通報項目に「不快な遅延行為」を追加しました。迷惑行為への通報が沢山集まるとIDが停止する場合があります。

以前から通報ページは「不正や迷惑行為を行なうプレーヤの通報を行ないます。」目的であるので、通報理由「その他」で通報自体は可能であったが、今回「不快な遅延行為」という項目が独立したと。


この件に関する意見がツイッターやブログ上で色々あったので、それらを見ながら自分なりにちょっと考えてみた。
特定の人の意見への対応という事ではないので。


・タメロンを通報できる事自体はどうよ?

天鳳=つのの管理下なので、つのが駄目と言えばそこまで。
だから問題は無いであろう。
通常時は嫌がらせ以外にタメロンの常態化の必要性が特に無いであろうから、ルール化してもおかしい事でもない。


・そもそも通報制度自体どうよ?

人数を動員すれば悪意を持ってIDを停止できるので、制度としてはザルもいいところ。
緊急性を有する場合くらいしか正当化はされんわな。
放置プレイをしてptをばら撒いている場合などか。

実際はどれくらい悪用されているかは分からんが、数回問題になった事を見た事がある程度なので、実際の運用上は十分に機能しているのだろう。


・今回の発表以前のタメロンへの対応は?

前述のように迷惑行為は元々対象であったので、対象者は既に相当数通報がなされているだろう。
今回の発表以降はしていないと主張しても、ちょっと前にやられたのを今通報したというのもアリだろうから、累計でIDを停止されても文句は言えないかなと。


・タメロン以外の遅延行為はどうよ?

まず、あからさまな牛歩はどんどん通報されていくようになるとは思う。
問題は悪意はないが普通に遅い場合。
そもそも普通ってどれくらいよという話から始まって、「自分が思う遅い奴」の名指し&通報が蔓延すると、お前もこの前遅かったじゃねえかと壮絶なお前が言うな&通報大会になりかねない。
そうなると不毛だし判断も難しいわな。

禁止されていないから時間一杯使っても文句を言われる筋合いはねえよという方向になると、タメロンも今までは天鳳システムで許された事であって、同卓者をいら立たせてミスを増やす可能性を高める有効な手法となってしまうから、そっち方向になると同じく不毛。

個人的には最高峰の対戦麻雀サイトを謳う以上は、スピードも最高峰でいいんじゃねと思っている。
少なくとも毎打じっくりと考えて打たなくてもいいだろうと。
鳳凰は速卓と超速(常にカチカチ状態)で良いと思うわ。


タメロン通報の信頼性アップの方法(結果的に使え無さそう)

局の最初から自動和了を有効にしておけば、それを解除するのはユーザーの意志によるもの。
そして見逃しなどで自動和了を解除する必要性がある場合は稀であろうし、そういう時は後で牌譜を見れば一目瞭然である。
そう考えると、例えば天鳳側で和了れる際に1秒以上和了っていない場合は記録しておくという形で、通報の信頼性の裏付けを取る事は可能。
1秒以上和了りボタンを押さない=解除している事が多いのは異常であるから十分に怪しいと。
怪しい事はしていないというならわざわざそんな事をしている事の説明をしてくれと。
レアケース時に勘違いで通報する者がいるとしても、少なくともIDを停止されるまで通報は集まらないであろう。

しかし、この場合は本当に和了りたくない場合も和了ってしまう事がある。
地和チャンスの時に平和のみで自動和了されるとか。
そういう事もあるだろうから、安全側で考えるとやはり現状の様に自動和了は無効設定にせざるを得まい。

天鳳の洗牌と牌山積みと配牌

ここで記載している内容は2009年7月22日以前の方法です
※現在は乱数発生方法がMersenne Twisterに変わっていますが、ここでの説明のメインである並び替え方法、つまり項目2.以降は基本的に以前と同じはずです。

新しい乱数発生方法はつのブログ(牌山生成の公開方法)へ
牌操作疑惑テンプレで、一連の流れが大雑把に分かる。
天鳳公式ページの「ゲームへの疑惑・牌操作」項目も。


課金者優遇やら牌操作という話が掲示板などで飛び交う天鳳であるが、実際にはどうなっているのであろうか?

答えを先に言うと、一番最初に牌をかき混ぜて並べている。
ツモる度に残りの牌からランダムに選んでいるわけではない。

さて、天鳳の運営者である「つの」はmixiの天鳳コミュニティーでこう書いている。

山の生成ですが、次のコード以上の仕組みはありません。

unsigned long randseed[8]; // <INIT />のshuffleから生成
init_by_array(randseed,8);
for(i=0;i<136;++i) yama[i]=i;
for(i=0;i<136-1;++i) swap(yama[i],yama[i + (genrand_int32()%(136-i))]); // サンマは108
※yama[0,1,2,3]が親の最初の配牌4枚、yama[134]が1つ目の嶺上牌


09/02/24追記:

mixiの天鳳、不具合報告トピックに以下の様な事が書かれていた。

712 2009年02月08日 23:42

質問が具体的でなくて申し訳ありません。
yama[0,1,2,3]が親の配牌と書かれていますが、yama[135,134,133,132]が親の配牌になっているように思えたので確認をお願いしたいと思った次第です。

713 2009年02月09日 03:24

つの
あれ、そうなっていました。
山は後ろから消費しています。

天鳳運営に確認したところ、次の事が判明したので適正に修正。

1.1つ目の嶺上牌はyama[0]、嶺上牌はyama[0]~yama[3]
2.ドラ表示牌は4麻=yama[4]、3麻=yama[8]。

基本的に従来と左右逆になった。
本質的な事は変わらず。

09/02/24追記ここまで

ということで、これを元に推測してみる。

1.まず最初に乱数用の処理

これによって乱数発生時の偏りを無くする。
つまり周期的に同じ配牌やツモになるのを避ける。
※現在の方法では、ここが変わっている。


2.136枚の牌を横一列に並べる

たぶん内部的にはこんな感じ。
一萬一萬一萬一萬二萬二萬二萬二萬三萬三萬三萬三萬・・・發發發發中中中中
そして左端から位置情報を0,1,2,3,4,5・・・133,134,135と振る。
0なら一萬、5なら二萬、133なら中という感じ。
何故1でなく0からなのかは気にしないのが吉


3.洗牌

牌をかき混ぜる代わりに牌をバラバラに入れ替える。

調べたらFisher-Yatesという方法を使っているようだ。
このサイトで、その方法を視覚的に見ることができる。

まず最初に、左端の一萬(位置は0)を入れ替える。この際に0~135までの数字をランダムに選び、その位置の牌と入れ替える。
49ならこう
四筒一萬一萬一萬・・・四筒一萬四筒四筒・・・中中中中

次に左端から二番目の一萬(位置は1)を入れ替える。この際に1~135までの数字をランダムに選び、その位置の牌と入れ替える。
34ならこう
四筒九萬一萬一萬・・・九萬九萬一萬九萬・・・中中中中

次に左端から三番目の一萬(位置は2)を入れ替える。この際に2~135までの数字をランダムに選び、その位置の牌と入れ替える。
135ならこう
四筒九萬中一萬二萬二萬二萬二萬・・・中中中一萬

こうやって135牌目(位置は134)まで入れ替えていく。特徴としては、対象となる牌の左側の牌とは入れ替えない。上記の例で言えば、位置2の一萬は位置0の四筒と位置1の九萬とは入れ替わらない。


4.配牌

全部入れ替えるとこんな感じ。
四筒九萬中七索五筒二索三筒七萬・・・三索三萬南七筒九筒五筒赤五萬六筒
そして、親→子の順に右端から4枚づつ配っていく。


5.牌をツモる

配牌終了後、残った牌の右端から順次ツモる。この部分は想像だが、多分間違いないだろう。
鳴きでツモ順が変われば、リアルと同じようにその後のツモ牌は変わる。


6.王牌部分

左端から14枚が王牌となる。

位置情報が偶数が上山、奇数が下山になるので、上の例を用いれば最初の嶺上牌は四筒、その下の牌が九萬、ドラ表示牌が五筒、裏ドラ表示牌が二索となる。

視覚的にはこんな感じ
裏裏五筒裏裏裏裏

開くとこう
四筒中五筒三筒西八索四萬

このように、リアル麻雀同様に牌の並びは決まっているため、必要牌が喰い流された時は思いっきり悔しがってok
追いかけリーチ相手の当たり牌を一発で持ってくるのもついてないだけ。

つのが書いた通りなら、おかしなことは何も無し