@datamoc/mw_games 0.4.1 → 0.4.3

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 (260) hide show
  1. package/README.md +2 -2
  2. package/dist/actors/ItemStatusEffect.d.ts +1 -1
  3. package/dist/actors/ItemStatusEffect.d.ts.map +1 -1
  4. package/dist/actors/ItemStatusEffect.js +2 -11
  5. package/dist/actors/ItemStatusEffect.js.map +1 -1
  6. package/dist/actors/StatusEffect.d.ts +11 -0
  7. package/dist/actors/StatusEffect.d.ts.map +1 -1
  8. package/dist/actors/StatusEffect.js +21 -8
  9. package/dist/actors/StatusEffect.js.map +1 -1
  10. package/dist/assets/binary.d.ts +52 -0
  11. package/dist/assets/binary.d.ts.map +1 -0
  12. package/dist/assets/binary.js +57 -0
  13. package/dist/assets/binary.js.map +1 -0
  14. package/dist/assets/index.d.ts +10 -5
  15. package/dist/assets/index.d.ts.map +1 -1
  16. package/dist/assets/index.js +9 -5
  17. package/dist/assets/index.js.map +1 -1
  18. package/dist/board/Army.d.ts +75 -0
  19. package/dist/board/Army.d.ts.map +1 -1
  20. package/dist/board/Army.js +75 -0
  21. package/dist/board/Army.js.map +1 -1
  22. package/dist/board/Classics.d.ts +297 -1
  23. package/dist/board/Classics.d.ts.map +1 -1
  24. package/dist/board/Classics.js +297 -1
  25. package/dist/board/Classics.js.map +1 -1
  26. package/dist/board/Engine.d.ts +23 -0
  27. package/dist/board/Engine.d.ts.map +1 -1
  28. package/dist/board/Engine.js +23 -0
  29. package/dist/board/Engine.js.map +1 -1
  30. package/dist/board/FogOfWar.d.ts +20 -0
  31. package/dist/board/FogOfWar.d.ts.map +1 -1
  32. package/dist/board/FogOfWar.js +20 -0
  33. package/dist/board/FogOfWar.js.map +1 -1
  34. package/dist/board/Tactics.d.ts +158 -1
  35. package/dist/board/Tactics.d.ts.map +1 -1
  36. package/dist/board/Tactics.js +125 -1
  37. package/dist/board/Tactics.js.map +1 -1
  38. package/dist/board/chess.d.ts +87 -3
  39. package/dist/board/chess.d.ts.map +1 -1
  40. package/dist/board/chess.js +96 -4
  41. package/dist/board/chess.js.map +1 -1
  42. package/dist/core/HttpTransport.d.ts +1 -1
  43. package/dist/core/HttpTransport.js +1 -1
  44. package/dist/core/News.d.ts +6 -13
  45. package/dist/core/News.d.ts.map +1 -1
  46. package/dist/core/News.js +10 -23
  47. package/dist/core/News.js.map +1 -1
  48. package/dist/core/RunHistory.d.ts +1 -2
  49. package/dist/core/RunHistory.d.ts.map +1 -1
  50. package/dist/core/RunHistory.js +5 -6
  51. package/dist/core/RunHistory.js.map +1 -1
  52. package/dist/core/Stats.d.ts +1 -2
  53. package/dist/core/Stats.d.ts.map +1 -1
  54. package/dist/core/Stats.js +5 -6
  55. package/dist/core/Stats.js.map +1 -1
  56. package/dist/core/StoredValue.d.ts +21 -0
  57. package/dist/core/StoredValue.d.ts.map +1 -0
  58. package/dist/core/StoredValue.js +28 -0
  59. package/dist/core/StoredValue.js.map +1 -0
  60. package/dist/i18n/Content.d.ts +151 -0
  61. package/dist/i18n/Content.d.ts.map +1 -0
  62. package/dist/i18n/Content.js +219 -0
  63. package/dist/i18n/Content.js.map +1 -0
  64. package/dist/i18n/index.d.ts +35 -3
  65. package/dist/i18n/index.d.ts.map +1 -1
  66. package/dist/i18n/index.js +88 -6
  67. package/dist/i18n/index.js.map +1 -1
  68. package/dist/mw_games.global.js +90 -90
  69. package/dist/roguelike/Level.d.ts +10 -0
  70. package/dist/roguelike/Level.d.ts.map +1 -1
  71. package/dist/roguelike/Level.js +57 -17
  72. package/dist/roguelike/Level.js.map +1 -1
  73. package/dist/roguelike/Pathfinder.js +19 -19
  74. package/dist/roguelike/Pathfinder.js.map +1 -1
  75. package/dist/roguelike/Placement.d.ts +62 -0
  76. package/dist/roguelike/Placement.d.ts.map +1 -0
  77. package/dist/roguelike/Placement.js +79 -0
  78. package/dist/roguelike/Placement.js.map +1 -0
  79. package/dist/roguelike/index.d.ts +2 -0
  80. package/dist/roguelike/index.d.ts.map +1 -1
  81. package/dist/roguelike/index.js +1 -0
  82. package/dist/roguelike/index.js.map +1 -1
  83. package/dist/rpg/FreeMover.d.ts +1 -1
  84. package/dist/rpg/FreeMover.d.ts.map +1 -1
  85. package/dist/rpg/FreeMover.js +3 -6
  86. package/dist/rpg/FreeMover.js.map +1 -1
  87. package/dist/rpg/GridMover.d.ts +1 -1
  88. package/dist/rpg/GridMover.d.ts.map +1 -1
  89. package/dist/rpg/GridMover.js +3 -6
  90. package/dist/rpg/GridMover.js.map +1 -1
  91. package/dist/rpg/MovableSprite.d.ts +6 -0
  92. package/dist/rpg/MovableSprite.d.ts.map +1 -1
  93. package/dist/rpg/MovableSprite.js +9 -1
  94. package/dist/rpg/MovableSprite.js.map +1 -1
  95. package/dist/three-d/Models.d.ts +38 -1
  96. package/dist/three-d/Models.d.ts.map +1 -1
  97. package/dist/three-d/Models.js +66 -3
  98. package/dist/three-d/Models.js.map +1 -1
  99. package/dist/two-d/render/ActorAnimator.d.ts +32 -0
  100. package/dist/two-d/render/ActorAnimator.d.ts.map +1 -1
  101. package/dist/two-d/render/ActorAnimator.js +21 -0
  102. package/dist/two-d/render/ActorAnimator.js.map +1 -1
  103. package/dist/two-d/render/AnimatedSprite.d.ts +24 -4
  104. package/dist/two-d/render/AnimatedSprite.d.ts.map +1 -1
  105. package/dist/two-d/render/AnimatedSprite.js +24 -4
  106. package/dist/two-d/render/AnimatedSprite.js.map +1 -1
  107. package/dist/two-d/render/Autotile.d.ts +33 -1
  108. package/dist/two-d/render/Autotile.d.ts.map +1 -1
  109. package/dist/two-d/render/Autotile.js +33 -1
  110. package/dist/two-d/render/Autotile.js.map +1 -1
  111. package/dist/two-d/render/Camera.d.ts +53 -1
  112. package/dist/two-d/render/Camera.d.ts.map +1 -1
  113. package/dist/two-d/render/Camera.js +36 -1
  114. package/dist/two-d/render/Camera.js.map +1 -1
  115. package/dist/two-d/render/Capabilities.d.ts +33 -0
  116. package/dist/two-d/render/Capabilities.d.ts.map +1 -1
  117. package/dist/two-d/render/Capabilities.js +33 -0
  118. package/dist/two-d/render/Capabilities.js.map +1 -1
  119. package/dist/two-d/render/ColorBlindness.d.ts +23 -0
  120. package/dist/two-d/render/ColorBlindness.d.ts.map +1 -1
  121. package/dist/two-d/render/ColorBlindness.js +23 -4
  122. package/dist/two-d/render/ColorBlindness.js.map +1 -1
  123. package/dist/two-d/render/ColorTransformBatcher.d.ts +67 -1
  124. package/dist/two-d/render/ColorTransformBatcher.d.ts.map +1 -1
  125. package/dist/two-d/render/ColorTransformBatcher.js +57 -1
  126. package/dist/two-d/render/ColorTransformBatcher.js.map +1 -1
  127. package/dist/two-d/render/LayeredSprite.d.ts +19 -0
  128. package/dist/two-d/render/LayeredSprite.d.ts.map +1 -1
  129. package/dist/two-d/render/LayeredSprite.js +19 -0
  130. package/dist/two-d/render/LayeredSprite.js.map +1 -1
  131. package/dist/two-d/render/Minimap.d.ts +25 -1
  132. package/dist/two-d/render/Minimap.d.ts.map +1 -1
  133. package/dist/two-d/render/Minimap.js +25 -1
  134. package/dist/two-d/render/Minimap.js.map +1 -1
  135. package/dist/two-d/render/Particles.d.ts +26 -2
  136. package/dist/two-d/render/Particles.d.ts.map +1 -1
  137. package/dist/two-d/render/Particles.js +23 -0
  138. package/dist/two-d/render/Particles.js.map +1 -1
  139. package/dist/two-d/render/Projectile.d.ts +14 -0
  140. package/dist/two-d/render/Projectile.d.ts.map +1 -1
  141. package/dist/two-d/render/Projectile.js +14 -0
  142. package/dist/two-d/render/Projectile.js.map +1 -1
  143. package/dist/two-d/render/ScreenEffects.d.ts +15 -0
  144. package/dist/two-d/render/ScreenEffects.d.ts.map +1 -1
  145. package/dist/two-d/render/ScreenEffects.js +15 -0
  146. package/dist/two-d/render/ScreenEffects.js.map +1 -1
  147. package/dist/two-d/render/Shape2D.d.ts +58 -1
  148. package/dist/two-d/render/Shape2D.d.ts.map +1 -1
  149. package/dist/two-d/render/Shape2D.js +58 -1
  150. package/dist/two-d/render/Shape2D.js.map +1 -1
  151. package/dist/two-d/render/StatusVisuals.d.ts +22 -0
  152. package/dist/two-d/render/StatusVisuals.d.ts.map +1 -1
  153. package/dist/two-d/render/StatusVisuals.js +22 -0
  154. package/dist/two-d/render/StatusVisuals.js.map +1 -1
  155. package/dist/two-d/render/TileMap.d.ts +65 -3
  156. package/dist/two-d/render/TileMap.d.ts.map +1 -1
  157. package/dist/two-d/render/TileMap.js +65 -3
  158. package/dist/two-d/render/TileMap.js.map +1 -1
  159. package/dist/two-d/render/TiledMap.d.ts +9 -3
  160. package/dist/two-d/render/TiledMap.d.ts.map +1 -1
  161. package/dist/two-d/render/TiledMap.js +9 -3
  162. package/dist/two-d/render/TiledMap.js.map +1 -1
  163. package/dist/two-d/render/TintedSprite.d.ts +9 -2
  164. package/dist/two-d/render/TintedSprite.d.ts.map +1 -1
  165. package/dist/two-d/render/TintedSprite.js +9 -2
  166. package/dist/two-d/render/TintedSprite.js.map +1 -1
  167. package/dist/two-d/render/Types2D.d.ts +14 -2
  168. package/dist/two-d/render/Types2D.d.ts.map +1 -1
  169. package/dist/two-d/render/Types2D.js +14 -2
  170. package/dist/two-d/render/Types2D.js.map +1 -1
  171. package/dist/two-d/render/Viewport.d.ts +22 -0
  172. package/dist/two-d/render/Viewport.d.ts.map +1 -1
  173. package/dist/two-d/render/Viewport.js +22 -0
  174. package/dist/two-d/render/Viewport.js.map +1 -1
  175. package/dist/two-d/ui/Bar.d.ts +16 -3
  176. package/dist/two-d/ui/Bar.d.ts.map +1 -1
  177. package/dist/two-d/ui/Bar.js +16 -1
  178. package/dist/two-d/ui/Bar.js.map +1 -1
  179. package/dist/two-d/ui/BitmapLabel.d.ts +26 -10
  180. package/dist/two-d/ui/BitmapLabel.d.ts.map +1 -1
  181. package/dist/two-d/ui/BitmapLabel.js +26 -3
  182. package/dist/two-d/ui/BitmapLabel.js.map +1 -1
  183. package/dist/two-d/ui/Button.d.ts +15 -0
  184. package/dist/two-d/ui/Button.d.ts.map +1 -1
  185. package/dist/two-d/ui/Button.js +15 -0
  186. package/dist/two-d/ui/Button.js.map +1 -1
  187. package/dist/two-d/ui/FloatingText.d.ts +15 -0
  188. package/dist/two-d/ui/FloatingText.d.ts.map +1 -1
  189. package/dist/two-d/ui/FloatingText.js +15 -0
  190. package/dist/two-d/ui/FloatingText.js.map +1 -1
  191. package/dist/two-d/ui/HelpScreen.d.ts +16 -0
  192. package/dist/two-d/ui/HelpScreen.d.ts.map +1 -1
  193. package/dist/two-d/ui/HelpScreen.js +23 -3
  194. package/dist/two-d/ui/HelpScreen.js.map +1 -1
  195. package/dist/two-d/ui/IconGrid.d.ts +27 -3
  196. package/dist/two-d/ui/IconGrid.d.ts.map +1 -1
  197. package/dist/two-d/ui/IconGrid.js +71 -55
  198. package/dist/two-d/ui/IconGrid.js.map +1 -1
  199. package/dist/two-d/ui/Label.d.ts +12 -8
  200. package/dist/two-d/ui/Label.d.ts.map +1 -1
  201. package/dist/two-d/ui/Label.js +14 -3
  202. package/dist/two-d/ui/Label.js.map +1 -1
  203. package/dist/two-d/ui/ListView.d.ts +22 -4
  204. package/dist/two-d/ui/ListView.d.ts.map +1 -1
  205. package/dist/two-d/ui/ListView.js +44 -43
  206. package/dist/two-d/ui/ListView.js.map +1 -1
  207. package/dist/two-d/ui/LoadingScreen.d.ts +24 -1
  208. package/dist/two-d/ui/LoadingScreen.d.ts.map +1 -1
  209. package/dist/two-d/ui/LoadingScreen.js +24 -1
  210. package/dist/two-d/ui/LoadingScreen.js.map +1 -1
  211. package/dist/two-d/ui/MessageBox.d.ts +21 -2
  212. package/dist/two-d/ui/MessageBox.d.ts.map +1 -1
  213. package/dist/two-d/ui/MessageBox.js +19 -0
  214. package/dist/two-d/ui/MessageBox.js.map +1 -1
  215. package/dist/two-d/ui/NinePatch.d.ts +12 -0
  216. package/dist/two-d/ui/NinePatch.d.ts.map +1 -1
  217. package/dist/two-d/ui/NinePatch.js +12 -0
  218. package/dist/two-d/ui/NinePatch.js.map +1 -1
  219. package/dist/two-d/ui/RebindScreen.d.ts +15 -0
  220. package/dist/two-d/ui/RebindScreen.d.ts.map +1 -1
  221. package/dist/two-d/ui/RebindScreen.js +15 -0
  222. package/dist/two-d/ui/RebindScreen.js.map +1 -1
  223. package/dist/two-d/ui/SelectionModel.d.ts +50 -0
  224. package/dist/two-d/ui/SelectionModel.d.ts.map +1 -0
  225. package/dist/two-d/ui/SelectionModel.js +73 -0
  226. package/dist/two-d/ui/SelectionModel.js.map +1 -0
  227. package/dist/two-d/ui/StatsScreen.d.ts +15 -0
  228. package/dist/two-d/ui/StatsScreen.d.ts.map +1 -1
  229. package/dist/two-d/ui/StatsScreen.js +15 -0
  230. package/dist/two-d/ui/StatsScreen.js.map +1 -1
  231. package/dist/two-d/ui/Toast.d.ts +12 -0
  232. package/dist/two-d/ui/Toast.d.ts.map +1 -1
  233. package/dist/two-d/ui/Toast.js +12 -0
  234. package/dist/two-d/ui/Toast.js.map +1 -1
  235. package/dist/two-d/ui/Tooltip.d.ts +14 -0
  236. package/dist/two-d/ui/Tooltip.d.ts.map +1 -1
  237. package/dist/two-d/ui/Tooltip.js +14 -0
  238. package/dist/two-d/ui/Tooltip.js.map +1 -1
  239. package/dist/two-d/ui/VerticalLabel.d.ts +18 -0
  240. package/dist/two-d/ui/VerticalLabel.d.ts.map +1 -1
  241. package/dist/two-d/ui/VerticalLabel.js +18 -0
  242. package/dist/two-d/ui/VerticalLabel.js.map +1 -1
  243. package/dist/two-d/ui/Window.d.ts +12 -0
  244. package/dist/two-d/ui/Window.d.ts.map +1 -1
  245. package/dist/two-d/ui/Window.js +12 -0
  246. package/dist/two-d/ui/Window.js.map +1 -1
  247. package/dist/two-d/ui/theme.d.ts +45 -1
  248. package/dist/two-d/ui/theme.d.ts.map +1 -1
  249. package/dist/two-d/ui/theme.js +45 -1
  250. package/dist/two-d/ui/theme.js.map +1 -1
  251. package/dist/two-d/ui/themedText.d.ts +20 -0
  252. package/dist/two-d/ui/themedText.d.ts.map +1 -0
  253. package/dist/two-d/ui/themedText.js +9 -0
  254. package/dist/two-d/ui/themedText.js.map +1 -0
  255. package/dist/version.d.ts +1 -1
  256. package/dist/version.js +1 -1
  257. package/package.json +11 -2
  258. package/tools/compile-resources.mjs +1 -1
  259. package/tools/compress-dist.d.mts +16 -0
  260. package/tools/compress-dist.mjs +116 -0
