mahjong_engine 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BlockDivider.js +17 -21
- package/dist/BlockDivider.js.map +1 -1
- package/dist/BlockHais.js +13 -17
- package/dist/BlockHais.js.map +1 -1
- package/dist/BlockHaisList.js +13 -17
- package/dist/BlockHaisList.js.map +1 -1
- package/dist/Hai.js +23 -27
- package/dist/Hai.js.map +1 -1
- package/dist/Hais.js +4 -8
- package/dist/Hais.js.map +1 -1
- package/dist/IMentsu.js +1 -2
- package/dist/MachiCalculator.js +7 -11
- package/dist/MachiCalculator.js.map +1 -1
- package/dist/MahjongConsts.js +12 -15
- package/dist/MahjongConsts.js.map +1 -1
- package/dist/Meld.js +11 -15
- package/dist/Meld.js.map +1 -1
- package/dist/Melds.js +1 -5
- package/dist/Melds.js.map +1 -1
- package/dist/MentsuAnalyzer.js +1 -5
- package/dist/MentsuAnalyzer.js.map +1 -1
- package/dist/PlayerContext.js +3 -7
- package/dist/PlayerContext.js.map +1 -1
- package/dist/PlayerHand.js +3 -7
- package/dist/PlayerHand.js.map +1 -1
- package/dist/index.js +11 -25
- package/dist/index.js.map +1 -1
- package/dist/tensuu/FuCalculator.js +25 -29
- package/dist/tensuu/FuCalculator.js.map +1 -1
- package/dist/tensuu/FuDetail.js +1 -5
- package/dist/tensuu/FuDetail.js.map +1 -1
- package/dist/tensuu/ScoreResolver.js +7 -11
- package/dist/tensuu/ScoreResolver.js.map +1 -1
- package/dist/tensuu/ScoreResult.js +1 -5
- package/dist/tensuu/ScoreResult.js.map +1 -1
- package/dist/tensuu/TensuuCalculator.js +3 -7
- package/dist/tensuu/TensuuCalculator.js.map +1 -1
- package/dist/tensuu/TensuuResult.js +1 -5
- package/dist/tensuu/TensuuResult.js.map +1 -1
- package/dist/tileDefs.js +1 -4
- package/dist/tileDefs.js.map +1 -1
- package/dist/yaku/NormalYakuChecker.js +8 -12
- package/dist/yaku/NormalYakuChecker.js.map +1 -1
- package/dist/yaku/YakuChecker.js +5 -9
- package/dist/yaku/YakuChecker.js.map +1 -1
- package/dist/yaku/YakuCheckerBase.js +13 -17
- package/dist/yaku/YakuCheckerBase.js.map +1 -1
- package/dist/yaku/YakuContext.js +1 -5
- package/dist/yaku/YakuContext.js.map +1 -1
- package/dist/yaku/YakumanChecker.js +6 -10
- package/dist/yaku/YakumanChecker.js.map +1 -1
- package/dist/yaku/index.js +73 -76
- package/dist/yaku/index.js.map +1 -1
- package/dist/yaku/normal/ChinitsuChecker.js +2 -6
- package/dist/yaku/normal/ChinitsuChecker.js.map +1 -1
- package/dist/yaku/normal/ChitoitsuChecker.js +4 -8
- package/dist/yaku/normal/ChitoitsuChecker.js.map +1 -1
- package/dist/yaku/normal/DoukouChecker.js +2 -6
- package/dist/yaku/normal/DoukouChecker.js.map +1 -1
- package/dist/yaku/normal/HonchanChecker.js +4 -8
- package/dist/yaku/normal/HonchanChecker.js.map +1 -1
- package/dist/yaku/normal/HonitsuChecker.js +4 -8
- package/dist/yaku/normal/HonitsuChecker.js.map +1 -1
- package/dist/yaku/normal/HonrotoChecker.js +4 -8
- package/dist/yaku/normal/HonrotoChecker.js.map +1 -1
- package/dist/yaku/normal/IipekoChecker.js +2 -6
- package/dist/yaku/normal/IipekoChecker.js.map +1 -1
- package/dist/yaku/normal/IttsuuChecker.js +2 -6
- package/dist/yaku/normal/IttsuuChecker.js.map +1 -1
- package/dist/yaku/normal/JunchanChecker.js +4 -8
- package/dist/yaku/normal/JunchanChecker.js.map +1 -1
- package/dist/yaku/normal/KazehaiChecker.js +4 -8
- package/dist/yaku/normal/KazehaiChecker.js.map +1 -1
- package/dist/yaku/normal/MenzenTsumoChecker.js +2 -6
- package/dist/yaku/normal/MenzenTsumoChecker.js.map +1 -1
- package/dist/yaku/normal/PinfuChecker.js +9 -13
- package/dist/yaku/normal/PinfuChecker.js.map +1 -1
- package/dist/yaku/normal/RenpuuhaiChecker.js +4 -8
- package/dist/yaku/normal/RenpuuhaiChecker.js.map +1 -1
- package/dist/yaku/normal/RyanpekoChecker.js +2 -6
- package/dist/yaku/normal/RyanpekoChecker.js.map +1 -1
- package/dist/yaku/normal/SanankoChecker.js +2 -6
- package/dist/yaku/normal/SanankoChecker.js.map +1 -1
- package/dist/yaku/normal/SankantsuChecker.js +2 -6
- package/dist/yaku/normal/SankantsuChecker.js.map +1 -1
- package/dist/yaku/normal/SanshokuChecker.js +2 -6
- package/dist/yaku/normal/SanshokuChecker.js.map +1 -1
- package/dist/yaku/normal/ShosangenChecker.js +2 -6
- package/dist/yaku/normal/ShosangenChecker.js.map +1 -1
- package/dist/yaku/normal/TanyaoChecker.js +2 -6
- package/dist/yaku/normal/TanyaoChecker.js.map +1 -1
- package/dist/yaku/normal/ToitoiChecker.js +2 -6
- package/dist/yaku/normal/ToitoiChecker.js.map +1 -1
- package/dist/yaku/normal/YakuhaiChecker.js +4 -8
- package/dist/yaku/normal/YakuhaiChecker.js.map +1 -1
- package/dist/yaku/yakuman/ChinrotoChecker.js +2 -6
- package/dist/yaku/yakuman/ChinrotoChecker.js.map +1 -1
- package/dist/yaku/yakuman/Churen9Checker.js +4 -8
- package/dist/yaku/yakuman/Churen9Checker.js.map +1 -1
- package/dist/yaku/yakuman/ChurenChecker.js +4 -8
- package/dist/yaku/yakuman/ChurenChecker.js.map +1 -1
- package/dist/yaku/yakuman/DaisangenChecker.js +2 -6
- package/dist/yaku/yakuman/DaisangenChecker.js.map +1 -1
- package/dist/yaku/yakuman/DaisushiChecker.js +2 -6
- package/dist/yaku/yakuman/DaisushiChecker.js.map +1 -1
- package/dist/yaku/yakuman/ExtendedYakumanChecker.js +2 -6
- package/dist/yaku/yakuman/ExtendedYakumanChecker.js.map +1 -1
- package/dist/yaku/yakuman/Kokushi13Checker.js +4 -8
- package/dist/yaku/yakuman/Kokushi13Checker.js.map +1 -1
- package/dist/yaku/yakuman/KokushiChecker.js +4 -8
- package/dist/yaku/yakuman/KokushiChecker.js.map +1 -1
- package/dist/yaku/yakuman/RyuisoChecker.js +2 -6
- package/dist/yaku/yakuman/RyuisoChecker.js.map +1 -1
- package/dist/yaku/yakuman/ShosushiChecker.js +2 -6
- package/dist/yaku/yakuman/ShosushiChecker.js.map +1 -1
- package/dist/yaku/yakuman/SuankoChecker.js +2 -6
- package/dist/yaku/yakuman/SuankoChecker.js.map +1 -1
- package/dist/yaku/yakuman/SuankoTankiChecker.js +6 -10
- package/dist/yaku/yakuman/SuankoTankiChecker.js.map +1 -1
- package/dist/yaku/yakuman/SukantsuChecker.js +2 -6
- package/dist/yaku/yakuman/SukantsuChecker.js.map +1 -1
- package/dist/yaku/yakuman/TsuisoChecker.js +2 -6
- package/dist/yaku/yakuman/TsuisoChecker.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.RyuisoChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class RyuisoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class RyuisoChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "緑一色";
|
|
7
4
|
isSatisfied() {
|
|
8
5
|
const greenNums = new Set([20, 21, 22, 24, 26, 33]);
|
|
@@ -13,5 +10,4 @@ class RyuisoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
13
10
|
return allTiles.every(h => greenNums.has(h.getId()));
|
|
14
11
|
}
|
|
15
12
|
}
|
|
16
|
-
exports.RyuisoChecker = RyuisoChecker;
|
|
17
13
|
//# sourceMappingURL=RyuisoChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RyuisoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/RyuisoChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RyuisoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/RyuisoChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,OAAO,aAAc,SAAQ,eAAe;IACpC,QAAQ,GAAW,KAAK,CAAC;IAEzB,WAAW;QACjB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG;YACb,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;YACpB,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAClD,CAAC;QAEF,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;CACJ"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.ShosushiChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class ShosushiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class ShosushiChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "小四喜";
|
|
7
4
|
isSatisfied() {
|
|
8
5
|
const { foundTargets, mentsuCount, jantoCount } = this.countTargetBlocks(this.context.block, [28, 29, 30, 31]);
|
|
@@ -11,5 +8,4 @@ class ShosushiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
11
8
|
return mentsuCount === 3 && jantoCount === 1;
|
|
12
9
|
}
|
|
13
10
|
}
|
|
14
|
-
exports.ShosushiChecker = ShosushiChecker;
|
|
15
11
|
//# sourceMappingURL=ShosushiChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShosushiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/ShosushiChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ShosushiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/ShosushiChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,OAAO,eAAgB,SAAQ,eAAe;IACtC,QAAQ,GAAW,KAAK,CAAC;IAEzB,WAAW;QACjB,MAAM,EAAC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,CAAC,CAAC;QAE1G,IAAG,YAAY,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAEzC,OAAO,WAAW,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,CAAC;IACjD,CAAC;CACJ"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.SuankoChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class SuankoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class SuankoChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "四暗刻";
|
|
7
4
|
isSatisfied() {
|
|
8
5
|
if (!this.isMenzen())
|
|
@@ -13,5 +10,4 @@ class SuankoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
13
10
|
return this.isSatisfied();
|
|
14
11
|
}
|
|
15
12
|
}
|
|
16
|
-
exports.SuankoChecker = SuankoChecker;
|
|
17
13
|
//# sourceMappingURL=SuankoChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuankoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/SuankoChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SuankoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/SuankoChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,OAAO,aAAc,SAAQ,eAAe;IACpC,QAAQ,GAAW,KAAK,CAAC;IAEzB,WAAW;QACjB,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO,KAAK,CAAC;QAClC,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;CACJ"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const MahjongConsts_1 = require("../../MahjongConsts");
|
|
6
|
-
const SuankoChecker_1 = require("./SuankoChecker");
|
|
7
|
-
class SuankoTankiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
import { BlockType } from '../../MahjongConsts';
|
|
3
|
+
import { SuankoChecker } from './SuankoChecker';
|
|
4
|
+
export class SuankoTankiChecker extends YakuCheckerBase {
|
|
8
5
|
yakuName = "四暗刻単騎";
|
|
9
6
|
constructor(context) {
|
|
10
7
|
super(context);
|
|
@@ -12,11 +9,11 @@ class SuankoTankiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
12
9
|
this.hanFuro = 26;
|
|
13
10
|
}
|
|
14
11
|
isSatisfied() {
|
|
15
|
-
const base = new
|
|
12
|
+
const base = new SuankoChecker(this.context);
|
|
16
13
|
if (!base.isSuanko())
|
|
17
14
|
return false;
|
|
18
15
|
for (const blockhais of this.context.block) {
|
|
19
|
-
if (blockhais.getType() ===
|
|
16
|
+
if (blockhais.getType() === BlockType.JANTO) {
|
|
20
17
|
if (blockhais.getHais().some(h => h.getId() == this.context.ctx.agariHai.getId()))
|
|
21
18
|
return true;
|
|
22
19
|
}
|
|
@@ -24,5 +21,4 @@ class SuankoTankiChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
|
24
21
|
return false;
|
|
25
22
|
}
|
|
26
23
|
}
|
|
27
|
-
exports.SuankoTankiChecker = SuankoTankiChecker;
|
|
28
24
|
//# sourceMappingURL=SuankoTankiChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuankoTankiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/SuankoTankiChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SuankoTankiChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/SuankoTankiChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IACzC,QAAQ,GAAW,OAAO,CAAC;IAErC,YAAY,OAAoB;QAC5B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;IAES,WAAW;QACjB,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO,KAAK,CAAC;QAElC,KAAI,MAAM,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAC,CAAC;YACvC,IAAG,SAAS,CAAC,OAAO,EAAE,KAAK,SAAS,CAAC,KAAK,EAAC,CAAC;gBACxC,IAAG,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAAE,OAAO,IAAI,CAAC;YAClG,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.SukantsuChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class SukantsuChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class SukantsuChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "四槓子";
|
|
7
4
|
isSatisfied() {
|
|
8
5
|
return this.countKantsu() === 4;
|
|
9
6
|
}
|
|
10
7
|
}
|
|
11
|
-
exports.SukantsuChecker = SukantsuChecker;
|
|
12
8
|
//# sourceMappingURL=SukantsuChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SukantsuChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/SukantsuChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SukantsuChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/SukantsuChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,OAAO,eAAgB,SAAQ,eAAe;IACtC,QAAQ,GAAW,KAAK,CAAC;IAEzB,WAAW;QACjB,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;CACJ"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.TsuisoChecker = void 0;
|
|
4
|
-
const YakuCheckerBase_1 = require("../YakuCheckerBase");
|
|
5
|
-
class TsuisoChecker extends YakuCheckerBase_1.YakuCheckerBase {
|
|
1
|
+
import { YakuCheckerBase } from '../YakuCheckerBase';
|
|
2
|
+
export class TsuisoChecker extends YakuCheckerBase {
|
|
6
3
|
yakuName = "字一色";
|
|
7
4
|
isSatisfied() {
|
|
8
5
|
const allTiles = this.getAllTiles();
|
|
9
6
|
return allTiles.every(h => h.isJihai());
|
|
10
7
|
}
|
|
11
8
|
}
|
|
12
|
-
exports.TsuisoChecker = TsuisoChecker;
|
|
13
9
|
//# sourceMappingURL=TsuisoChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TsuisoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/TsuisoChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TsuisoChecker.js","sourceRoot":"","sources":["../../../modules/yaku/yakuman/TsuisoChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,OAAO,aAAc,SAAQ,eAAe;IACpC,QAAQ,GAAW,KAAK,CAAC;IAEzB,WAAW;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;CACJ"}
|