puzzle-lib 1.3.0 → 1.6.0

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 (180) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +38 -39
  3. package/build/src/Braille/BrailleCharacter.d.ts +15 -15
  4. package/build/src/Braille/BrailleCharacter.js +38 -37
  5. package/build/src/Braille/BrailleCharacter.js.map +1 -1
  6. package/build/src/Braille/BrailleData.d.ts +6 -6
  7. package/build/src/Braille/BrailleData.js +65 -64
  8. package/build/src/Braille/BrailleData.js.map +1 -1
  9. package/build/src/Braille/BrailleDot.d.ts +9 -9
  10. package/build/src/Braille/BrailleDot.js +13 -12
  11. package/build/src/Braille/BrailleDot.js.map +1 -1
  12. package/build/src/Braille/BrailleEncoding.d.ts +54 -54
  13. package/build/src/Braille/BrailleEncoding.js +65 -64
  14. package/build/src/Braille/BrailleEncoding.js.map +1 -1
  15. package/build/src/Braille/BrailleStream.d.ts +18 -18
  16. package/build/src/Braille/BrailleStream.js +75 -74
  17. package/build/src/Braille/BrailleStream.js.map +1 -1
  18. package/build/src/Cipher/AutoKeyString.d.ts +4 -4
  19. package/build/src/Cipher/AutoKeyString.js +34 -33
  20. package/build/src/Cipher/AutoKeyString.js.map +1 -1
  21. package/build/src/Cipher/CaesarString.d.ts +8 -8
  22. package/build/src/Cipher/CaesarString.js +31 -30
  23. package/build/src/Cipher/CaesarString.js.map +1 -1
  24. package/build/src/Cipher/CaesarUtils.d.ts +13 -13
  25. package/build/src/Cipher/CaesarUtils.js +57 -56
  26. package/build/src/Cipher/CaesarUtils.js.map +1 -1
  27. package/build/src/Cipher/KeyedCipherStringBase.d.ts +12 -12
  28. package/build/src/Cipher/KeyedCipherStringBase.js +28 -27
  29. package/build/src/Cipher/KeyedCipherStringBase.js.map +1 -1
  30. package/build/src/Cipher/VigenereString.d.ts +4 -4
  31. package/build/src/Cipher/VigenereString.js +21 -20
  32. package/build/src/Cipher/VigenereString.js.map +1 -1
  33. package/build/src/Common/CharacterImage.d.ts +6 -6
  34. package/build/src/Common/CharacterImage.js +10 -9
  35. package/build/src/Common/CharacterImage.js.map +1 -1
  36. package/build/src/Common/EncodingCategory.d.ts +8 -8
  37. package/build/src/Common/EncodingCategory.js +12 -11
  38. package/build/src/Common/EncodingCategory.js.map +1 -1
  39. package/build/src/Common/EncodingCharacterBase.d.ts +23 -23
  40. package/build/src/Common/EncodingCharacterBase.js +52 -51
  41. package/build/src/Common/EncodingCharacterBase.js.map +1 -1
  42. package/build/src/Common/EncodingDataBase.d.ts +7 -7
  43. package/build/src/Common/EncodingDataBase.js +29 -28
  44. package/build/src/Common/EncodingDataBase.js.map +1 -1
  45. package/build/src/Common/EncodingEntry.d.ts +8 -8
  46. package/build/src/Common/EncodingEntry.js +14 -13
  47. package/build/src/Common/EncodingEntry.js.map +1 -1
  48. package/build/src/Common/EncodingLookupResult.d.ts +6 -6
  49. package/build/src/Common/EncodingLookupResult.js +13 -12
  50. package/build/src/Common/EncodingLookupResult.js.map +1 -1
  51. package/build/src/Common/Helpers.d.ts +4 -4
  52. package/build/src/Common/Helpers.js +16 -15
  53. package/build/src/Common/Helpers.js.map +1 -1
  54. package/build/src/Common/InlineSvg.d.ts +7 -7
  55. package/build/src/Common/InlineSvg.js +14 -13
  56. package/build/src/Common/InlineSvg.js.map +1 -1
  57. package/build/src/Conversion/CharacterAutoConvert.d.ts +10 -7
  58. package/build/src/Conversion/CharacterAutoConvert.js +88 -80
  59. package/build/src/Conversion/CharacterAutoConvert.js.map +1 -1
  60. package/build/src/Conversion/CharacterConversion.d.ts +8 -8
  61. package/build/src/Conversion/CharacterConversion.js +50 -49
  62. package/build/src/Conversion/CharacterConversion.js.map +1 -1
  63. package/build/src/Conversion/CharacterEncoding.d.ts +9 -8
  64. package/build/src/Conversion/CharacterEncoding.js +13 -11
  65. package/build/src/Conversion/CharacterEncoding.js.map +1 -1
  66. package/build/src/Conversion/CharacterTableEntry.d.ts +10 -10
  67. package/build/src/Conversion/CharacterTableEntry.js +19 -18
  68. package/build/src/Conversion/CharacterTableEntry.js.map +1 -1
  69. package/build/src/Conversion/SignificantFigures.d.ts +7 -7
  70. package/build/src/Conversion/SignificantFigures.js +50 -49
  71. package/build/src/Conversion/SignificantFigures.js.map +1 -1
  72. package/build/src/Conversion/StringAutoConvert.d.ts +6 -6
  73. package/build/src/Conversion/StringAutoConvert.js +46 -45
  74. package/build/src/Conversion/StringAutoConvert.js.map +1 -1
  75. package/build/src/Morse/MorseCharacter.d.ts +22 -22
  76. package/build/src/Morse/MorseCharacter.js +96 -95
  77. package/build/src/Morse/MorseCharacter.js.map +1 -1
  78. package/build/src/Morse/MorseData.d.ts +6 -6
  79. package/build/src/Morse/MorseData.js +70 -69
  80. package/build/src/Morse/MorseData.js.map +1 -1
  81. package/build/src/Morse/MorseEncoding.d.ts +59 -59
  82. package/build/src/Morse/MorseEncoding.js +94 -93
  83. package/build/src/Morse/MorseEncoding.js.map +1 -1
  84. package/build/src/Morse/MorseString.d.ts +10 -10
  85. package/build/src/Morse/MorseString.js +66 -65
  86. package/build/src/Morse/MorseString.js.map +1 -1
  87. package/build/src/Nato/NatoCharacter.d.ts +5 -5
  88. package/build/src/Nato/NatoCharacter.js +10 -9
  89. package/build/src/Nato/NatoCharacter.js.map +1 -1
  90. package/build/src/Nato/NatoData.d.ts +7 -7
  91. package/build/src/Nato/NatoData.js +51 -50
  92. package/build/src/Nato/NatoData.js.map +1 -1
  93. package/build/src/NavalFlags/NavalFlags.d.ts +7 -7
  94. package/build/src/NavalFlags/NavalFlags.js +52 -50
  95. package/build/src/NavalFlags/NavalFlags.js.map +1 -1
  96. package/build/src/Resistor/Resistor.d.ts +24 -24
  97. package/build/src/Resistor/Resistor.js +86 -85
  98. package/build/src/Resistor/Resistor.js.map +1 -1
  99. package/build/src/Resistor/ResistorColorEntry.d.ts +12 -12
  100. package/build/src/Resistor/ResistorColorEntry.js +31 -30
  101. package/build/src/Resistor/ResistorColorEntry.js.map +1 -1
  102. package/build/src/Semaphore/SemaphoreCharacter.d.ts +20 -20
  103. package/build/src/Semaphore/SemaphoreCharacter.js +75 -74
  104. package/build/src/Semaphore/SemaphoreCharacter.js.map +1 -1
  105. package/build/src/Semaphore/SemaphoreData.d.ts +6 -6
  106. package/build/src/Semaphore/SemaphoreData.js +53 -52
  107. package/build/src/Semaphore/SemaphoreData.js.map +1 -1
  108. package/build/src/Semaphore/SemaphoreDegrees.d.ts +5 -5
  109. package/build/src/Semaphore/SemaphoreDegrees.js +26 -25
  110. package/build/src/Semaphore/SemaphoreDegrees.js.map +1 -1
  111. package/build/src/Semaphore/SemaphoreDirection.d.ts +11 -11
  112. package/build/src/Semaphore/SemaphoreDirection.js +15 -14
  113. package/build/src/Semaphore/SemaphoreDirection.js.map +1 -1
  114. package/build/src/Semaphore/SemaphoreEncoding.d.ts +40 -40
  115. package/build/src/Semaphore/SemaphoreEncoding.js +47 -46
  116. package/build/src/Semaphore/SemaphoreEncoding.js.map +1 -1
  117. package/build/src/Semaphore/SemaphoreStream.d.ts +17 -17
  118. package/build/src/Semaphore/SemaphoreStream.js +72 -71
  119. package/build/src/Semaphore/SemaphoreStream.js.map +1 -1
  120. package/build/src/WordSearch/Point.d.ts +4 -4
  121. package/build/src/WordSearch/Point.js +2 -2
  122. package/build/src/WordSearch/Result.d.ts +6 -6
  123. package/build/src/WordSearch/Result.js +10 -9
  124. package/build/src/WordSearch/Result.js.map +1 -1
  125. package/build/src/WordSearch/WordSearchDirection.d.ts +6 -6
  126. package/build/src/WordSearch/WordSearchDirection.js +10 -9
  127. package/build/src/WordSearch/WordSearchDirection.js.map +1 -1
  128. package/build/src/WordSearch/WordSearchSolver.d.ts +27 -18
  129. package/build/src/WordSearch/WordSearchSolver.js +222 -171
  130. package/build/src/WordSearch/WordSearchSolver.js.map +1 -1
  131. package/build/src/index.d.ts +35 -35
  132. package/build/src/index.js +72 -70
  133. package/build/src/index.js.map +1 -1
  134. package/package.json +40 -39
  135. package/src/Braille/BrailleCharacter.ts +49 -0
  136. package/src/Braille/BrailleData.ts +131 -0
  137. package/src/Braille/BrailleDot.ts +9 -0
  138. package/src/Braille/BrailleEncoding.ts +144 -0
  139. package/src/Braille/BrailleStream.ts +87 -0
  140. package/src/Cipher/AutoKeyString.ts +35 -0
  141. package/src/Cipher/CaesarString.ts +38 -0
  142. package/src/Cipher/CaesarUtils.ts +69 -0
  143. package/src/Cipher/KeyedCipherStringBase.ts +35 -0
  144. package/src/Cipher/VigenereString.ts +21 -0
  145. package/src/Common/CharacterImage.ts +11 -0
  146. package/src/Common/EncodingCategory.ts +10 -0
  147. package/src/Common/EncodingCharacterBase.ts +72 -0
  148. package/src/Common/EncodingDataBase.ts +31 -0
  149. package/src/Common/EncodingEntry.ts +17 -0
  150. package/src/Common/EncodingLookupResult.ts +10 -0
  151. package/src/Common/Helpers.ts +13 -0
  152. package/src/Common/InlineSvg.ts +15 -0
  153. package/src/Conversion/CharacterAutoConvert.ts +108 -0
  154. package/src/Conversion/CharacterConversion.ts +89 -0
  155. package/src/Conversion/CharacterEncoding.ts +9 -0
  156. package/src/Conversion/CharacterTableEntry.ts +23 -0
  157. package/src/Conversion/SignificantFigures.ts +55 -0
  158. package/src/Conversion/StringAutoConvert.ts +56 -0
  159. package/src/Morse/MorseCharacter.ts +112 -0
  160. package/src/Morse/MorseData.ts +143 -0
  161. package/src/Morse/MorseEncoding.ts +98 -0
  162. package/src/Morse/MorseString.ts +106 -0
  163. package/src/Nato/NatoCharacter.ts +9 -0
  164. package/src/Nato/NatoData.ts +49 -0
  165. package/src/NavalFlags/LICENSE +7 -0
  166. package/src/NavalFlags/NavalFlags.ts +293 -0
  167. package/src/Resistor/Resistor.ts +135 -0
  168. package/src/Resistor/ResistorColorEntry.ts +43 -0
  169. package/src/Semaphore/SemaphoreCharacter.ts +107 -0
  170. package/src/Semaphore/SemaphoreData.ts +58 -0
  171. package/src/Semaphore/SemaphoreDegrees.ts +26 -0
  172. package/src/Semaphore/SemaphoreDirection.ts +11 -0
  173. package/src/Semaphore/SemaphoreEncoding.ts +48 -0
  174. package/src/Semaphore/SemaphoreStream.ts +89 -0
  175. package/src/WordSearch/Point.ts +4 -0
  176. package/src/WordSearch/Result.ts +10 -0
  177. package/src/WordSearch/WordSearchDirection.ts +6 -0
  178. package/src/WordSearch/WordSearchSolver.ts +271 -0
  179. package/src/index.ts +38 -0
  180. package/src/trie-prefix-tree.d.ts +70 -0
