海底牌の打牌後にライバルが手牌を倒し始めたと同時に、こちらも聴牌をほぼ同時に宣言する。
みたいなタイミングで聴牌宣言の意思決定を行うのは通信遅延を考慮しなければならないネット環境ではほぼ無理です。
流局聴牌/不聴の実装方法は何種類か考えられますが「常時受け付けていてある時点で締め切る」というようなやりかたが一番無難かなと思っています。
他には、最終打牌後にゲームを止めてYES/NOを聞くみたいなやり方もありますが、クレームが増えそうですしリズムが大きく崩れるので多分実現は難しいです。
さて、「ある時点で締め切る」場合ですが、どの時点まで聴牌不聴の宣言が受付可能かというと、海底牌の打牌前までになります。
ですので、海底牌で最終打牌者がオリたかどうかを判断して流局聴牌のチェックを外したい、などはタイミング的に間に合いません。
視覚的な打牌前でも通信遅延があると間に合わない場合もあります。
打牌というのは、サーバ上の打牌であって、視覚化した打牌よりも少し前のタイミングになります。
まだ自分のクライアント上では最終打牌者は海底牌を切っていないけど、サーバに向けて最終打牌者が海底牌の打牌選択を送信済みでそれがサーバに到着していたとすると、その時点以降の流局聴牌/不聴宣言はサーバには受け付けられません。
おそらくこのタイミングがギリギリになるのかと思っています。
ということで、「流局聴牌」のチェックは海底牌の打牌近辺では間に合わない場合もありますよ、というのを許容して実装してみることにしました。
2017年10月31日
流局聴牌宣言はどのタイミングまで可能か?向聴数0でも不聴を宣言できる機能を検討中。
posted by つの at 22:24| Comment(0)
| 日記
■雀荘戦ルールについて■
場千五(1本場1500点)を採用しています
東西場を採用しています(西も場風)