mahjong_engine 1.0.0 → 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
- package/tsconfig.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"}
|
package/package.json
CHANGED