@@ -1,172 +1,223 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const trie = require("trie-prefix-tree");
4
- const Result_1 = require("./Result");
5
- const WordSearchDirection_1 = require("./WordSearchDirection");
6
- class WordSearchSolver {
7
- constructor() {
8
- // Use empty grid and list by default
9
- this._matrix = [[]];
10
- this._targets = trie([]);
11
- // Use both sets of directions by default
12
- this._directions = [
13
- // Cardinal directions
14
- [0, 1],
15
- [-1, 0],
16
- [1, 0],
17
- [0, -1],
18
- // Diagonal
19
- [1, 1],
20
- [-1, -1],
21
- [1, -1],
22
- [-1, 1],
23
- ];
24
- this._canBend = false;
25
- }
26
- setWords(words) {
27
- this._targets = trie([]);
28
- for (const full of words) {
29
- if (full === null || typeof full === 'undefined') {
30
- throw new Error('Invalid input in WordSearchSolver.findWords()');
31
- }
32
- const word = full.trim();
33
- if (word !== '') {
34
- this._targets.addWord(word);
35
- }
36
- else {
37
- throw new Error('Cannot find an empty string in the wordsearch');
38
- }
39
- }
40
- }
41
- setGrid(matrix) {
42
- this._matrix = matrix;
43
- }
44
- setDirections(direction) {
45
- this._directions = [];
46
- if (direction === WordSearchDirection_1.WordSearchDirection.Cardinal ||
47
- direction === WordSearchDirection_1.WordSearchDirection.CardinalAndDiagonal) {
48
- this._directions = this._directions.concat([
49
- [0, 1],
50
- [-1, 0],
51
- [1, 0],
52
- [0, -1],
53
- ]);
54
- }
55
- if (direction === WordSearchDirection_1.WordSearchDirection.Diagonal ||
56
- direction === WordSearchDirection_1.WordSearchDirection.CardinalAndDiagonal) {
57
- this._directions = this._directions.concat([
58
- [1, 1],
59
- [-1, -1],
60
- [1, -1],
61
- [-1, 1],
62
- ]);
63
- }
64
- }
65
- setCanBend(canBend) {
66
- this._canBend = canBend;
67
- }
68
- findWords() {
69
- const results = [];
70
- const numRows = this._matrix.length;
71
- for (let yIdx = 0; yIdx < numRows; yIdx++) {
72
- const lineLength = this._matrix[yIdx].length;
73
- for (let xIdx = 0; xIdx < lineLength; xIdx++) {
74
- const p = { x: xIdx, y: yIdx };
75
- const pointResults = this.search(p);
76
- results.push(...pointResults);
77
- }
78
- }
79
- return results;
80
- }
81
- search(start) {
82
- const results = [];
83
- if (this._canBend) {
84
- const history = [];
85
- const dfsResults = this.dfsCheck(start, new Set(), history);
86
- results.push(...dfsResults);
87
- }
88
- else {
89
- for (const translation of this._directions) {
90
- const directionalResults = this.lineCheck(start, translation);
91
- results.push(...directionalResults);
92
- }
93
- }
94
- return results;
95
- }
96
- dfsCheck(start, visited, history) {
97
- const results = [];
98
- if (visited.has(start)) {
99
- return results;
100
- }
101
- visited.add(start);
102
- history.push(start);
103
- let currentString = '';
104
- for (let i = 0; i < history.length; i++) {
105
- const pt = history[i];
106
- currentString = currentString + this._matrix[pt.y][pt.x];
107
- }
108
- const wordsWithPrefix = this._targets.getPrefix(currentString);
109
- if (wordsWithPrefix.length === 0) {
110
- visited.delete(start);
111
- history.pop();
112
- return results;
113
- }
114
- if (wordsWithPrefix.indexOf(currentString) !== -1) {
115
- const foundWord = new Result_1.Result(currentString, history);
116
- results.push(foundWord);
117
- }
118
- for (const translation of this._directions) {
119
- const next = {
120
- x: start.x + translation[0],
121
- y: start.y + translation[1],
122
- };
123
- if (this.isInBounds(next)) {
124
- results.push(...this.dfsCheck(next, visited, history));
125
- }
126
- }
127
- visited.delete(start);
128
- history.pop();
129
- return results;
130
- }
131
- lineCheck(start, direction) {
132
- const results = [];
133
- // Working set
134
- let currentPoint = start;
135
- let currentString = '';
136
- const pointHistory = [];
137
- while (this.isInBounds(currentPoint)) {
138
- currentString =
139
- currentString + this._matrix[currentPoint.y][currentPoint.x];
140
- // Get the candidates with the current prefix string
141
- const wordsWithPrefix = this._targets.getPrefix(currentString);
142
- // No point in going on, we've run out of possibilities
143
- if (wordsWithPrefix.length === 0) {
144
- break;
145
- }
146
- const p = { x: currentPoint.x, y: currentPoint.y };
147
- pointHistory.push(p);
148
- // Is a candidate an exact match for the current search string? Save it.
149
- if (wordsWithPrefix.indexOf(currentString) !== -1) {
150
- const foundWord = new Result_1.Result(currentString, pointHistory);
151
- results.push(foundWord);
152
- }
153
- const next = {
154
- x: currentPoint.x + direction[0],
155
- y: currentPoint.y + direction[1],
156
- };
157
- currentPoint = next;
158
- }
159
- return results;
160
- }
161
- isInBounds(point) {
162
- if (point.y < 0 || point.y >= this._matrix.length) {
163
- return false;
164
- }
165
- if (point.x < 0 || point.x >= this._matrix[point.y].length) {
166
- return false;
167
- }
168
- return true;
169
- }
170
- }
171
- exports.WordSearchSolver = WordSearchSolver;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WordSearchSolver = exports.WordSearchSpaceTreatment = void 0;
4
+ const trie = require("trie-prefix-tree");
5
+ const Result_1 = require("./Result");
6
+ const WordSearchDirection_1 = require("./WordSearchDirection");
7
+ var WordSearchSpaceTreatment;
8
+ (function (WordSearchSpaceTreatment) {
9
+ WordSearchSpaceTreatment[WordSearchSpaceTreatment["None"] = 0] = "None";
10
+ WordSearchSpaceTreatment[WordSearchSpaceTreatment["RemoveWithinPuzzle"] = 1] = "RemoveWithinPuzzle";
11
+ WordSearchSpaceTreatment[WordSearchSpaceTreatment["RemoveAll"] = 2] = "RemoveAll";
12
+ })(WordSearchSpaceTreatment = exports.WordSearchSpaceTreatment || (exports.WordSearchSpaceTreatment = {}));
13
+ class WordSearchSolver {
14
+ constructor() {
15
+ // Use empty grid and list by default
16
+ this._matrix = [[]];
17
+ this._targets = trie([]);
18
+ // Use both sets of directions by default
19
+ this._directions = [
20
+ // Cardinal directions
21
+ [0, 1],
22
+ [-1, 0],
23
+ [1, 0],
24
+ [0, -1],
25
+ // Diagonal
26
+ [1, 1],
27
+ [-1, -1],
28
+ [1, -1],
29
+ [-1, 1],
30
+ ];
31
+ this._canBend = false;
32
+ this._spaceTreatment = WordSearchSpaceTreatment.None;
33
+ }
34
+ setWords(words) {
35
+ this._targets = trie([]);
36
+ for (const full of words) {
37
+ if (full === null || typeof full === 'undefined') {
38
+ throw new Error('Invalid input in WordSearchSolver.findWords()');
39
+ }
40
+ const word = full.trim();
41
+ if (word !== '') {
42
+ this._targets.addWord(word);
43
+ }
44
+ else {
45
+ throw new Error('Cannot find an empty string in the wordsearch');
46
+ }
47
+ }
48
+ }
49
+ parseGrid(gridInputText) {
50
+ const lines = gridInputText.split(/\r?\n/);
51
+ const grid = [];
52
+ for (const line of lines) {
53
+ grid.push(line.split(''));
54
+ }
55
+ this.setGrid(grid);
56
+ }
57
+ setGrid(matrix) {
58
+ this._matrix = matrix;
59
+ this.checkSpaces();
60
+ }
61
+ setDirections(direction) {
62
+ this._directions = [];
63
+ if (direction === WordSearchDirection_1.WordSearchDirection.Cardinal ||
64
+ direction === WordSearchDirection_1.WordSearchDirection.CardinalAndDiagonal) {
65
+ this._directions = this._directions.concat([
66
+ [0, 1],
67
+ [-1, 0],
68
+ [1, 0],
69
+ [0, -1],
70
+ ]);
71
+ }
72
+ if (direction === WordSearchDirection_1.WordSearchDirection.Diagonal ||
73
+ direction === WordSearchDirection_1.WordSearchDirection.CardinalAndDiagonal) {
74
+ this._directions = this._directions.concat([
75
+ [1, 1],
76
+ [-1, -1],
77
+ [1, -1],
78
+ [-1, 1],
79
+ ]);
80
+ }
81
+ }
82
+ setSpaceTreatment(treatment) {
83
+ this._spaceTreatment = treatment;
84
+ if (this._matrix.length > 0) {
85
+ this.checkSpaces();
86
+ }
87
+ }
88
+ setCanBend(canBend) {
89
+ this._canBend = canBend;
90
+ }
91
+ findWords() {
92
+ const results = [];
93
+ const numRows = this._matrix.length;
94
+ for (let yIdx = 0; yIdx < numRows; yIdx++) {
95
+ const lineLength = this._matrix[yIdx].length;
96
+ for (let xIdx = 0; xIdx < lineLength; xIdx++) {
97
+ const p = { x: xIdx, y: yIdx };
98
+ const pointResults = this.search(p);
99
+ results.push(...pointResults);
100
+ }
101
+ }
102
+ return results;
103
+ }
104
+ search(start) {
105
+ const results = [];
106
+ if (this._canBend) {
107
+ const history = [];
108
+ const dfsResults = this.dfsCheck(start, new Set(), history);
109
+ results.push(...dfsResults);
110
+ }
111
+ else {
112
+ for (const translation of this._directions) {
113
+ const directionalResults = this.lineCheck(start, translation);
114
+ results.push(...directionalResults);
115
+ }
116
+ }
117
+ return results;
118
+ }
119
+ dfsCheck(start, visited, history) {
120
+ const results = [];
121
+ if (visited.has(start)) {
122
+ return results;
123
+ }
124
+ visited.add(start);
125
+ history.push(start);
126
+ let currentString = '';
127
+ for (let i = 0; i < history.length; i++) {
128
+ const pt = history[i];
129
+ currentString = currentString + this._matrix[pt.y][pt.x];
130
+ }
131
+ const wordsWithPrefix = this._targets.getPrefix(currentString);
132
+ if (wordsWithPrefix.length === 0) {
133
+ visited.delete(start);
134
+ history.pop();
135
+ return results;
136
+ }
137
+ if (wordsWithPrefix.indexOf(currentString) !== -1) {
138
+ const foundWord = new Result_1.Result(currentString, history);
139
+ results.push(foundWord);
140
+ }
141
+ for (const translation of this._directions) {
142
+ const next = {
143
+ x: start.x + translation[0],
144
+ y: start.y + translation[1],
145
+ };
146
+ if (this.isInBounds(next)) {
147
+ results.push(...this.dfsCheck(next, visited, history));
148
+ }
149
+ }
150
+ visited.delete(start);
151
+ history.pop();
152
+ return results;
153
+ }
154
+ lineCheck(start, direction) {
155
+ const results = [];
156
+ // Working set
157
+ let currentPoint = start;
158
+ let currentString = '';
159
+ const pointHistory = [];
160
+ while (this.isInBounds(currentPoint)) {
161
+ currentString =
162
+ currentString + this._matrix[currentPoint.y][currentPoint.x];
163
+ // Get the candidates with the current prefix string
164
+ const wordsWithPrefix = this._targets.getPrefix(currentString);
165
+ // No point in going on, we've run out of possibilities
166
+ if (wordsWithPrefix.length === 0) {
167
+ break;
168
+ }
169
+ const p = { x: currentPoint.x, y: currentPoint.y };
170
+ pointHistory.push(p);
171
+ // Is a candidate an exact match for the current search string? Save it.
172
+ if (wordsWithPrefix.indexOf(currentString) !== -1) {
173
+ const foundWord = new Result_1.Result(currentString, pointHistory);
174
+ results.push(foundWord);
175
+ }
176
+ const next = {
177
+ x: currentPoint.x + direction[0],
178
+ y: currentPoint.y + direction[1],
179
+ };
180
+ currentPoint = next;
181
+ }
182
+ return results;
183
+ }
184
+ isInBounds(point) {
185
+ if (point.y < 0 || point.y >= this._matrix.length) {
186
+ return false;
187
+ }
188
+ if (point.x < 0 || point.x >= this._matrix[point.y].length) {
189
+ return false;
190
+ }
191
+ return true;
192
+ }
193
+ checkSpaces() {
194
+ if (this._matrix.length === 0 ||
195
+ this._spaceTreatment === WordSearchSpaceTreatment.None) {
196
+ return;
197
+ }
198
+ const nextMatrix = [];
199
+ for (let yIdx = 0; yIdx < this._matrix.length; yIdx++) {
200
+ const line = [];
201
+ let inPuzzle = false;
202
+ for (let xIdx = 0; xIdx < this._matrix[yIdx].length; xIdx++) {
203
+ const letter = this._matrix[yIdx][xIdx];
204
+ if (letter !== ' ') {
205
+ inPuzzle = true;
206
+ }
207
+ if (this._spaceTreatment === WordSearchSpaceTreatment.RemoveAll &&
208
+ letter !== ' ') {
209
+ line.push(this._matrix[yIdx][xIdx]);
210
+ }
211
+ else if (letter !== ' ' && inPuzzle) {
212
+ line.push(this._matrix[yIdx][xIdx]);
213
+ }
214
+ }
215
+ if (line.length > 0) {
216
+ nextMatrix.push(line);
217
+ }
218
+ }
219
+ this._matrix = nextMatrix;
220
+ }
221
+ }
222
+ exports.WordSearchSolver = WordSearchSolver;
172
223
  //# sourceMappingURL=WordSearchSolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WordSearchSolver.js","sourceRoot":"","sources":["../../../src/WordSearch/WordSearchSolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WordSearchSolver.js","sourceRoot":"","sources":["../../../src/WordSearch/WordSearchSolver.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,35 @@
