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