@@ -5,6 +5,23 @@ export interface BoardPiece<K = string> {
5
5
  kind: K;
6
6
  count?: number;
7
7
  }
8
+ /**
9
+ * A generic rectangular grid of pieces - the shared shape underneath a game-specific board
10
+ * (chess, checkers, or a custom game entirely) that only needs cells, bounds checking, and
11
+ * moving a piece from one cell to another.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { BoardGrid } from '@datamoc/mw_games/board';
16
+ *
17
+ * const board = new BoardGrid<{ id: string; owner: string; kind: string }>(3, 3);
18
+ * board.set(1, 1, { id: 'king', owner: 'white', kind: 'king' });
19
+ *
20
+ * console.log(board.move({ x: 1, y: 1 }, { x: 2, y: 2 })); // { id: 'king', owner: 'white', kind: 'king' }
21
+ * console.log(board.get(2, 2)); // the same piece, now at its new cell
22
+ * console.log(board.get(1, 1)); // null - the old cell is empty
23
+ * ```
24
+ */
8
25
  export declare class BoardGrid<P> {
9
26
  readonly cells: Array<P | null>;
10
27
  readonly width: number;
@@ -37,8 +54,39 @@ export interface CheckersState {
37
54
  turn: CheckersSide;
38
55
  forcedFrom: number | null;
39
56
  }
57
+ /**
58
+ * @example
59
+ * ```ts
60
+ * import { startingCheckers } from '@datamoc/mw_games/board';
61
+ *
62
+ * const state = startingCheckers();
63
+ * console.log(state.turn, state.board.length); // 'red' 64
64
+ * ```
65
+ */
40
66
  export declare function startingCheckers(): CheckersState;
67
+ /**
68
+ * Legal moves for whoever's turn it is - captures only, when one is available, since a
69
+ * capture is forced in checkers; `forcedFrom` narrows this to one piece mid-multi-jump.
70
+ *
71
+ * @example
72
+ * ```ts
73
+ * import { startingCheckers, checkersMoves } from '@datamoc/mw_games/board';
74
+ *
75
+ * const moves = checkersMoves(startingCheckers());
76
+ * console.log(moves.length); // 7 - every red piece on the back row can step forward
77
+ * ```
78
+ */
41
79
  export declare function checkersMoves(state: CheckersState): CheckersMove[];
80
+ /**
81
+ * @example
82
+ * ```ts
83
+ * import { startingCheckers, checkersMoves, applyCheckersMove } from '@datamoc/mw_games/board';
84
+ *
85
+ * const state = startingCheckers();
86
+ * applyCheckersMove(state, checkersMoves(state)[0]);
87
+ * console.log(state.turn); // 'black' - the move used no capture, so the turn passes
88
+ * ```
89
+ */
42
90
  export declare function applyCheckersMove(state: CheckersState, move: CheckersMove): void;
43
91
  export type GoStone = 'black' | 'white';
44
92
  export interface GoState {
@@ -48,10 +96,64 @@ export interface GoState {
48
96
  ko: number | null;
49
97
  passes: number;
50
98
  }
99
+ /**
100
+ * @example
101
+ * ```ts
102
+ * import { startingGo } from '@datamoc/mw_games/board';
103
+ *
104
+ * const state = startingGo(9);
105
+ * console.log(state.turn, state.board.length); // 'black' 81
106
+ * ```
107
+ */
51
108
  export declare function startingGo(size?: number): GoState;
109
+ /**
110
+ * Places a stone, captures any enemy group left with no liberties, and enforces ko (a move
111
+ * that would recreate the position before the opponent's last capture is refused).
112
+ *
113
+ * @example
114
+ * ```ts
115
+ * import { startingGo, playGo } from '@datamoc/mw_games/board';
116
+ *
117
+ * const state = startingGo(9);
118
+ * playGo(state, 4, 4);
119
+ * console.log(state.turn); // 'white' - the turn passes after a legal move
120
+ * ```
121
+ */
52
122
  export declare function playGo(state: GoState, x: number, y: number): void;
123
+ /**
124
+ * @example
125
+ * ```ts
126
+ * import { startingGo, passGo, goResult } from '@datamoc/mw_games/board';
127
+ *
128
+ * const state = startingGo(9);
129
+ * passGo(state);
130
+ * passGo(state); // two passes in a row ends the game
131
+ * console.log(goResult(state)); // 'finished'
132
+ * ```
133
+ */
53
134
  export declare function passGo(state: GoState): void;
135
+ /**
136
+ * @example
137
+ * ```ts
138
+ * import { startingGo, goResult } from '@datamoc/mw_games/board';
139
+ *
140
+ * console.log(goResult(startingGo(9))); // 'ongoing' - nobody has passed yet
141
+ * ```
142
+ */
54
143
  export declare function goResult(state: GoState): 'ongoing' | 'finished';
144
+ /**
145
+ * Stones on the board plus surrounded empty territory, per side - area scoring, not the
146
+ * Japanese rule set's separate prisoner count.
147
+ *
148
+ * @example
149
+ * ```ts
150
+ * import { startingGo, playGo, goScore } from '@datamoc/mw_games/board';
151
+ *
152
+ * const state = startingGo(9);
153
+ * playGo(state, 4, 4);
154
+ * console.log(goScore(state)); // { black: 1, white: 0 } - one stone, no territory settled yet
155
+ * ```
156
+ */
55
157
  export declare function goScore(state: GoState): {
56
158
  black: number;
57
159
  white: number;
@@ -73,9 +175,47 @@ export interface BackgammonMove {
73
175
  to: number | 'off';
74
176
  die: number;
75
177
  }
178
+ /**
179
+ * @example
180
+ * ```ts
181
+ * import { startingBackgammon } from '@datamoc/mw_games/board';
182
+ *
183
+ * const state = startingBackgammon();
184
+ * console.log(state.points[0], state.points[23]); // 2 -2 - white's and black's back checkers
185
+ * ```
186
+ */
76
187
  export declare function startingBackgammon(): BackgammonState;
188
+ /** Doubles roll as four of the same die, not two - the standard backgammon rule.
189
+ *
190
+ * @example
191
+ * ```ts
192
+ * import { rollBackgammonDice } from '@datamoc/mw_games/board';
193
+ *
194
+ * const dice = rollBackgammonDice();
195
+ * console.log(dice.length === 2 || dice.length === 4); // true
196
+ * ```
197
+ */
77
198
  export declare function rollBackgammonDice(): number[];
199
+ /**
200
+ * @example
201
+ * ```ts
202
+ * import { startingBackgammon, backgammonMoves } from '@datamoc/mw_games/board';
203
+ *
204
+ * const moves = backgammonMoves(startingBackgammon(), [1]);
205
+ * console.log(moves.length, moves[0]); // 3 { from: 0, to: 1, die: 1 }
206
+ * ```
207
+ */
78
208
  export declare function backgammonMoves(state: BackgammonState, dice: readonly number[]): BackgammonMove[];
209
+ /**
210
+ * @example
211
+ * ```ts
212
+ * import { startingBackgammon, backgammonMoves, applyBackgammonMove } from '@datamoc/mw_games/board';
213
+ *
214
+ * const state = startingBackgammon();
215
+ * applyBackgammonMove(state, backgammonMoves(state, [1])[0]);
216
+ * console.log(state.points[0], state.points[1]); // 1 1 - one checker moved from point 0 to point 1
217
+ * ```
218
+ */
79
219
  export declare function applyBackgammonMove(state: BackgammonState, move: BackgammonMove): void;
80
220
  export type CardSuit = 'clubs' | 'diamonds' | 'hearts' | 'spades';
81
221
  export type CardRank = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13;
@@ -83,14 +223,57 @@ export interface Card {
83
223
  suit: CardSuit;
84
224
  rank: CardRank;
85
225
  }
226
+ /**
227
+ * @example
228
+ * ```ts
229
+ * import { createDeck } from '@datamoc/mw_games/board';
230
+ *
231
+ * console.log(createDeck().length); // 52
232
+ * console.log(createDeck(2).length); // 54 - two jokers added
233
+ * ```
234
+ */
86
235
  export declare function createDeck(jokers?: number): Card[];
236
+ /**
237
+ * @example
238
+ * ```ts
239
+ * import { createDeck, shuffleDeck } from '@datamoc/mw_games/board';
240
+ * import { Random } from '@datamoc/mw_games/core';
241
+ *
242
+ * const shuffled = Random.withSeed(1, () => shuffleDeck(createDeck()));
243
+ * console.log(shuffled[0]); // { suit: 'hearts', rank: 6 } - deterministic for seed 1
244
+ * ```
245
+ */
87
246
  export declare function shuffleDeck(deck: Card[]): Card[];
247
+ /**
248
+ * @example
249
+ * ```ts
250
+ * import { createDeck, deal } from '@datamoc/mw_games/board';
251
+ *
252
+ * const hands = deal(createDeck(), 4, 13);
253
+ * console.log(hands.length, hands[0].length); // 4 13 - a full deck dealt to four players
254
+ * ```
255
+ */
88
256
  export declare function deal<T>(deck: T[], hands: number, cardsEach: number): T[][];
89
257
  export interface TrickPlay<O = string> {
90
258
  owner: O;
91
259
  card: Card;
92
260
  }
93
- /** Highest card of the trump suit wins; failing that, highest card of whoever led. Ace (rank 1) ranks lowest, as in belote/tarot/bridge follow-suit play. */
261
+ /** Highest card of the trump suit wins; failing that, highest card of whoever led. Ace (rank 1) ranks lowest, as in belote/tarot/bridge follow-suit play.
262
+ *
263
+ * @example
264
+ * ```ts
265
+ * import { trickWinner } from '@datamoc/mw_games/board';
266
+ *
267
+ * const plays = [
268
+ * { owner: 'north', card: { suit: 'hearts' as const, rank: 5 as const } },
269
+ * { owner: 'south', card: { suit: 'hearts' as const, rank: 10 as const } },
270
+ * { owner: 'east', card: { suit: 'spades' as const, rank: 13 as const } },
271
+ * ];
272
+ *
273
+ * console.log(trickWinner(plays)); // 'south' - highest heart, hearts led
274
+ * console.log(trickWinner(plays, 'spades')); // 'east' - the only spade played beats every heart
275
+ * ```
276
+ */
94
277
  export declare function trickWinner<O = string>(plays: TrickPlay<O>[], trumpSuit?: CardSuit): O;
95
278
  export interface SolitaireState {
96
279
  stock: Card[];
@@ -101,13 +284,114 @@ export interface SolitaireState {
101
284
  }>;
102
285
  foundations: Card[][];
103
286
  }
287
+ /**
288
+ * A Klondike-shaped deal: seven tableau columns, each with one face-up card on a run of
289
+ * face-down ones, the rest in the stock.
290
+ *
291
+ * @example
292
+ * ```ts
293
+ * import { dealSolitaire } from '@datamoc/mw_games/board';
294
+ *
295
+ * const state = dealSolitaire(1); // seeded, for a reproducible deal
296
+ * console.log(state.stock.length); // 24 - 52 minus the 28 dealt across the tableau
297
+ * console.log(state.tableau[0].up); // [{ suit: 'clubs', rank: 12 }] - one face-up card to start
298
+ * ```
299
+ */
104
300
  export declare function dealSolitaire(seed?: number): SolitaireState;
301
+ /**
302
+ * Draws from the stock to the waste; once the stock is empty, the waste is turned back over
303
+ * into a new stock rather than the game being stuck.
304
+ *
305
+ * @example
306
+ * ```ts
307
+ * import { dealSolitaire, drawSolitaire } from '@datamoc/mw_games/board';
308
+ *
309
+ * const state = dealSolitaire(1);
310
+ * const card = drawSolitaire(state);
311
+ * console.log(card); // { suit: 'hearts', rank: 7 }
312
+ * console.log(state.waste.length, state.stock.length); // 1 23
313
+ * ```
314
+ */
105
315
  export declare function drawSolitaire(state: SolitaireState): Card | null;
316
+ /**
317
+ * Moves the top `count` face-up cards from one tableau column to another - legal only onto a
318
+ * card one rank higher of the opposite colour, or onto an empty column with a king.
319
+ *
320
+ * @example
321
+ * ```ts
322
+ * import { dealSolitaire, moveSolitaireTableau } from '@datamoc/mw_games/board';
323
+ *
324
+ * const state = dealSolitaire(1);
325
+ * moveSolitaireTableau(state, 4, 0, 1); // the jack of hearts onto the queen of clubs
326
+ * console.log(state.tableau[0].up.at(-1)); // { suit: 'hearts', rank: 11 }
327
+ * ```
328
+ */
106
329
  export declare function moveSolitaireTableau(state: SolitaireState, from: number, to: number, count?: number): void;
330
+ /**
331
+ * Moves a card to its suit's foundation pile - legal only as the next rank up (an ace
332
+ * starts a pile).
333
+ *
334
+ * @example
335
+ * ```ts
336
+ * import { dealSolitaire, drawSolitaire, moveSolitaireToFoundation } from '@datamoc/mw_games/board';
337
+ *
338
+ * const state = dealSolitaire(1);
339
+ * let card = drawSolitaire(state);
340
+ * while (card && card.rank !== 1) card = drawSolitaire(state); // draw until an ace surfaces
341
+ *
342
+ * moveSolitaireToFoundation(state, 'waste');
343
+ * console.log(state.foundations.some((pile) => pile.length === 1)); // true
344
+ * ```
345
+ */
107
346
  export declare function moveSolitaireToFoundation(state: SolitaireState, source: 'waste' | number): void;
347
+ /**
348
+ * @example
349
+ * ```ts
350
+ * import { dealSolitaire, solitaireWon } from '@datamoc/mw_games/board';
351
+ *
352
+ * console.log(solitaireWon(dealSolitaire(1))); // false - a fresh deal is never already won
353
+ * ```
354
+ */
108
355
  export declare function solitaireWon(state: SolitaireState): boolean;
356
+ /**
357
+ * @example
358
+ * ```ts
359
+ * import { rollDice } from '@datamoc/mw_games/board';
360
+ * import { Random } from '@datamoc/mw_games/core';
361
+ *
362
+ * const rolls = Random.withSeed(1, () => rollDice(2, 6));
363
+ * console.log(rolls); // [5, 2] - deterministic for seed 1
364
+ * ```
365
+ */
109
366
  export declare function rollDice(count: number, sides: number): number[];
367
+ /**
368
+ * Rolls a `"NdS+M"`-style expression (2d6+1: two six-sided dice, plus one).
369
+ *
370
+ * @example
371
+ * ```ts
372
+ * import { rollExpression } from '@datamoc/mw_games/board';
373
+ * import { Random } from '@datamoc/mw_games/core';
374
+ *
375
+ * console.log(Random.withSeed(1, () => rollExpression('2d6+1'))); // 8 - rolls [5, 2], plus 1
376
+ * ```
377
+ */
110
378
  export declare function rollExpression(expression: string): number;
379
+ /**
380
+ * A cup of dice a player can keep and re-roll - Yahtzee's own mechanic, generalised to any
381
+ * count/sides.
382
+ *
383
+ * @example
384
+ * ```ts
385
+ * import { DiceCup } from '@datamoc/mw_games/board';
386
+ * import { Random } from '@datamoc/mw_games/core';
387
+ *
388
+ * const cup = Random.withSeed(1, () => new DiceCup(5, 6));
389
+ * console.log(cup.values); // [5, 2, 6, 1, 1]
390
+ *
391
+ * cup.keep(2); // keep the 6
392
+ * cup.reRoll(); // every other die rolls again; index 2 stays a 6
393
+ * ```
394
+ */
111
395
  export declare class DiceCup {
112
396
  readonly values: number[];
113
397
  readonly count: number;
@@ -119,5 +403,17 @@ export declare class DiceCup {
119
403
  clearKept(): void;
120
404
  }
121
405
  export type DiceCategory = 'ones' | 'twos' | 'threes' | 'fours' | 'fives' | 'sixes' | 'threeKind' | 'fourKind' | 'fullHouse' | 'smallStraight' | 'largeStraight' | 'yahtzee' | 'chance';
406
+ /**
407
+ * Scores five d6 values against one Yahtzee category.
408
+ *
409
+ * @example
410
+ * ```ts
411
+ * import { scoreDice } from '@datamoc/mw_games/board';
412
+ *
413
+ * console.log(scoreDice([4, 4, 4, 4, 4], 'yahtzee')); // 50
414
+ * console.log(scoreDice([1, 2, 3, 4, 5], 'chance')); // 15 - the sum of all five dice
415
+ * console.log(scoreDice([4, 4, 4, 4, 4], 'fours')); // 20 - five fours, four points each
416
+ * ```
417
+ */
122
418
  export declare function scoreDice(values: readonly number[], category: DiceCategory): number;
123
419
  //# sourceMappingURL=Classics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Classics.d.ts","sourceRoot":"","sources":["../../src/board/Classics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Classics.d.ts","sourceRoot":"","sources":["../../src/board/Classics.ts"],"names":[],"mappings":"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"}