@konoui/mjimage 0.0.6 → 0.0.8
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/mjs/lib/calculator/index.d.ts +10 -10
- package/dist/mjs/lib/calculator/index.js +95 -95
- package/dist/mjs/lib/constants.d.ts +1 -1
- package/dist/mjs/lib/constants.js +2 -2
- package/dist/mjs/lib/controller/controller.js +45 -45
- package/dist/mjs/lib/controller/efficiency.js +21 -21
- package/dist/mjs/lib/controller/managers.d.ts +2 -2
- package/dist/mjs/lib/controller/managers.js +15 -15
- package/dist/mjs/lib/controller/state-machine.js +1 -1
- package/dist/mjs/lib/controller/wall.js +11 -11
- package/dist/mjs/lib/image.js +7 -7
- package/dist/mjs/lib/mjai/event.js +12 -12
- package/dist/mjs/lib/parser.d.ts +5 -5
- package/dist/mjs/lib/parser.js +46 -46
- package/package.json +1 -1
|
@@ -369,7 +369,7 @@ var Controller = (function () {
|
|
|
369
369
|
var fake = t.clone().remove(constants_1.OPERATOR.HORIZONTAL);
|
|
370
370
|
if (t.isNum() && t.n == 0)
|
|
371
371
|
fake.n = 5;
|
|
372
|
-
if (hand.get(t.
|
|
372
|
+
if (hand.get(t.t, fake.n) < 2)
|
|
373
373
|
return false;
|
|
374
374
|
var blocks = [];
|
|
375
375
|
var idx = Math.abs(Number(w[0]) - Number(whoDiscarded[0]));
|
|
@@ -381,10 +381,10 @@ var Controller = (function () {
|
|
|
381
381
|
idx = 2;
|
|
382
382
|
var b = new parser_1.BlockPon([fake.clone(), fake.clone(), fake.clone()]);
|
|
383
383
|
b.tiles[idx] = t.clone().add(constants_1.OPERATOR.HORIZONTAL);
|
|
384
|
-
if (t.isNum() && fake.n == 5 && hand.get(t.
|
|
384
|
+
if (t.isNum() && fake.n == 5 && hand.get(t.t, 0) > 0)
|
|
385
385
|
b.tiles[(idx % 2) + 1].n = 0;
|
|
386
386
|
blocks.push(b);
|
|
387
|
-
if (t.isNum() && t.n == 5 && hand.get(t.
|
|
387
|
+
if (t.isNum() && t.n == 5 && hand.get(t.t, fake.n) == 3) {
|
|
388
388
|
var red = b.clone();
|
|
389
389
|
red.tiles[(idx % 2) + 1].n = 5;
|
|
390
390
|
blocks.push(red);
|
|
@@ -408,33 +408,33 @@ var Controller = (function () {
|
|
|
408
408
|
fake.n = 5;
|
|
409
409
|
var blocks = [];
|
|
410
410
|
var left = fake.n - 2 >= 1 &&
|
|
411
|
-
hand.get(t.
|
|
412
|
-
hand.get(t.
|
|
411
|
+
hand.get(t.t, fake.n - 2) > 0 &&
|
|
412
|
+
hand.get(t.t, fake.n - 1) > 0;
|
|
413
413
|
var cloned = t.clone().add(constants_1.OPERATOR.HORIZONTAL).remove(constants_1.OPERATOR.TSUMO);
|
|
414
414
|
if (left)
|
|
415
415
|
blocks.push(new parser_1.BlockChi([
|
|
416
416
|
cloned,
|
|
417
|
-
new parser_1.Tile(t.
|
|
418
|
-
new parser_1.Tile(t.
|
|
417
|
+
new parser_1.Tile(t.t, fake.n - 1),
|
|
418
|
+
new parser_1.Tile(t.t, fake.n - 2),
|
|
419
419
|
]));
|
|
420
420
|
var right = fake.n + 2 <= 9 &&
|
|
421
|
-
hand.get(t.
|
|
422
|
-
hand.get(t.
|
|
421
|
+
hand.get(t.t, fake.n + 1) > 0 &&
|
|
422
|
+
hand.get(t.t, fake.n + 2) > 0;
|
|
423
423
|
if (right)
|
|
424
424
|
blocks.push(new parser_1.BlockChi([
|
|
425
425
|
cloned,
|
|
426
|
-
new parser_1.Tile(t.
|
|
427
|
-
new parser_1.Tile(t.
|
|
426
|
+
new parser_1.Tile(t.t, fake.n + 1),
|
|
427
|
+
new parser_1.Tile(t.t, fake.n + 2),
|
|
428
428
|
]));
|
|
429
429
|
var center = fake.n - 1 >= 1 &&
|
|
430
430
|
fake.n + 1 <= 9 &&
|
|
431
|
-
hand.get(t.
|
|
432
|
-
hand.get(t.
|
|
431
|
+
hand.get(t.t, fake.n - 1) > 0 &&
|
|
432
|
+
hand.get(t.t, fake.n + 1) > 0;
|
|
433
433
|
if (center)
|
|
434
434
|
blocks.push(new parser_1.BlockChi([
|
|
435
435
|
cloned,
|
|
436
|
-
new parser_1.Tile(t.
|
|
437
|
-
new parser_1.Tile(t.
|
|
436
|
+
new parser_1.Tile(t.t, fake.n - 1),
|
|
437
|
+
new parser_1.Tile(t.t, fake.n + 1),
|
|
438
438
|
]));
|
|
439
439
|
if (blocks.length == 0)
|
|
440
440
|
return false;
|
|
@@ -442,15 +442,15 @@ var Controller = (function () {
|
|
|
442
442
|
var b = blocks[0];
|
|
443
443
|
var tiles = this.cannotDiscardTile(blocks[0]);
|
|
444
444
|
var ltiles = hand.dec([b.tiles[1], b.tiles[2]]);
|
|
445
|
-
var cannotCall = tiles.reduce(function (acc, e) { return acc + hand.get(e.
|
|
445
|
+
var cannotCall = tiles.reduce(function (acc, e) { return acc + hand.get(e.t, e.n); }, 0) ==
|
|
446
446
|
2;
|
|
447
447
|
hand.inc(ltiles);
|
|
448
448
|
if (cannotCall)
|
|
449
449
|
return false;
|
|
450
450
|
}
|
|
451
|
-
var hasRed = hand.get(t.
|
|
451
|
+
var hasRed = hand.get(t.t, 0) > 0;
|
|
452
452
|
var reds = this.redPattern(blocks, hasRed);
|
|
453
|
-
if (reds.length > 0 && hand.get(t.
|
|
453
|
+
if (reds.length > 0 && hand.get(t.t, 5) == 1)
|
|
454
454
|
return reds;
|
|
455
455
|
return blocks.concat(reds);
|
|
456
456
|
};
|
|
@@ -504,15 +504,15 @@ var Controller = (function () {
|
|
|
504
504
|
Controller.prototype.cannotDiscardTile = function (called) {
|
|
505
505
|
var h = called.tiles[0].n;
|
|
506
506
|
var h1 = called.tiles[1].n;
|
|
507
|
-
var
|
|
507
|
+
var t = called.tiles[0].t;
|
|
508
508
|
if (h == 0)
|
|
509
509
|
h = 5;
|
|
510
510
|
if (h1 == 0)
|
|
511
511
|
h1 = 5;
|
|
512
512
|
if (h - 2 == h1)
|
|
513
|
-
return [new parser_1.Tile(
|
|
513
|
+
return [new parser_1.Tile(t, h - 3), new parser_1.Tile(t, h)];
|
|
514
514
|
if (h + 1 == h1)
|
|
515
|
-
return [new parser_1.Tile(
|
|
515
|
+
return [new parser_1.Tile(t, h + 3), new parser_1.Tile(t, h)];
|
|
516
516
|
return [];
|
|
517
517
|
};
|
|
518
518
|
Controller.prototype.doAnKan = function (w) {
|
|
@@ -520,17 +520,17 @@ var Controller = (function () {
|
|
|
520
520
|
var blocks = [];
|
|
521
521
|
if (hand.reached)
|
|
522
522
|
return false;
|
|
523
|
-
for (var _i = 0, _a = Object.values(constants_1.
|
|
524
|
-
var
|
|
525
|
-
for (var n = 1; n < hand.getArrayLen(
|
|
526
|
-
if (hand.get(
|
|
523
|
+
for (var _i = 0, _a = Object.values(constants_1.TYPE); _i < _a.length; _i++) {
|
|
524
|
+
var t = _a[_i];
|
|
525
|
+
for (var n = 1; n < hand.getArrayLen(t); n++) {
|
|
526
|
+
if (hand.get(t, n) == 4) {
|
|
527
527
|
var tiles = [
|
|
528
|
-
new parser_1.Tile(
|
|
529
|
-
new parser_1.Tile(
|
|
530
|
-
new parser_1.Tile(
|
|
531
|
-
new parser_1.Tile(
|
|
528
|
+
new parser_1.Tile(t, n),
|
|
529
|
+
new parser_1.Tile(t, n),
|
|
530
|
+
new parser_1.Tile(t, n),
|
|
531
|
+
new parser_1.Tile(t, n),
|
|
532
532
|
];
|
|
533
|
-
if (
|
|
533
|
+
if (t != constants_1.TYPE.Z && n == 5)
|
|
534
534
|
tiles[0].n = 0;
|
|
535
535
|
blocks.push(new parser_1.BlockAnKan(tiles));
|
|
536
536
|
}
|
|
@@ -555,10 +555,10 @@ var Controller = (function () {
|
|
|
555
555
|
for (var _i = 0, called_1 = called; _i < called_1.length; _i++) {
|
|
556
556
|
var c = called_1[_i];
|
|
557
557
|
var pick = c.tiles[0];
|
|
558
|
-
if (hand.get(pick.
|
|
558
|
+
if (hand.get(pick.t, pick.n) == 1) {
|
|
559
559
|
var cb = c.clone();
|
|
560
|
-
cb.tiles.push(new parser_1.Tile(pick.
|
|
561
|
-
if (pick.n == 5 && hand.get(pick.
|
|
560
|
+
cb.tiles.push(new parser_1.Tile(pick.t, pick.n, [constants_1.OPERATOR.HORIZONTAL]));
|
|
561
|
+
if (pick.n == 5 && hand.get(pick.t, 0) == 1)
|
|
562
562
|
cb.tiles[3].n == 0;
|
|
563
563
|
blocks.push(new parser_1.BlockShoKan(cb.tiles));
|
|
564
564
|
}
|
|
@@ -580,7 +580,7 @@ var Controller = (function () {
|
|
|
580
580
|
var fake = t.clone().remove(constants_1.OPERATOR.HORIZONTAL);
|
|
581
581
|
if (fake.isNum() && fake.n == 0)
|
|
582
582
|
fake.n = 5;
|
|
583
|
-
if (hand.get(fake.
|
|
583
|
+
if (hand.get(fake.t, fake.n) != 3)
|
|
584
584
|
return false;
|
|
585
585
|
var b = new parser_1.BlockDaiKan([
|
|
586
586
|
fake.clone(),
|
|
@@ -603,14 +603,14 @@ var Controller = (function () {
|
|
|
603
603
|
if (this.river.discards(w).length != 0)
|
|
604
604
|
return false;
|
|
605
605
|
var h = this.hand(w);
|
|
606
|
-
var num = h.get(constants_1.
|
|
607
|
-
h.get(constants_1.
|
|
608
|
-
h.get(constants_1.
|
|
609
|
-
h.get(constants_1.
|
|
610
|
-
h.get(constants_1.
|
|
611
|
-
h.get(constants_1.
|
|
612
|
-
for (var i = 0; i < h.getArrayLen(constants_1.
|
|
613
|
-
num += h.get(constants_1.
|
|
606
|
+
var num = h.get(constants_1.TYPE.M, 1) +
|
|
607
|
+
h.get(constants_1.TYPE.M, 9) +
|
|
608
|
+
h.get(constants_1.TYPE.S, 1) +
|
|
609
|
+
h.get(constants_1.TYPE.S, 9) +
|
|
610
|
+
h.get(constants_1.TYPE.P, 1) +
|
|
611
|
+
h.get(constants_1.TYPE.P, 9);
|
|
612
|
+
for (var i = 0; i < h.getArrayLen(constants_1.TYPE.Z); i++)
|
|
613
|
+
num += h.get(constants_1.TYPE.Z, i);
|
|
614
614
|
return num >= 9;
|
|
615
615
|
};
|
|
616
616
|
Controller.prototype.initialHands = function () {
|
|
@@ -777,7 +777,7 @@ var Observer = (function (_super) {
|
|
|
777
777
|
var ready = true;
|
|
778
778
|
for (var _i = 0, _a = Object.values(constants_1.WIND); _i < _a.length; _i++) {
|
|
779
779
|
var w = _a[_i];
|
|
780
|
-
ready && (ready = this.hand(w).get(constants_1.
|
|
780
|
+
ready && (ready = this.hand(w).get(constants_1.TYPE.BACK, 0) == 0);
|
|
781
781
|
}
|
|
782
782
|
if (!ready)
|
|
783
783
|
break;
|
|
@@ -833,7 +833,7 @@ function replaceTileBlock(obj) {
|
|
|
833
833
|
propValue != null &&
|
|
834
834
|
"tiles" in propValue &&
|
|
835
835
|
"type" in propValue) {
|
|
836
|
-
obj[key] = (0, parser_1.blockWrapper)(propValue.tiles.map(function (t) { return new parser_1.Tile(t.
|
|
836
|
+
obj[key] = (0, parser_1.blockWrapper)(propValue.tiles.map(function (t) { return new parser_1.Tile(t.t, t.n, t.ops); }), propValue.type);
|
|
837
837
|
}
|
|
838
838
|
else if (Array.isArray(propValue)) {
|
|
839
839
|
for (var i = 0; i < propValue.length; i++) {
|
|
@@ -848,7 +848,7 @@ function replaceTileBlock(obj) {
|
|
|
848
848
|
v != null &&
|
|
849
849
|
"tiles" in v &&
|
|
850
850
|
"type" in v)
|
|
851
|
-
propValue[i] = (0, parser_1.blockWrapper)(v.tiles.map(function (t) { return new parser_1.Tile(t.
|
|
851
|
+
propValue[i] = (0, parser_1.blockWrapper)(v.tiles.map(function (t) { return new parser_1.Tile(t.t, t.n, t.ops); }), v.type);
|
|
852
852
|
else
|
|
853
853
|
replaceTileBlock(propValue[i]);
|
|
854
854
|
}
|
|
@@ -41,9 +41,9 @@ var Efficiency = (function () {
|
|
|
41
41
|
Efficiency.candidateTiles = function (hand) {
|
|
42
42
|
var r = Number.POSITIVE_INFINITY;
|
|
43
43
|
var candidates = [];
|
|
44
|
-
for (var _i = 0, _a = Object.values(constants_1.
|
|
44
|
+
for (var _i = 0, _a = Object.values(constants_1.TYPE); _i < _a.length; _i++) {
|
|
45
45
|
var k = _a[_i];
|
|
46
|
-
if (k == constants_1.
|
|
46
|
+
if (k == constants_1.TYPE.BACK)
|
|
47
47
|
continue;
|
|
48
48
|
for (var n = 1; n < hand.getArrayLen(k); n++) {
|
|
49
49
|
if (hand.get(k, n) >= 4)
|
|
@@ -120,7 +120,7 @@ var PlayerEfficiency = (function () {
|
|
|
120
120
|
PlayerEfficiency.calcPriority = function (c, playerCandidate, doras) {
|
|
121
121
|
var tile = playerCandidate.tile;
|
|
122
122
|
var v = 0;
|
|
123
|
-
if (tile.
|
|
123
|
+
if (tile.t == constants_1.TYPE.Z) {
|
|
124
124
|
v = c.get(tile);
|
|
125
125
|
if (tile.n == 5 || tile.n == 6 || tile.n == 7)
|
|
126
126
|
v *= 2;
|
|
@@ -129,18 +129,18 @@ var PlayerEfficiency = (function () {
|
|
|
129
129
|
else {
|
|
130
130
|
var same = c.get(tile);
|
|
131
131
|
v += same * weight(tile, doras);
|
|
132
|
-
var np1 = c.get(new parser_1.Tile(tile.
|
|
133
|
-
var nm1 = c.get(new parser_1.Tile(tile.
|
|
132
|
+
var np1 = c.get(new parser_1.Tile(tile.t, tile.n + 1)), np2 = c.get(new parser_1.Tile(tile.t, tile.n + 2));
|
|
133
|
+
var nm1 = c.get(new parser_1.Tile(tile.t, tile.n - 1)), nm2 = c.get(new parser_1.Tile(tile.t, tile.n - 2));
|
|
134
134
|
var left = tile.n - 2 > 0 ? Math.min(nm1, nm2) : 0;
|
|
135
135
|
var right = tile.n + 2 <= 9 ? Math.min(np1, np2) : 0;
|
|
136
136
|
var cc = tile.n - 1 >= 1 && tile.n + 1 <= 9 ? Math.min(np1, nm1) : 0;
|
|
137
137
|
var centerLeft = Math.max(left, cc);
|
|
138
138
|
var centerRight = Math.max(cc, right);
|
|
139
139
|
v += same * weight(tile, doras);
|
|
140
|
-
v += left * weight(new parser_1.Tile(tile.
|
|
141
|
-
v += right * weight(new parser_1.Tile(tile.
|
|
142
|
-
v += centerLeft * weight(new parser_1.Tile(tile.
|
|
143
|
-
v += centerRight * weight(new parser_1.Tile(tile.
|
|
140
|
+
v += left * weight(new parser_1.Tile(tile.t, tile.n - 2), doras);
|
|
141
|
+
v += right * weight(new parser_1.Tile(tile.t, tile.n + 2), doras);
|
|
142
|
+
v += centerLeft * weight(new parser_1.Tile(tile.t, tile.n - 1), doras);
|
|
143
|
+
v += centerRight * weight(new parser_1.Tile(tile.t, tile.n + 1), doras);
|
|
144
144
|
if (tile.n == 0)
|
|
145
145
|
v * 2;
|
|
146
146
|
return v;
|
|
@@ -178,9 +178,9 @@ var RiskRank = (function () {
|
|
|
178
178
|
return max;
|
|
179
179
|
};
|
|
180
180
|
RiskRank.rankZ = function (c, targetUser, t) {
|
|
181
|
-
if (t.
|
|
181
|
+
if (t.t != constants_1.TYPE.Z)
|
|
182
182
|
throw new Error("expected KIND.Z but ".concat(t.toString()));
|
|
183
|
-
if (c.isSafeTile(t.
|
|
183
|
+
if (c.isSafeTile(t.t, t.n, targetUser))
|
|
184
184
|
return 0;
|
|
185
185
|
var remaining = c.get(t);
|
|
186
186
|
return Math.min(remaining, 3);
|
|
@@ -189,23 +189,23 @@ var RiskRank = (function () {
|
|
|
189
189
|
if (!t.isNum())
|
|
190
190
|
throw new Error("expected KIND.NUMBER but ".concat(t.toString()));
|
|
191
191
|
var n = t.n;
|
|
192
|
-
var
|
|
193
|
-
if (c.isSafeTile(
|
|
192
|
+
var type = t.t;
|
|
193
|
+
if (c.isSafeTile(type, n, targetUser))
|
|
194
194
|
return 0;
|
|
195
195
|
if (n == 1)
|
|
196
|
-
return c.isSafeTile(
|
|
196
|
+
return c.isSafeTile(type, 4, targetUser) ? 3 : 6;
|
|
197
197
|
if (n == 9)
|
|
198
|
-
return c.isSafeTile(
|
|
198
|
+
return c.isSafeTile(type, 6, targetUser) ? 3 : 6;
|
|
199
199
|
if (n == 2)
|
|
200
|
-
return c.isSafeTile(
|
|
200
|
+
return c.isSafeTile(type, 5, targetUser) ? 4 : 8;
|
|
201
201
|
if (n == 8)
|
|
202
|
-
return c.isSafeTile(
|
|
202
|
+
return c.isSafeTile(type, 5, targetUser) ? 4 : 8;
|
|
203
203
|
if (n == 3)
|
|
204
|
-
return c.isSafeTile(
|
|
204
|
+
return c.isSafeTile(type, 6, targetUser) ? 5 : 8;
|
|
205
205
|
if (n == 7)
|
|
206
|
-
return c.isSafeTile(
|
|
207
|
-
var left = c.isSafeTile(
|
|
208
|
-
var right = c.isSafeTile(
|
|
206
|
+
return c.isSafeTile(type, 4, targetUser) ? 5 : 8;
|
|
207
|
+
var left = c.isSafeTile(type, n - 3, targetUser);
|
|
208
|
+
var right = c.isSafeTile(type, n + 3, targetUser);
|
|
209
209
|
if (left && right)
|
|
210
210
|
return 4;
|
|
211
211
|
if (left || right)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Wind, Round } from "../constants";
|
|
2
|
-
import {
|
|
2
|
+
import { Type, Tile } from "../parser";
|
|
3
3
|
export declare class ScoreManager {
|
|
4
4
|
private reachValue;
|
|
5
5
|
private m;
|
|
@@ -83,7 +83,7 @@ export declare class Counter {
|
|
|
83
83
|
get(t: Tile): number;
|
|
84
84
|
dec(...tiles: Tile[]): void;
|
|
85
85
|
addTileToSafeMap(t: Tile, targetUser: Wind): void;
|
|
86
|
-
isSafeTile(k:
|
|
86
|
+
isSafeTile(k: Type, n: number, targetUser: Wind): boolean;
|
|
87
87
|
private key;
|
|
88
88
|
reset(): void;
|
|
89
89
|
}
|
|
@@ -153,19 +153,19 @@ var Counter = (function () {
|
|
|
153
153
|
if (disable === void 0) { disable = false; }
|
|
154
154
|
this.disable = disable;
|
|
155
155
|
this.c = (_a = {},
|
|
156
|
-
_a[constants_1.
|
|
157
|
-
_a[constants_1.
|
|
158
|
-
_a[constants_1.
|
|
159
|
-
_a[constants_1.
|
|
156
|
+
_a[constants_1.TYPE.M] = [1, 4, 4, 4, 4, 4, 4, 4, 4, 4],
|
|
157
|
+
_a[constants_1.TYPE.S] = [1, 4, 4, 4, 4, 4, 4, 4, 4, 4],
|
|
158
|
+
_a[constants_1.TYPE.P] = [1, 4, 4, 4, 4, 4, 4, 4, 4, 4],
|
|
159
|
+
_a[constants_1.TYPE.Z] = [0, 4, 4, 4, 4, 4, 4, 4],
|
|
160
160
|
_a);
|
|
161
161
|
this.safeMap = createWindMap({}, true);
|
|
162
162
|
}
|
|
163
163
|
Counter.prototype.get = function (t) {
|
|
164
|
-
if (t.
|
|
164
|
+
if (t.t == constants_1.TYPE.BACK)
|
|
165
165
|
return 0;
|
|
166
166
|
if (t.isNum() && t.n == 0)
|
|
167
|
-
return this.c[t.
|
|
168
|
-
return this.c[t.
|
|
167
|
+
return this.c[t.t][5];
|
|
168
|
+
return this.c[t.t][t.n];
|
|
169
169
|
};
|
|
170
170
|
Counter.prototype.dec = function () {
|
|
171
171
|
var tiles = [];
|
|
@@ -176,19 +176,19 @@ var Counter = (function () {
|
|
|
176
176
|
return;
|
|
177
177
|
for (var _a = 0, tiles_1 = tiles; _a < tiles_1.length; _a++) {
|
|
178
178
|
var t = tiles_1[_a];
|
|
179
|
-
if (t.
|
|
179
|
+
if (t.t == constants_1.TYPE.BACK)
|
|
180
180
|
continue;
|
|
181
181
|
if (this.get(t) <= 0)
|
|
182
182
|
throw new Error("cannot decrease ".concat(t.toString(), " due to zero"));
|
|
183
|
-
this.c[t.
|
|
183
|
+
this.c[t.t][t.n] -= 1;
|
|
184
184
|
if (t.isNum() && t.n == 0)
|
|
185
|
-
this.c[t.
|
|
185
|
+
this.c[t.t][5] -= 1;
|
|
186
186
|
}
|
|
187
187
|
};
|
|
188
188
|
Counter.prototype.addTileToSafeMap = function (t, targetUser) {
|
|
189
189
|
if (this.disable)
|
|
190
190
|
return;
|
|
191
|
-
this.safeMap[targetUser][this.key(t.
|
|
191
|
+
this.safeMap[targetUser][this.key(t.t, t.n)] = true;
|
|
192
192
|
};
|
|
193
193
|
Counter.prototype.isSafeTile = function (k, n, targetUser) {
|
|
194
194
|
return this.safeMap[targetUser][this.key(k, n)];
|
|
@@ -201,10 +201,10 @@ var Counter = (function () {
|
|
|
201
201
|
Counter.prototype.reset = function () {
|
|
202
202
|
var _a;
|
|
203
203
|
this.c = (_a = {},
|
|
204
|
-
_a[constants_1.
|
|
205
|
-
_a[constants_1.
|
|
206
|
-
_a[constants_1.
|
|
207
|
-
_a[constants_1.
|
|
204
|
+
_a[constants_1.TYPE.M] = [1, 4, 4, 4, 4, 4, 4, 4, 4, 4],
|
|
205
|
+
_a[constants_1.TYPE.S] = [1, 4, 4, 4, 4, 4, 4, 4, 4, 4],
|
|
206
|
+
_a[constants_1.TYPE.P] = [1, 4, 4, 4, 4, 4, 4, 4, 4, 4],
|
|
207
|
+
_a[constants_1.TYPE.Z] = [0, 4, 4, 4, 4, 4, 4, 4],
|
|
208
208
|
_a);
|
|
209
209
|
};
|
|
210
210
|
return Counter;
|
|
@@ -469,7 +469,7 @@ var createControllerMachine = function (c) {
|
|
|
469
469
|
context.missingMap[iam] = false;
|
|
470
470
|
for (var _i = 0, _b = Object.values(constants_1.WIND); _i < _b.length; _i++) {
|
|
471
471
|
var w = _b[_i];
|
|
472
|
-
var t = new parser_1.Tile(constants_1.
|
|
472
|
+
var t = new parser_1.Tile(constants_1.TYPE.BACK, 0);
|
|
473
473
|
if (w == iam)
|
|
474
474
|
t = drawn;
|
|
475
475
|
var e = {
|
|
@@ -69,17 +69,17 @@ var Wall = (function () {
|
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
71
|
else {
|
|
72
|
-
for (var _i = 0, _a = Object.values(constants_1.
|
|
73
|
-
var
|
|
74
|
-
if (
|
|
72
|
+
for (var _i = 0, _a = Object.values(constants_1.TYPE); _i < _a.length; _i++) {
|
|
73
|
+
var t = _a[_i];
|
|
74
|
+
if (t == constants_1.TYPE.BACK)
|
|
75
75
|
continue;
|
|
76
|
-
var values =
|
|
76
|
+
var values = t == constants_1.TYPE.Z ? [1, 2, 3, 4, 5, 6, 7] : [1, 2, 3, 4, 5, 6, 7, 8, 9];
|
|
77
77
|
for (var i = 0; i < 4; i++) {
|
|
78
78
|
for (var _b = 0, values_1 = values; _b < values_1.length; _b++) {
|
|
79
79
|
var n = values_1[_b];
|
|
80
|
-
if (
|
|
80
|
+
if (t != constants_1.TYPE.Z && i == 3 && n == 5)
|
|
81
81
|
n = 0;
|
|
82
|
-
this.walls.drawable.push(new parser_1.Tile(
|
|
82
|
+
this.walls.drawable.push(new parser_1.Tile(t, n));
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
}
|
|
@@ -103,11 +103,11 @@ var Wall = (function () {
|
|
|
103
103
|
};
|
|
104
104
|
Wall.clone = function (walls) {
|
|
105
105
|
return {
|
|
106
|
-
drawable: walls.drawable.map(function (t) { return new parser_1.Tile(t.
|
|
107
|
-
dead: walls.dead.map(function (t) { return new parser_1.Tile(t.
|
|
108
|
-
dora: walls.dora.map(function (t) { return new parser_1.Tile(t.
|
|
109
|
-
blindDora: walls.blindDora.map(function (t) { return new parser_1.Tile(t.
|
|
110
|
-
replacement: walls.replacement.map(function (t) { return new parser_1.Tile(t.
|
|
106
|
+
drawable: walls.drawable.map(function (t) { return new parser_1.Tile(t.t, t.n); }),
|
|
107
|
+
dead: walls.dead.map(function (t) { return new parser_1.Tile(t.t, t.n); }),
|
|
108
|
+
dora: walls.dora.map(function (t) { return new parser_1.Tile(t.t, t.n); }),
|
|
109
|
+
blindDora: walls.blindDora.map(function (t) { return new parser_1.Tile(t.t, t.n); }),
|
|
110
|
+
replacement: walls.replacement.map(function (t) { return new parser_1.Tile(t.t, t.n); }),
|
|
111
111
|
};
|
|
112
112
|
};
|
|
113
113
|
return Wall;
|
package/dist/mjs/lib/image.js
CHANGED
|
@@ -98,8 +98,8 @@ var BaseHelper = (function () {
|
|
|
98
98
|
if (tile == 100 || tile == 1000) {
|
|
99
99
|
return tile == 100 ? "stick100" : "stick1000";
|
|
100
100
|
}
|
|
101
|
-
var n = tile.
|
|
102
|
-
return "".concat(tile.
|
|
101
|
+
var n = tile.t == constants_1.TYPE.BACK ? 0 : tile.n;
|
|
102
|
+
return "".concat(tile.t).concat(n);
|
|
103
103
|
};
|
|
104
104
|
BaseHelper.prototype.buildURL = function (tile) {
|
|
105
105
|
var filename = "".concat(BaseHelper.buildID(tile), ".svg");
|
|
@@ -223,14 +223,14 @@ var getBlockCreators = function (h) {
|
|
|
223
223
|
var width = h.tileWidth * 4;
|
|
224
224
|
var height = h.tileHeight;
|
|
225
225
|
var zp = block.tiles.filter(function (v) {
|
|
226
|
-
return v.
|
|
226
|
+
return v.t !== constants_1.TYPE.BACK;
|
|
227
227
|
});
|
|
228
228
|
(0, assert_1.default)(zp != null && zp.length == 2);
|
|
229
229
|
var g = h.createBlockHandDiscard([
|
|
230
|
-
new parser_1.Tile(constants_1.
|
|
230
|
+
new parser_1.Tile(constants_1.TYPE.BACK, 0),
|
|
231
231
|
zp[0],
|
|
232
232
|
zp[1],
|
|
233
|
-
new parser_1.Tile(constants_1.
|
|
233
|
+
new parser_1.Tile(constants_1.TYPE.BACK, 0),
|
|
234
234
|
]);
|
|
235
235
|
return { width: width, height: height, e: g };
|
|
236
236
|
},
|
|
@@ -323,13 +323,13 @@ var getValidIDs = function () {
|
|
|
323
323
|
var values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
|
324
324
|
var ids = [];
|
|
325
325
|
var _loop_1 = function (kind) {
|
|
326
|
-
if (kind == constants_1.
|
|
326
|
+
if (kind == constants_1.TYPE.BACK) {
|
|
327
327
|
ids.push(BaseHelper.buildID(new parser_1.Tile(kind, 0)));
|
|
328
328
|
return "continue";
|
|
329
329
|
}
|
|
330
330
|
ids.push.apply(ids, values.map(function (v) { return BaseHelper.buildID(new parser_1.Tile(kind, v)); }).flat());
|
|
331
331
|
};
|
|
332
|
-
for (var _i = 0, _a = Object.values(constants_1.
|
|
332
|
+
for (var _i = 0, _a = Object.values(constants_1.TYPE); _i < _a.length; _i++) {
|
|
333
333
|
var kind = _a[_i];
|
|
334
334
|
_loop_1(kind);
|
|
335
335
|
}
|
|
@@ -254,7 +254,7 @@ var toWinResult = function (tehais, fan, fu, yaku, hora_points, deltas, kyoku) {
|
|
|
254
254
|
point: hora_points,
|
|
255
255
|
hand: [],
|
|
256
256
|
params: {
|
|
257
|
-
doraMarkers: [new parser_1.Tile(constants_1.
|
|
257
|
+
doraMarkers: [new parser_1.Tile(constants_1.TYPE.BACK, 0)],
|
|
258
258
|
round: "1w1",
|
|
259
259
|
myWind: "1w",
|
|
260
260
|
},
|
|
@@ -307,17 +307,17 @@ var toBakaze = function (b) {
|
|
|
307
307
|
var toTile = function (hai) {
|
|
308
308
|
var idx = Z.findIndex(function (v) { return v == hai; });
|
|
309
309
|
if (idx >= 0)
|
|
310
|
-
return new parser_1.Tile(constants_1.
|
|
310
|
+
return new parser_1.Tile(constants_1.TYPE.Z, idx);
|
|
311
311
|
idx = M.findIndex(function (v) { return v == hai; });
|
|
312
312
|
if (idx >= 0)
|
|
313
|
-
return new parser_1.Tile(constants_1.
|
|
313
|
+
return new parser_1.Tile(constants_1.TYPE.M, idx);
|
|
314
314
|
idx = S.findIndex(function (v) { return v == hai; });
|
|
315
315
|
if (idx >= 0)
|
|
316
|
-
return new parser_1.Tile(constants_1.
|
|
316
|
+
return new parser_1.Tile(constants_1.TYPE.S, idx);
|
|
317
317
|
idx = P.findIndex(function (v) { return v == hai; });
|
|
318
318
|
if (idx >= 0)
|
|
319
|
-
return new parser_1.Tile(constants_1.
|
|
320
|
-
return new parser_1.Tile(constants_1.
|
|
319
|
+
return new parser_1.Tile(constants_1.TYPE.P, idx);
|
|
320
|
+
return new parser_1.Tile(constants_1.TYPE.BACK, 0);
|
|
321
321
|
};
|
|
322
322
|
var toTiles = function (hais) {
|
|
323
323
|
var tiles = [];
|
|
@@ -332,16 +332,16 @@ var toHais = function (tiles) {
|
|
|
332
332
|
for (var _i = 0, tiles_1 = tiles; _i < tiles_1.length; _i++) {
|
|
333
333
|
var tile = tiles_1[_i];
|
|
334
334
|
var n = tile.n;
|
|
335
|
-
var
|
|
336
|
-
if (
|
|
335
|
+
var type = tile.t;
|
|
336
|
+
if (type == constants_1.TYPE.Z)
|
|
337
337
|
hais.push(Z[n]);
|
|
338
|
-
if (
|
|
338
|
+
if (type == constants_1.TYPE.M)
|
|
339
339
|
hais.push(M[n]);
|
|
340
|
-
if (
|
|
340
|
+
if (type == constants_1.TYPE.S)
|
|
341
341
|
hais.push(S[n]);
|
|
342
|
-
if (
|
|
342
|
+
if (type == constants_1.TYPE.P)
|
|
343
343
|
hais.push(P[n]);
|
|
344
|
-
if (
|
|
344
|
+
if (type == constants_1.TYPE.BACK)
|
|
345
345
|
hais.push(UNSCREEN);
|
|
346
346
|
}
|
|
347
347
|
return hais;
|
package/dist/mjs/lib/parser.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { BLOCK, OPERATOR,
|
|
1
|
+
import { BLOCK, OPERATOR, TYPE, INPUT_SEPARATOR } from "./constants";
|
|
2
2
|
type Separator = typeof INPUT_SEPARATOR;
|
|
3
3
|
export declare const tileSortFunc: (i: Tile, j: Tile) => number;
|
|
4
|
-
export type
|
|
5
|
-
export declare function
|
|
4
|
+
export type Type = (typeof TYPE)[keyof typeof TYPE];
|
|
5
|
+
export declare function isType(v: string): [Type, boolean];
|
|
6
6
|
type Operator = (typeof OPERATOR)[keyof typeof OPERATOR];
|
|
7
7
|
export declare class Tile {
|
|
8
|
-
|
|
8
|
+
t: Type;
|
|
9
9
|
n: number;
|
|
10
10
|
ops: Operator[];
|
|
11
|
-
constructor(
|
|
11
|
+
constructor(t: Type, n: number, ops?: Operator[]);
|
|
12
12
|
toString(): string;
|
|
13
13
|
clone(): Tile;
|
|
14
14
|
has(op: Operator): boolean;
|