fix: ComputeNextTiles 正精=翻牌本身(非+1)
南昌麻将规则: 翻到X, 正精=X(翻牌本身), 副精=X+1(9→1循环) 之前错误实现: 正精=X+1, 副精=X+2 修复: 循环从i=0开始(含翻牌本身) 验证: 翻5万→正精5万/副精6万, 翻9筒→正精9筒/副精1筒
This commit is contained in:
@ -66,10 +66,10 @@ public class WildcardRegistry
|
||||
|
||||
if (suit == 3) // Honors: 东(31)→南(32)→西(33)→北(34)→中(35)→发(36)→白(37)→东(31)
|
||||
{
|
||||
for (int i = 1; i <= count; i++)
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
int next = revealedTile + i;
|
||||
if (next > 37) next = 31 + (next - 38);
|
||||
if (next > 37) next = next - 7; // wrap: 38→31
|
||||
result.Add(next);
|
||||
}
|
||||
}
|
||||
@ -77,7 +77,7 @@ public class WildcardRegistry
|
||||
{
|
||||
int baseVal = suit switch { 0 => 0, 1 => 10, _ => 20 };
|
||||
int rank = MahjongTile.Rank(revealedTile);
|
||||
for (int i = 1; i <= count; i++)
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
int nextRank = (rank + i - 1) % 9 + 1;
|
||||
result.Add(baseVal + nextRank);
|
||||
|
||||
Reference in New Issue
Block a user