shogiops 0.6.0 → 0.8.1

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.
Files changed (99) hide show
  1. package/README.md +8 -12
  2. package/attacks.d.ts +2 -2
  3. package/attacks.js +50 -66
  4. package/attacks.js.map +1 -1
  5. package/board.d.ts +2 -5
  6. package/board.js +46 -63
  7. package/board.js.map +1 -1
  8. package/compat.d.ts +2 -4
  9. package/compat.js +13 -36
  10. package/compat.js.map +1 -1
  11. package/debug.d.ts +3 -6
  12. package/debug.js +14 -47
  13. package/debug.js.map +1 -1
  14. package/hand.d.ts +1 -1
  15. package/hand.js +10 -15
  16. package/hand.js.map +1 -1
  17. package/index.d.ts +18 -21
  18. package/index.js +19 -63
  19. package/index.js.map +1 -1
  20. package/notation/csa/csa.d.ts +6 -7
  21. package/notation/csa/csa.js +74 -96
  22. package/notation/csa/csa.js.map +1 -1
  23. package/notation/japanese.d.ts +2 -2
  24. package/notation/japanese.js +25 -29
  25. package/notation/japanese.js.map +1 -1
  26. package/notation/kif/kif.d.ts +11 -12
  27. package/notation/kif/kif.js +89 -113
  28. package/notation/kif/kif.js.map +1 -1
  29. package/notation/kif/kifHandicaps.js +2 -7
  30. package/notation/kif/kifHandicaps.js.map +1 -1
  31. package/notation/kitaoKawasaki.d.ts +2 -2
  32. package/notation/kitaoKawasaki.js +12 -16
  33. package/notation/kitaoKawasaki.js.map +1 -1
  34. package/notation/notationUtil.d.ts +3 -3
  35. package/notation/notationUtil.js +35 -36
  36. package/notation/notationUtil.js.map +1 -1
  37. package/notation/western.d.ts +2 -2
  38. package/notation/western.js +11 -15
  39. package/notation/western.js.map +1 -1
  40. package/notation/westernEngine.d.ts +2 -2
  41. package/notation/westernEngine.js +11 -15
  42. package/notation/westernEngine.js.map +1 -1
  43. package/package.json +16 -11
  44. package/sfen.d.ts +9 -18
  45. package/sfen.js +87 -94
  46. package/sfen.js.map +1 -1
  47. package/shogi.d.ts +5 -11
  48. package/shogi.js +124 -140
  49. package/shogi.js.map +1 -1
  50. package/squareSet.d.ts +15 -16
  51. package/squareSet.js +242 -175
  52. package/squareSet.js.map +1 -1
  53. package/src/attacks.ts +33 -31
  54. package/src/board.ts +33 -49
  55. package/src/compat.ts +3 -21
  56. package/src/debug.ts +6 -33
  57. package/src/hand.ts +1 -1
  58. package/src/index.ts +18 -24
  59. package/src/notation/csa/csa.ts +40 -45
  60. package/src/notation/japanese.ts +16 -16
  61. package/src/notation/kif/kif.ts +59 -67
  62. package/src/notation/kitaoKawasaki.ts +7 -7
  63. package/src/notation/notationUtil.ts +28 -17
  64. package/src/notation/western.ts +5 -5
  65. package/src/notation/westernEngine.ts +5 -5
  66. package/src/sfen.ts +65 -59
  67. package/src/shogi.ts +32 -44
  68. package/src/squareSet.ts +240 -158
  69. package/src/types.ts +25 -4
  70. package/src/util.ts +20 -14
  71. package/src/variant.ts +25 -16
  72. package/src/variantUtil.ts +25 -22
  73. package/types.d.ts +7 -3
  74. package/types.js +24 -13
  75. package/types.js.map +1 -1
  76. package/util.d.ts +2 -1
  77. package/util.js +40 -55
  78. package/util.js.map +1 -1
  79. package/variant.d.ts +7 -8
  80. package/variant.js +17 -28
  81. package/variant.js.map +1 -1
  82. package/variantUtil.d.ts +5 -5
  83. package/variantUtil.js +30 -41
  84. package/variantUtil.js.map +1 -1
  85. package/hash.d.ts +0 -8
  86. package/hash.js +0 -39
  87. package/hash.js.map +0 -1
  88. package/notation/kitaokawasaki.d.ts +0 -0
  89. package/notation/kitaokawasaki.js +0 -2
  90. package/notation/kitaokawasaki.js.map +0 -1
  91. package/setup.d.ts +0 -10
  92. package/setup.js +0 -15
  93. package/setup.js.map +0 -1
  94. package/src/hash.ts +0 -36
  95. package/src/setup.ts +0 -19
  96. package/src/transform.ts +0 -42
  97. package/transform.d.ts +0 -8
  98. package/transform.js +0 -47
  99. package/transform.js.map +0 -1