1
- export { BrailleCharacter } from './Braille/BrailleCharacter';
2
- export { BrailleDot } from './Braille/BrailleDot';
3
- export { BrailleEncoding } from './Braille/BrailleEncoding';
4
- export { BrailleStream } from './Braille/BrailleStream';
5
- export { AutoKeyString } from './Cipher/AutoKeyString';
6
- export { CaesarString } from './Cipher/CaesarString';
7
- export { KeyedCipherStringBase } from './Cipher/KeyedCipherStringBase';
8
- export { VigenereString } from './Cipher/VigenereString';
9
- export { CharacterImage } from './Common/CharacterImage';
10
- export { EncodingCategory } from './Common/EncodingCategory';
11
- export { EncodingEntry } from './Common/EncodingEntry';
12
- export { InlineSvg } from './Common/InlineSvg';
13
- export { CharacterAutoConvert } from './Conversion/CharacterAutoConvert';
14
- export { CharacterConversion } from './Conversion/CharacterConversion';
15
- export { CharacterEncoding } from './Conversion/CharacterEncoding';
16
- export { CharacterTableEntry } from './Conversion/CharacterTableEntry';
17
- export { SignificantFigures } from './Conversion/SignificantFigures';
18
- export { StringAutoConvert } from './Conversion/StringAutoConvert';
19
- export { MorseCharacter } from './Morse/MorseCharacter';
20
- export { MorseEncoding } from './Morse/MorseEncoding';
21
- export { MorseString } from './Morse/MorseString';
22
- export { NatoCharacter } from './Nato/NatoCharacter';
23
- export { NatoData } from './Nato/NatoData';
24
- export { NavalFlags } from './NavalFlags/NavalFlags';
25
- export { Resistor } from './Resistor/Resistor';
26
- export { ResistorColorEntry } from './Resistor/ResistorColorEntry';
27
- export { SemaphoreCharacter } from './Semaphore/SemaphoreCharacter';
28
- export { SemaphoreDegrees } from './Semaphore/SemaphoreDegrees';
29
- export { SemaphoreDirection } from './Semaphore/SemaphoreDirection';
30
- export { SemaphoreEncoding } from './Semaphore/SemaphoreEncoding';
31
- export { SemaphoreStream } from './Semaphore/SemaphoreStream';
32
- export { Point as WordSearchPoint } from './WordSearch/Point';
33
- export { Result as WordSearchResult } from './WordSearch/Result';
34
- export { WordSearchDirection } from './WordSearch/WordSearchDirection';
35
- export { WordSearchSolver } from './WordSearch/WordSearchSolver';
1
+ export { BrailleCharacter } from './Braille/BrailleCharacter';
2
+ export { BrailleDot } from './Braille/BrailleDot';
3
+ export { BrailleEncoding } from './Braille/BrailleEncoding';
4
+ export { BrailleStream } from './Braille/BrailleStream';
5
+ export { AutoKeyString } from './Cipher/AutoKeyString';
6
+ export { CaesarString } from './Cipher/CaesarString';
7
+ export { KeyedCipherStringBase } from './Cipher/KeyedCipherStringBase';
8
+ export { VigenereString } from './Cipher/VigenereString';
9
+ export { CharacterImage } from './Common/CharacterImage';
10
+ export { EncodingCategory } from './Common/EncodingCategory';
11
+ export { EncodingEntry } from './Common/EncodingEntry';
12
+ export { InlineSvg } from './Common/InlineSvg';
13
+ export { CharacterAutoConvert } from './Conversion/CharacterAutoConvert';
14
+ export { CharacterConversion } from './Conversion/CharacterConversion';
15
+ export { CharacterEncoding } from './Conversion/CharacterEncoding';
16
+ export { CharacterTableEntry } from './Conversion/CharacterTableEntry';
17
+ export { SignificantFigures } from './Conversion/SignificantFigures';
18
+ export { StringAutoConvert } from './Conversion/StringAutoConvert';
19
+ export { MorseCharacter } from './Morse/MorseCharacter';
20
+ export { MorseEncoding } from './Morse/MorseEncoding';
21
+ export { MorseString } from './Morse/MorseString';
22
+ export { NatoCharacter } from './Nato/NatoCharacter';
23
+ export { NatoData } from './Nato/NatoData';
24
+ export { NavalFlags } from './NavalFlags/NavalFlags';
25
+ export { Resistor } from './Resistor/Resistor';
26
+ export { ResistorColorEntry } from './Resistor/ResistorColorEntry';
27
+ export { SemaphoreCharacter } from './Semaphore/SemaphoreCharacter';
28
+ export { SemaphoreDegrees } from './Semaphore/SemaphoreDegrees';
29
+ export { SemaphoreDirection } from './Semaphore/SemaphoreDirection';
30
+ export { SemaphoreEncoding } from './Semaphore/SemaphoreEncoding';
31
+ export { SemaphoreStream } from './Semaphore/SemaphoreStream';
32
+ export { Point as WordSearchPoint } from './WordSearch/Point';
33
+ export { Result as WordSearchResult } from './WordSearch/Result';
34
+ export { WordSearchDirection } from './WordSearch/WordSearchDirection';
35
+ export { WordSearchSolver, WordSearchSpaceTreatment, } from './WordSearch/WordSearchSolver';