package/README.md CHANGED
@@ -1,35 +1,31 @@
1
1
  # shogiops
2
2
 
3
3
  [![Test](https://github.com/WandererXII/shogiops/workflows/Test/badge.svg)](https://github.com/WandererXII/shogiops/actions)
4
+ [![npm](https://img.shields.io/npm/v/shogiops)](https://www.npmjs.com/package/shogiops)
4
5
 
5
- Shogi and operations in TypeScript forked from [chessops](https://github.com/niklasf/chessops).
6
+ Shogi and operations in TypeScript forked from [chessops](https://github.com/niklasf/chessops), rewritten for shogi.
6
7
 
7
8
  ## Features
8
9
 
9
10
  - Read and write SFEN
10
- - Vocabulary (Square, SquareSet, Color, Role, Piece, Board, Setup, Position)
11
+ - Vocabulary (Square, SquareSet, Color, Role, Piece, Board, Position)
11
12
  - Shogi
12
13
  - Move making
13
14
  - Legal move and drop move generation
14
15
  - Game end and outcome
15
16
  - Setup validation
16
17
  - Attacks and rays using hyperbola quintessence
17
- - Read and write USI move notation
18
- - Read and write KIF notation
19
- - Read and write CSA notation
20
- - Write various move notations
18
+ - Read and write USI, Japanese, Western and Kitao-Kawasaki move notation
19
+ - Read and write KIF and CSA notation
20
+ - Currently two variants supported - shogi, minishogi. More to come later!
21
21
  - [Compatibility with lishogi](https://lishogi.org)
22
- - [Compatibility with shogiground](https://github.com/WandererXII/lishogi/tree/master/ui/shogiground)
23
-
24
- #### Not yet fully supported:
25
-
26
- - Position hashing
22
+ - [Compatibility with shogiground](https://github.com/WandererXII/shogiground)
27
23
 
28
24
  [File an issue](https://github.com/WandererXII/shogiops/issues/new) to request more or report a bug.
29
25
 
30
26
  ## Example
31
27
 
32
- Test directory has a lot of examples.
28
+ Test directory has a lot of examples and use-cases.
33
29
 
34
30
  ```javascript
35
31
  import { parseUsi } from 'shogiops/util';
package/attacks.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { Square, Piece, Color } from './types';
2
- import { SquareSet } from './squareSet';
1
+ import { Square, Piece, Color } from './types.js';
2
+ import { SquareSet } from './squareSet.js';
3
3
  export declare function kingAttacks(square: Square): SquareSet;
4
4
  export declare function knightAttacks(color: Color, square: Square): SquareSet;
5
5
  export declare function silverAttacks(color: Color, square: Square): SquareSet;
package/attacks.js CHANGED
@@ -1,13 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.between = exports.ray = exports.attacks = exports.dragonAttacks = exports.horseAttacks = exports.lanceAttacks = exports.rookAttacks = exports.bishopAttacks = exports.pawnAttacks = exports.goldAttacks = exports.silverAttacks = exports.knightAttacks = exports.kingAttacks = void 0;
4
- const util_1 = require("./util");
5
- const squareSet_1 = require("./squareSet");
1
+ import { squareFile, squareRank } from './util.js';
2
+ import { SquareSet } from './squareSet.js';
6
3
  function computeRange(square, deltas) {
7
- let range = squareSet_1.SquareSet.empty();
4
+ let range = SquareSet.empty();
8
5
  for (const delta of deltas) {
9
6
  const sq = square + delta;
10
- if (0 <= sq && sq < 81 && Math.abs((0, util_1.squareFile)(square) - (0, util_1.squareFile)(sq)) <= 2) {
7
+ if (0 <= sq && sq < 256 && Math.abs(squareFile(square) - squareFile(sq)) <= 2) {
11
8
  range = range.with(sq);
12
9
  }
13
10
  }
@@ -15,103 +12,93 @@ function computeRange(square, deltas) {
15
12
  }
16
13
  function tabulate(f) {
17
14
  const table = [];
18
- for (let square = 0; square < 81; square++)
15
+ for (let square = 0; square < 256; square++)
19
16
  table[square] = f(square);
20
17
  return table;
21
18
  }
22
- const KING_ATTACKS = tabulate(sq => computeRange(sq, [-10, -9, -8, -1, 1, 8, 9, 10]));
19
+ const KING_ATTACKS = tabulate(sq => computeRange(sq, [-17, -16, -15, -1, 1, 15, 16, 17]));
23
20
  const KNIGHT_ATTACKS = {
24
- sente: tabulate(sq => computeRange(sq, [17, 19])),
25
- gote: tabulate(sq => computeRange(sq, [-17, -19])),
21
+ sente: tabulate(sq => computeRange(sq, [-31, -33])),
22
+ gote: tabulate(sq => computeRange(sq, [31, 33])),
26
23
  };
27
24
  const PAWN_ATTACKS = {
28
- sente: tabulate(sq => computeRange(sq, [9])),
29
- gote: tabulate(sq => computeRange(sq, [-9])),
25
+ sente: tabulate(sq => computeRange(sq, [-16])),
26
+ gote: tabulate(sq => computeRange(sq, [16])),
30
27
  };
31
28
  const SILVER_ATTACKS = {
32
- sente: tabulate(sq => computeRange(sq, [-10, -8, 8, 9, 10])),
33
- gote: tabulate(sq => computeRange(sq, [-10, -9, -8, 8, 10])),
29
+ sente: tabulate(sq => computeRange(sq, [17, 15, -15, -16, -17])),
30
+ gote: tabulate(sq => computeRange(sq, [17, 16, 15, -15, -17])),
34
31
  };
35
32
  const GOLD_ATTACKS = {
36
- sente: tabulate(sq => computeRange(sq, [-9, -1, 1, 8, 9, 10])),
37
- gote: tabulate(sq => computeRange(sq, [-10, -9, -8, -1, 1, 9])),
33
+ sente: tabulate(sq => computeRange(sq, [16, 1, -1, -15, -16, -17])),
34
+ gote: tabulate(sq => computeRange(sq, [17, 16, 15, 1, -1, -16])),
38
35
  };
39
- function kingAttacks(square) {
36
+ export function kingAttacks(square) {
40
37
  return KING_ATTACKS[square];
41
38
  }
42
- exports.kingAttacks = kingAttacks;
43
- function knightAttacks(color, square) {
39
+ export function knightAttacks(color, square) {
44
40
  return KNIGHT_ATTACKS[color][square];
45
41
  }
46
- exports.knightAttacks = knightAttacks;
47
- function silverAttacks(color, square) {
42
+ export function silverAttacks(color, square) {
48
43
  return SILVER_ATTACKS[color][square];
49
44
  }
50
- exports.silverAttacks = silverAttacks;
51
- function goldAttacks(color, square) {
45
+ export function goldAttacks(color, square) {
52
46
  return GOLD_ATTACKS[color][square];
53
47
  }
54
- exports.goldAttacks = goldAttacks;
55
- function pawnAttacks(color, square) {
48
+ export function pawnAttacks(color, square) {
56
49
  return PAWN_ATTACKS[color][square];
57
50
  }
58
- exports.pawnAttacks = pawnAttacks;
59
- const FILE_RANGE = tabulate(sq => squareSet_1.SquareSet.fromFile((0, util_1.squareFile)(sq)).without(sq));
60
- const RANK_RANGE = tabulate(sq => squareSet_1.SquareSet.fromRank((0, util_1.squareRank)(sq)).without(sq));
61
- const FORW_RANGE = tabulate(sq => squareSet_1.SquareSet.forwardRanks((0, util_1.squareRank)(sq)).without(sq));
62
- const BACK_RANGE = tabulate(sq => squareSet_1.SquareSet.backwardRanks((0, util_1.squareRank)(sq)).without(sq));
51
+ const FILE_RANGE = tabulate(sq => SquareSet.fromFile(squareFile(sq)).without(sq));
52
+ const RANK_RANGE = tabulate(sq => SquareSet.fromRank(squareRank(sq)).without(sq));
53
+ const FORW_RANGE = tabulate(sq => SquareSet.ranksAbove(squareRank(sq)).without(sq));
54
+ const BACK_RANGE = tabulate(sq => SquareSet.ranksBelow(squareRank(sq)).without(sq));
63
55
  const DIAG_RANGE = tabulate(sq => {
64
- const diag = new squareSet_1.SquareSet(0x100401, 0x802008, 0x4010040);
65
- const shift = 9 * ((0, util_1.squareRank)(sq) - (0, util_1.squareFile)(sq));
66
- return (shift >= 0 ? diag.shl81(shift) : diag.shr81(-shift)).without(sq);
56
+ const diag = new SquareSet([0x20001, 0x80004, 0x200010, 0x800040, 0x2000100, 0x8000400, 0x20001000, 0x80004000]);
57
+ const shift = 16 * (squareRank(sq) - squareFile(sq));
58
+ return (shift >= 0 ? diag.shl256(shift) : diag.shr256(-shift)).without(sq);
67
59
  });
68
60
  const ANTI_DIAG_RANGE = tabulate(sq => {
69
- const diag = new squareSet_1.SquareSet(0x1010100, 0x202020, 0x40404);
70
- const shift = 9 * ((0, util_1.squareRank)(sq) + (0, util_1.squareFile)(sq) - 8);
71
- return (shift >= 0 ? diag.shl81(shift) : diag.shr81(-shift)).without(sq);
61
+ const diag = new SquareSet([0x40008000, 0x10002000, 0x4000800, 0x1000200, 0x400080, 0x100020, 0x40008, 0x10002]);
62
+ const shift = 16 * (squareRank(sq) + squareFile(sq) - 15);
63
+ return (shift >= 0 ? diag.shl256(shift) : diag.shr256(-shift)).without(sq);
72
64
  });
73
65
  function hyperbola(bit, range, occupied) {
74
66
  let forward = occupied.intersect(range);
75
- let reverse = forward.bswap81(); // Assumes no more than 1 bit per rank
76
- forward = forward.minus81(bit);
77
- reverse = reverse.minus81(bit.bswap81());
78
- return forward.xor(reverse.bswap81()).intersect(range);
67
+ let reverse = forward.rowSwap256(); // Assumes no more than 1 bit per rank
68
+ forward = forward.minus256(bit);
69
+ reverse = reverse.minus256(bit.rowSwap256());
70
+ return forward.xor(reverse.rowSwap256()).intersect(range);
79
71
  }
80
72
  function fileAttacks(square, occupied) {
81
- return hyperbola(squareSet_1.SquareSet.fromSquare(square), FILE_RANGE[square], occupied);
73
+ return hyperbola(SquareSet.fromSquare(square), FILE_RANGE[square], occupied);
82
74
  }
83
75
  function rankAttacks(square, occupied) {
84
76
  const range = RANK_RANGE[square];
85
77
  let forward = occupied.intersect(range);
86
- let reverse = forward.rbit81();
87
- forward = forward.minus81(squareSet_1.SquareSet.fromSquare(square));
88
- reverse = reverse.minus81(squareSet_1.SquareSet.fromSquare(80 - square));
89
- return forward.xor(reverse.rbit81()).intersect(range);
78
+ let reverse = forward.rbit256();
79
+ forward = forward.minus256(SquareSet.fromSquare(square));
80
+ reverse = reverse.minus256(SquareSet.fromSquare(255 - square));
81
+ return forward.xor(reverse.rbit256()).intersect(range);
90
82
  }
91
- function bishopAttacks(square, occupied) {
92
- const bit = squareSet_1.SquareSet.fromSquare(square);
83
+ export function bishopAttacks(square, occupied) {
84
+ const bit = SquareSet.fromSquare(square);
93
85
  return hyperbola(bit, DIAG_RANGE[square], occupied).xor(hyperbola(bit, ANTI_DIAG_RANGE[square], occupied));
94
86
  }
95
- exports.bishopAttacks = bishopAttacks;
96
- function rookAttacks(square, occupied) {
87
+ export function rookAttacks(square, occupied) {
97
88
  return fileAttacks(square, occupied).xor(rankAttacks(square, occupied));
98
89
  }
99
- exports.rookAttacks = rookAttacks;
100
- function lanceAttacks(color, square, occupied) {
90
+ export function lanceAttacks(color, square, occupied) {
101
91
  return color === 'sente'
102
92
  ? fileAttacks(square, occupied).intersect(FORW_RANGE[square])
103
93
  : fileAttacks(square, occupied).intersect(BACK_RANGE[square]);
104
94
  }
105
- exports.lanceAttacks = lanceAttacks;
106
- function horseAttacks(square, occupied) {
95
+ export function horseAttacks(square, occupied) {
107
96
  return bishopAttacks(square, occupied).union(kingAttacks(square));
108
97
  }
109
- exports.horseAttacks = horseAttacks;
110
- function dragonAttacks(square, occupied) {
98
+ export function dragonAttacks(square, occupied) {
111
99
  return rookAttacks(square, occupied).union(kingAttacks(square));
112
100
  }
113
- exports.dragonAttacks = dragonAttacks;
114
- function attacks(piece, square, occupied) {
101
+ export function attacks(piece, square, occupied) {
115
102
  switch (piece.role) {
116
103
  case 'pawn':
117
104
  return pawnAttacks(piece.color, square);
@@ -139,9 +126,8 @@ function attacks(piece, square, occupied) {
139
126
  return kingAttacks(square);
140
127
  }
141
128
  }
142
- exports.attacks = attacks;
143
- function ray(a, b) {
144
- const other = squareSet_1.SquareSet.fromSquare(b);
129
+ export function ray(a, b) {
130
+ const other = SquareSet.fromSquare(b);
145
131
  if (RANK_RANGE[a].intersects(other))
146
132
  return RANK_RANGE[a].with(a);
147
133
  if (ANTI_DIAG_RANGE[a].intersects(other))
@@ -150,13 +136,11 @@ function ray(a, b) {
150
136
  return DIAG_RANGE[a].with(a);
151
137
  if (FILE_RANGE[a].intersects(other))
152
138
  return FILE_RANGE[a].with(a);
153
- return squareSet_1.SquareSet.empty();
139
+ return SquareSet.empty();
154
140
  }
155
- exports.ray = ray;
156
- function between(a, b) {
141
+ export function between(a, b) {
157
142
  return ray(a, b)
158
- .intersect(squareSet_1.SquareSet.full().shl81(a).xor(squareSet_1.SquareSet.full().shl81(b)))
143
+ .intersect(SquareSet.full().shl256(a).xor(SquareSet.full().shl256(b)))
159
144
  .withoutFirst();
160
145
  }
161
- exports.between = between;
162
146
  //# sourceMappingURL=attacks.js.map
package/attacks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"attacks.js","sourceRoot":"","sources":["src/attacks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attacks.js","sourceRoot":"","sources":["src/attacks.ts"],"names":[],"mappings":"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"}
package/board.d.ts CHANGED
@@ -1,8 +1,6 @@
1
- import { Square, Color, Role, Piece } from './types';
2
- import { SquareSet } from './squareSet';
1
+ import { Square, Color, Role, Piece } from './types.js';
2
+ import { SquareSet } from './squareSet.js';
3
3
  export declare class Board implements Iterable<[Square, Piece]> {
4
- numberOfFiles: number;
5
- numberOfRanks: number;
6
4
  occupied: SquareSet;
7
5
  gote: SquareSet;
8
6
  sente: SquareSet;
@@ -25,7 +23,6 @@ export declare class Board implements Iterable<[Square, Piece]> {
25
23
  reset(): void;
26
24
  static minishogi(): Board;
27
25
  static empty(): Board;
28
- clear(): void;
29
26
  clone(): Board;
30
27
  equals(other: Board): boolean;
31
28
  getColor(square: Square): Color | undefined;
package/board.js CHANGED
@@ -1,9 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Board = void 0;
4
- const types_1 = require("./types");
5
- const squareSet_1 = require("./squareSet");
6
- class Board {
1
+ import { COLORS, ROLES } from './types.js';
2
+ import { SquareSet } from './squareSet.js';
3
+ export class Board {
7
4
  constructor() { }
8
5
  static default() {
9
6
  const board = new Board();
@@ -11,80 +8,67 @@ class Board {
11
8
  return board;
12
9
  }
13
10
  reset() {
14
- this.numberOfFiles = 9;
15
- this.numberOfRanks = 9;
16
- this.occupied = new squareSet_1.SquareSet(0x7fd05ff, 0x0, 0x7fd05ff);
17
- this.sente = new squareSet_1.SquareSet(0x7fd05ff, 0x0, 0x0);
18
- this.gote = new squareSet_1.SquareSet(0x0, 0x0, 0x7fd05ff);
19
- this.pawn = new squareSet_1.SquareSet(0x7fc0000, 0x0, 0x1ff);
20
- this.lance = new squareSet_1.SquareSet(0x101, 0x0, 0x4040000);
21
- this.knight = new squareSet_1.SquareSet(0x82, 0x0, 0x2080000);
22
- this.silver = new squareSet_1.SquareSet(0x44, 0x0, 0x1100000);
23
- this.gold = new squareSet_1.SquareSet(0x28, 0x0, 0xa00000);
24
- this.bishop = new squareSet_1.SquareSet(0x400, 0x0, 0x10000);
25
- this.rook = new squareSet_1.SquareSet(0x10000, 0x0, 0x400);
26
- this.king = new squareSet_1.SquareSet(0x10, 0x0, 0x400000);
27
- this.tokin = squareSet_1.SquareSet.empty();
28
- this.promotedlance = squareSet_1.SquareSet.empty();
29
- this.promotedknight = squareSet_1.SquareSet.empty();
30
- this.promotedsilver = squareSet_1.SquareSet.empty();
31
- this.horse = squareSet_1.SquareSet.empty();
32
- this.dragon = squareSet_1.SquareSet.empty();
11
+ this.occupied = new SquareSet([0x8201ff, 0x1ff, 0x0, 0x8201ff, 0x1ff, 0x0, 0x0, 0x0]);
12
+ this.sente = new SquareSet([0x0, 0x0, 0x0, 0x8201ff, 0x1ff, 0x0, 0x0, 0x0]);
13
+ this.gote = new SquareSet([0x8201ff, 0x1ff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0]);
14
+ this.pawn = new SquareSet([0x0, 0x1ff, 0x0, 0x1ff, 0x0, 0x0, 0x0, 0x0]);
15
+ this.lance = new SquareSet([0x101, 0x0, 0x0, 0x0, 0x101, 0x0, 0x0, 0x0]);
16
+ this.knight = new SquareSet([0x82, 0x0, 0x0, 0x0, 0x82, 0x0, 0x0, 0x0]);
17
+ this.silver = new SquareSet([0x44, 0x0, 0x0, 0x0, 0x44, 0x0, 0x0, 0x0]);
18
+ this.gold = new SquareSet([0x28, 0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0]);
19
+ this.bishop = new SquareSet([0x20000, 0x0, 0x0, 0x800000, 0x0, 0x0, 0x0, 0x0]);
20
+ this.rook = new SquareSet([0x800000, 0x0, 0x0, 0x20000, 0x0, 0x0, 0x0, 0x0]);
21
+ this.king = new SquareSet([0x10, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0]);
22
+ this.tokin = SquareSet.empty();
23
+ this.promotedlance = SquareSet.empty();
24
+ this.promotedknight = SquareSet.empty();
25
+ this.promotedsilver = SquareSet.empty();
26
+ this.horse = SquareSet.empty();
27
+ this.dragon = SquareSet.empty();
33
28
  }
34
29
  static minishogi() {
35
30
  const board = new Board();
36
- board.numberOfFiles = 5;
37
- board.numberOfRanks = 5;
38
- board.occupied = new squareSet_1.SquareSet(0x0, 0x43e000, 0x7c20000);
39
- board.sente = new squareSet_1.SquareSet(0x0, 0x43e000, 0x0);
40
- board.gote = new squareSet_1.SquareSet(0x0, 0x0, 0x7c20000);
41
- board.pawn = new squareSet_1.SquareSet(0x0, 0x400000, 0x20000);
42
- board.lance = new squareSet_1.SquareSet(0x0, 0x0, 0x0);
43
- board.knight = new squareSet_1.SquareSet(0x0, 0x0, 0x0);
44
- board.silver = new squareSet_1.SquareSet(0x0, 0x8000, 0x1000000);
45
- board.gold = new squareSet_1.SquareSet(0x0, 0x4000, 0x2000000);
46
- board.bishop = new squareSet_1.SquareSet(0x0, 0x10000, 0x800000);
47
- board.rook = new squareSet_1.SquareSet(0x0, 0x20000, 0x400000);
48
- board.tokin = new squareSet_1.SquareSet(0x0, 0, 0);
49
- board.promotedlance = new squareSet_1.SquareSet(0x0, 0x0, 0x0);
50
- board.promotedknight = new squareSet_1.SquareSet(0x0, 0x0, 0x0);
51
- board.promotedsilver = new squareSet_1.SquareSet(0x0, 0x0, 0x0);
52
- board.horse = new squareSet_1.SquareSet(0x0, 0x0, 0x0);
53
- board.dragon = new squareSet_1.SquareSet(0x0, 0x0, 0x0);
54
- board.king = new squareSet_1.SquareSet(0x0, 0x2000, 0x4000000);
31
+ board.occupied = new SquareSet([0x1001f, 0x100000, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0]);
32
+ board.sente = new SquareSet([0x0, 0x100000, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0]);
33
+ board.gote = new SquareSet([0x1001f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0]);
34
+ board.pawn = new SquareSet([0x10000, 0x100000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0]);
35
+ board.lance = SquareSet.empty();
36
+ board.knight = SquareSet.empty();
37
+ board.silver = new SquareSet([0x4, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0]);
38
+ board.gold = new SquareSet([0x2, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0]);
39
+ board.bishop = new SquareSet([0x8, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0]);
40
+ board.rook = new SquareSet([0x10, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0]);
41
+ board.king = new SquareSet([0x1, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0]);
42
+ board.tokin = SquareSet.empty();
43
+ board.promotedlance = SquareSet.empty();
44
+ board.promotedknight = SquareSet.empty();
45
+ board.promotedsilver = SquareSet.empty();
46
+ board.horse = SquareSet.empty();
47
+ board.dragon = SquareSet.empty();
55
48
  return board;
56
49
  }
57
50
  static empty() {
58
51
  const board = new Board();
59
- board.clear();
52
+ board.occupied = SquareSet.empty();
53
+ for (const color of COLORS)
54
+ board[color] = SquareSet.empty();
55
+ for (const role of ROLES)
56
+ board[role] = SquareSet.empty();
60
57
  return board;
61
58
  }
62
- clear() {
63
- this.numberOfFiles = 9;
64
- this.numberOfRanks = 9;
65
- this.occupied = squareSet_1.SquareSet.empty();
66
- for (const color of types_1.COLORS)
67
- this[color] = squareSet_1.SquareSet.empty();
68
- for (const role of types_1.ROLES)
69
- this[role] = squareSet_1.SquareSet.empty();
70
- }
71
59
  clone() {
72
60
  const board = new Board();
73
61
  board.occupied = this.occupied;
74
- board.numberOfFiles = this.numberOfFiles;
75
- board.numberOfRanks = this.numberOfRanks;
76
- for (const color of types_1.COLORS)
62
+ for (const color of COLORS)
77
63
  board[color] = this[color];
78
- for (const role of types_1.ROLES)
64
+ for (const role of ROLES)
79
65
  board[role] = this[role];
80
66
  return board;
81
67
  }
82
68
  equals(other) {
83
69
  if (!this.gote.equals(other.gote))
84
70
  return false;
85
- if (this.numberOfFiles !== other.numberOfFiles || this.numberOfRanks !== other.numberOfRanks)
86
- return false;
87
- return types_1.ROLES.every(role => this[role].equals(other[role]));
71
+ return ROLES.every(role => this[role].equals(other[role]));
88
72
  }
89
73
  getColor(square) {
90
74
  if (this.sente.has(square))
@@ -94,7 +78,7 @@ class Board {
94
78
  return;
95
79
  }
96
80
  getRole(square) {
97
- for (const role of types_1.ROLES) {
81
+ for (const role of ROLES) {
98
82
  if (this[role].has(square))
99
83
  return role;
100
84
  }
@@ -138,5 +122,4 @@ class Board {
138
122
  return this.king.intersect(this[color]).singleSquare();
139
123
  }
140
124
  }
141
- exports.Board = Board;
142
125
  //# sourceMappingURL=board.js.map
package/board.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"board.js","sourceRoot":"","sources":["src/board.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"board.js","sourceRoot":"","sources":["src/board.ts"],"names":[],"mappings":"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"}
package/compat.d.ts CHANGED
@@ -1,8 +1,6 @@
1
- import { Rules, SquareName, Move, Role } from './types';
2
- import { Position } from './shogi';
1
+ import { SquareName, Move, Role } from './types.js';
2
+ import { Position } from './shogi.js';
3
3
  export declare function shogigroundDests(pos: Position): Map<SquareName, SquareName[]>;
4
4
  export declare function shogigroundDropDests(pos: Position, role?: Role): Map<Role, SquareName[]>;
5
- export declare function scalashogiCharPair(move: Move): string;
6
5
  export declare function usiToSquareNames(usi: string): SquareName[];
7
6
  export declare function moveToSquareNames(move: Move): SquareName[];
8
- export declare function lishogiVariantRules(variant: string): Rules;
package/compat.js CHANGED
@@ -1,26 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.lishogiVariantRules = exports.moveToSquareNames = exports.usiToSquareNames = exports.scalashogiCharPair = exports.shogigroundDropDests = exports.shogigroundDests = void 0;
4
- const types_1 = require("./types");
5
- const util_1 = require("./util");
6
- function shogigroundDests(pos) {
1
+ import { isDrop } from './types.js';
2
+ import { defined, makeSquare, parseUsi } from './util.js';
3
+ export function shogigroundDests(pos) {
7
4
  const result = new Map();
8
5
  const ctx = pos.ctx();
9
6
  for (const [from, squares] of pos.allDests(ctx)) {
10
7
  if (squares.nonEmpty()) {
11
- const d = Array.from(squares, s => (0, util_1.makeSquare)(s));
12
- result.set((0, util_1.makeSquare)(from), d);
8
+ const d = Array.from(squares, s => makeSquare(s));
9
+ result.set(makeSquare(from), d);
13
10
  }
14
11
  }
15
12
  return result;
16
13
  }
17
- exports.shogigroundDests = shogigroundDests;
18
- function shogigroundDropDests(pos, role) {
14
+ export function shogigroundDropDests(pos, role) {
19
15
  const result = new Map();
20
16
  if (role) {
21
17
  const squares = pos.dropDests(role);
22
18
  if (squares.nonEmpty()) {
23
- const d = Array.from(squares, s => (0, util_1.makeSquare)(s));
19
+ const d = Array.from(squares, s => makeSquare(s));
24
20
  result.set(role, d);
25
21
  }
26
22
  }
@@ -28,37 +24,18 @@ function shogigroundDropDests(pos, role) {
28
24
  const ctx = pos.ctx();
29
25
  for (const [r, squares] of pos.allDropDests(ctx)) {
30
26
  if (squares.nonEmpty()) {
31
- const d = Array.from(squares, s => (0, util_1.makeSquare)(s));
27
+ const d = Array.from(squares, s => makeSquare(s));
32
28
  result.set(r, d);
33
29
  }
34
30
  }
35
31
  }
36
32
  return result;
37
33
  }
38
- exports.shogigroundDropDests = shogigroundDropDests;
39
- function scalashogiCharPair(move) {
40
- if ((0, types_1.isDrop)(move))
41
- return String.fromCharCode(34 + move.to, 34 + 81 + 128 + ['rook', 'bishop', 'knight', 'pawn', 'gold', 'silver', 'lance'].indexOf(move.role));
42
- else
43
- return String.fromCharCode(34 + move.from, move.promotion ? 34 + move.to + 128 : 34 + move.to);
34
+ export function usiToSquareNames(usi) {
35
+ const move = parseUsi(usi);
36
+ return defined(move) ? moveToSquareNames(move) : [];
44
37
  }
45
- exports.scalashogiCharPair = scalashogiCharPair;
46
- function usiToSquareNames(usi) {
47
- const move = (0, util_1.parseUsi)(usi);
48
- return (0, util_1.defined)(move) ? moveToSquareNames(move) : [];
38
+ export function moveToSquareNames(move) {
39
+ return isDrop(move) ? [makeSquare(move.to)] : [makeSquare(move.from), makeSquare(move.to)];
49
40
  }
50
- exports.usiToSquareNames = usiToSquareNames;
51
- function moveToSquareNames(move) {
52
- return (0, types_1.isDrop)(move) ? [(0, util_1.makeSquare)(move.to)] : [(0, util_1.makeSquare)(move.from), (0, util_1.makeSquare)(move.to)];
53
- }
54
- exports.moveToSquareNames = moveToSquareNames;
55
- function lishogiVariantRules(variant) {
56
- switch (variant) {
57
- case 'minishogi':
58
- return 'minishogi';
59
- default:
60
- return 'shogi';
61
- }
62
- }
63
- exports.lishogiVariantRules = lishogiVariantRules;
64
41
  //# sourceMappingURL=compat.js.map
package/compat.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"compat.js","sourceRoot":"","sources":["src/compat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["src/compat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAQ,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAG1D,MAAM,UAAU,gBAAgB,CAAC,GAAa;IAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC/C,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SACjC;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAa,EAAE,IAAW;IAC7D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;IACzB,IAAI,IAAI,EAAE;QACR,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YACtB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SACrB;KACF;SAAM;QACL,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;YAChD,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;gBACtB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAClB;SACF;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAU;IAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7F,CAAC"}
package/debug.d.ts CHANGED
@@ -1,10 +1,7 @@
1
- import { Square, Piece } from './types';
2
- import { SquareSet } from './squareSet';
3
- import { Board } from './board';
4
- import { Position } from './shogi';
5
- export declare function squareSet(squares: SquareSet): string;
1
+ import { Square, Piece } from './types.js';
2
+ import { SquareSet } from './squareSet.js';
3
+ import { Position } from './shogi.js';
6
4
  export declare function piece(piece: Piece): string;
7
- export declare function board(board: Board): string;
8
5
  export declare function square(sq: Square): string;
9
6
  export declare function dests(dests: Map<Square, SquareSet>): string;
10
7
  export declare function perft(pos: Position, depth: number, log?: boolean): number;