bridges-cli 0.1.0 → 0.2.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.
@@ -245,42 +245,124 @@ export const samplePuzzles: PuzzleData[] = [
245
245
  solution:
246
246
  '9x9:a3=a5-a1a.1|a2#2-a3.||a##|b#.2|a#2|2=6.|3=8=4-1#.5=2#4=b5.#b##c|.4=a4#2=a3.a1-a4-a1a',
247
247
  },
248
- { encoding: '9x9:3c1a3a3.b2b3c.3c2a2b.e4b6.3a4a8b3a.a1a3a2c.3a3a2b1a.c4a5b3.3a5a3b2a' },
249
- { encoding: '9x9:4a3b3a1a.a3b4a1a3.4h.b3a3a4a6.a1a1a2a2a.5a8a5a3b.h3.1a2a4b4a.a1a2b3a3' },
250
- { encoding: '9x9:a1b4b3a.3b4d1.d2a1b.a3a8a3a4a.2c1c3.a4a3a3a4a.b1a3d.1d3b4.a4b4b1a' },
251
- { encoding: '9x9:2a5a6b2a.a1d1a2.3a2b1a2a.a4b8a4b.3g3.b3a3b2a.a2a1b3a3.1a3d2a.a3b4a3a2' },
252
- { encoding: '9x9:3a3a2c1.a3d3b.b2b1c.4b2b8a4.a2e2a.4a5b1b2.c1b3b.b3b2a3a.2c2a3a3' },
253
- { encoding: '9x9:4a2b1b3.a2b3a3b.5a4b1c.h3.b5a4a5b.1h.c1b3a4.b2a3b2a.1b3b2a3' },
254
- { encoding: '9x9:1a2a3a4a3.a2a4a4a2a.1c2d.a5a4a2b3.b3a8b3a.3b1d3.b1b3a3a.a2b2d.4b4a3b3' },
255
- { encoding: '9x9:a2b3a4a4.3a4b2a2a.a2a5b4b.5a4d3a.c2a3c.a2d2a4.b3b3a2a.a4a3b2a2.3a2a2b2a' },
256
- { encoding: '9x9:1a1a4a3a2.a3a2a2a3a.2g3.a2b3b3a.3b4a3b6.a3b4b3a.2g3.a4a2a1a2a.3a2a3a3a3' },
257
- { encoding: '9x9:2a3a4a3a2.a2a2a2a1a.b1a3d.2d1b2.a3b8b4a.4b4d2.d3a2b.a1a4a1a1a.1a1a2a3a2' },
258
- { encoding: '9x9:3a4a3a2a2.a2c3a3a.2a1e2.a3b2a1b.4a2b2a1a.a1b2a5a4.b2b3c.3c1a2b.a2a3a3b3' },
259
- { encoding: '9x9:2b4b5a4.b3b4a2a.f1b.1a2a3c4.a4a3a3a3a.2c4a5a4.b1f.a2a2b3b.3a5b4b3' },
260
- { encoding: '9x9:4a3a3b3a.a1a3b3a2.4a2a2b2a.a1a1e.2a5a8a4a4.e2a2a.a3b3a2a6.1a2b2a1a.a4b4a2a3' },
261
- { encoding: '9x9:2b5b4a2.a1e1a.d1a3b.a4a8a2a3a.3a1a3a3a3.a2a2a2a6a.b2a2d.a2e3a.4a3b1b2' },
262
- { encoding: '9x9:3a1a1a3a3.a2a1e.b2a7a4b.3d2b5.a2b4a3b.h3.3a2a3a4b.a2a3a3b4.2a3d2a' },
263
- { encoding: '9x9:1a3b3b3.a2g.2a3a1a2a6.a4a1a3a3a.b1a2c4.3d3a6a.a4b6a1a3.e1a2a.3a3a5a5a3' },
248
+ {
249
+ encoding: '9x9:3c1a3a3.b2b3c.3c2a2b.e4b6.3a4a8b3a.a1a3a2c.3a3a2b1a.c4a5b3.3a5a3b2a',
250
+ solution:
251
+ '9x9:3-b1a3-3.#a2-a3#a#.3a|a2#2a#.|a|a#4=a6.3-4=8=a3#.|1-3#2a|#.3-3#2#a1#.|a#4=5-a3.3=5-3=a2a',
252
+ },
253
+ {
254
+ encoding: '9x9:4a3b3a1a.a3b4a1a3.4h.b3a3a4a6.a1a1a2a2a.5a8a5a3b.h3.1a2a4b4a.a1a2b3a3',
255
+ solution:
256
+ '9x9:4=3-a3-1a.#3=a4|1-3.4|b#|b#.#|3-3|4=6.#1#1-2#2#.5=8=5-3##.|a#a#b#3.1a2a4=a4|.a1-2-a3=3',
257
+ },
258
+ {
259
+ encoding: '9x9:a1b4b3a.3b4d1.d2a1b.a3a8a3a4a.2c1c3.a4a3a3a4a.b1a3d.1d3b4.a4b4b1a',
260
+ solution:
261
+ '9x9:a1-a4=a3a.3=a4|b|1.|b#2-1||.|3=8=3-4|.2|a#1b#3.|4-3|3=4#.|#1-3|b#.1#b|3=a4.a4=a4-a1a',
262
+ },
263
+ {
264
+ encoding: '9x9:2a5a6b2a.a1d1a2.3a2b1a2a.a4b8a4b.3g3.b3a3b2a.a2a1b3a3.1a3d2a.a3b4a3a2',
265
+ solution:
266
+ '9x9:2-5=6=a2a.|1#a#a1-2.3|2a#1-2|.#4=a8=4||.3|b#a#|3.||3-3a#2#.|2#1-a3|3.1|3-c2|.a3=a4=3-2',
267
+ },
268
+ {
269
+ encoding: '9x9:3a3a2c1.a3d3b.b2b1c.4b2b8a4.a2e2a.4a5b1b2.c1b3b.b3b2a3a.2c2a3a3',
270
+ solution:
271
+ '9x9:3-3=2c1.#3-c3a|.##2-a1#a|.4#|2=a8=4.#2|c#2|.4-5-a1##2.|a#1-a3#|.|a3-a2-3|.2-b2-3=3',
272
+ },
273
+ {
274
+ encoding: '9x9:4a2b1b3.a2b3a3b.5a4b1c.h3.b5a4a5b.1h.c1b3a4.b2a3b2a.1b3b2a3',
275
+ solution:
276
+ '9x9:4=2b1-a3.#2=a3-3a#.5=4-a1#a#.|a|c#a3.|a5=4-5a|.1a#a|a#a|.b#1|a3-4.b2|3=a2#.1-a3-a2-3',
277
+ },
278
+ {
279
+ encoding: '9x9:1a2a3a4a3.a2a4a4a2a.1c2d.a5a4a2b3.b3a8b3a.3b1d3.b1b3a3a.a2b2d.4b4a3b3',
280
+ solution:
281
+ '9x9:1-2-3=4=3.a2-4-4=2|.1|a#2|b|.|5=4#2-a3.|#3=8=a3|.3#|1#b|3.##1|#3=3#.#2a|2|b#.4=a4-3-a3',
282
+ },
283
+ {
284
+ encoding: '9x9:a2b3a4a4.3a4b2a2a.a2a5b4b.5a4d3a.c2a3c.a2d2a4.b3b3a2a.a4a3b2a2.3a2a2b2a',
285
+ solution:
286
+ '9x9:a2=a3-4=4.3=4=a2|2#.|2=5=a4##.5=4|b|3#.#a#2-3||#.#2#b#2|4.##3-a3|2#.#4=3-a2|2.3-2-2-a2a',
287
+ },
288
+ {
289
+ encoding: '9x9:1a1a4a3a2.a3a2a2a3a.2g3.a2b3b3a.3b4a3b6.a3b4b3a.2g3.a4a2a1a2a.3a2a3a3a3',
290
+ solution:
291
+ '9x9:1a1-4=3-2.|3-2|2=3|.2#a||b|3.|2a|3=a3#.3=a4-3=a6.a3-a4=a3#.2#b|b|3.#4=2|1-2|.3-2-3-3=3',
292
+ },
293
+ {
294
+ encoding: '9x9:2a3a4a3a2.a2a2a2a1a.b1a3d.2d1b2.a3b8b4a.4b4d2.d3a2b.a1a4a1a1a.1a1a2a3a2',
295
+ solution:
296
+ '9x9:2-3=4=3-2.|2-2-2a1|.||1-3|a||.2|b#1a|2.|3=a8=a4|.4=a4#b|2.|b#3-2||.|1-4-1|1|.1a1-2-3-2',
297
+ },
298
+ {
299
+ encoding: '9x9:3a4a3a2a2.a2c3a3a.2a1e2.a3b2a1b.4a2b2a1a.a1b2a5a4.b2b3c.3c1a2b.a2a3a3b3',
300
+ solution:
301
+ '9x9:3=4-3-2-2.|2|a|3=3|.2#1a||a|2.|3-a2|1||.4-2-a2|1|.#1-a2-5-4.#a2=a3#a#.3-b1|2a#.a2=3-3-a3',
302
+ },
303
+ {
304
+ encoding: '9x9:2b4b5a4.b3b4a2a.f1b.1a2a3c4.a4a3a3a3a.2c4a5a4.b1f.a2a2b3b.3a5b4b3',
305
+ solution:
306
+ '9x9:2=a4=a5=4.b3=a4|2#.b|b#1##.1a2-3#a#4.|4=3#3-3#.2#a|4=5-4.|#1|b#a|.|2|2-a3a|.3=5=a4=a3',
307
+ },
308
+ {
309
+ encoding: '9x9:4a3a3b3a.a1a3b3a2.4a2a2b2a.a1a1e.2a5a8a4a4.e2a2a.a3b3a2a6.1a2b2a1a.a4b4a2a3',
310
+ solution:
311
+ '9x9:4=3-3=a3a.#1-3-a3|2.4-2|2a#2#.|1|1#a#|#.2|5=8=4|4.||#a#2-2#.|3#a3|2=6.1#2a|2-1#.a4=a4-2-3',
312
+ },
313
+ {
314
+ encoding: '9x9:2b5b4a2.a1e1a.d1a3b.a4a8a2a3a.3a1a3a3a3.a2a2a2a6a.b2a2d.a2e3a.4a3b1b2',
315
+ solution:
316
+ '9x9:2-a5=a4-2.|1a#b|1|.||a#1-3||.|4=8=2|3|.3|1#3=3#3.#2|2|2=6#.#|2-2b##.#2-d3#.4=3-a1b2',
317
+ },
318
+ {
319
+ encoding: '9x9:3a1a1a3a3.a2a1e.b2a7a4b.3d2b5.a2b4a3b.h3.3a2a3a4b.a2a3a3b4.2a3d2a',
320
+ solution:
321
+ '9x9:3-1a1a3-3.#2-1|a#a#.#|2=7=4a#.3|b#2=a5.|2-a4-3a|.|e#a3.3-2-3=4a#.|2=3-3=a4.2-3=c2a',
322
+ },
323
+ {
324
+ encoding: '9x9:1a3b3b3.a2g.2a3a1a2a6.a4a1a3a3a.b1a2c4.3d3a6a.a4b6a1a3.e1a2a.3a3a5a5a3',
325
+ solution:
326
+ '9x9:1-3-a3-a3.a2|b|b#.2#3-1|2=6.#4|1-3-3#.##1a2b#4.3#b#3=6#.|4=a6|1#3|.|c#1|2|.3=3-5=5=3',
327
+ },
264
328
  {
265
329
  encoding:
266
330
  '9x16:a3a2a5a2a.2a3a2a2a2.e3c.a2b1a1b.4a4b4b4.a3b1a1b.2a2b5c.a4a4b2a4.d2d.3b5a3a2a.b1e3.d4b2a.3a3c2a4.a1a2e.1a2a3a3b.a2c2b3',
331
+ solution:
332
+ '9x16:a3-2-5=2a.2#3-2#2-2.###a|3|a|.#2#a1|1a|.4-4-a4-a4.|3-a1|1a#.2#2=a5|a#.|4=4a#2-4.|b#2#b|.3-a5#3-2|.|a1##b|3.|a|#4-a2#.3-3#|a2a4.|1|2|a#a#.1|2-3-3a#.a2-b2-a3',
267
333
  },
268
334
  {
269
335
  encoding:
270
336
  '9x16:a2a2a3a3a.2a2a4a1a2.e2a3a.a3b5a3a5.5a3b2a3a.a2f2.b3a4b3a.a3a1e.2a1a4a3a2.a4a2e.3a1a2b3a.a5a2b3a3.3a3b1c.a2a2c3a.2a3a2a3a2.a2a6a3a2a',
337
+ solution:
338
+ '9x16:a2-2-3=3a.2|2=4-1|2.#|b|2=3#.#3=a5-3=5.5=3a|2=3|.|2|a|b|2.|#3-4-a3|.|3|1|b||.2|1|4=3|2.|4-2|a|||.3#1-2a|3|.#5-2-a3#3.3#3-a1|##.|2#2b|3#.2-3#2=3|2.a2=6=3-2a',
271
339
  },
272
340
  {
273
341
  encoding:
274
342
  '9x16:2a3b2b2.a1b2d.2e1a3.b4a8b2a.2b1b2a4.e1c.1a1a4b2a.a3a2d2.2d3a3a.a5b5a2a4.c1e.3a2b2b3.a2b3a1b.4a4e3.d2b1a.3b4b2a3.',
343
+ solution:
344
+ '9x16:2-3-a2-a2.|1|a2c|.2||a#a1-3.||4=8=a2|.2||1#a2=4.||||#1b|.1|1|4|a2|.a3-2#|a#2.2|b#3-3|.#5=a5|2=4.##a1||b|.3#2||2-a3.|2#|3-1a|.4=4||c3.|b|2-a1#.3=a4-a2-3.',
275
345
  },
276
346
  {
277
347
  encoding:
278
348
  '13x22:1a2b2b3a2a2.i1a2a.3b3b3a3a1b.a3c1f2.b3c4b1c.3g2b4a.b5b2f3.i2a3a.3a4a1a1a1a1a5.e3c4c.a3a3c1d3.2d2c4a1a.c5c2e.2a1a3a3a3a5a4.a4a2i.3f3b4b.a4b3g2.3b3b3c2b.g4c2a.b1a1a2b3b4.a1a1i.2a2a3b3b2a3',
349
+ solution:
350
+ '13x22:1-2-a2-a3-2-2.h|1-2|.3=a3-a3-3-1||.|3-b1|d|2.|#3-b4-a1a||.3##c|a2-a4|.##5-a2|a|b#3.###b||a|2-3#.3#4-1|1a1|1-5.|#|b3=b4b#.|3|3-b1a|b3.2||#a2=b4-1|.|||5=b2d|.2|1|3-3-3=5=4.|4-2#a|c|a|.3#b#a|3-a4a|.#4-a3a|#b#a2.3|a3=a3#b2a|.||a|c4=b2|.||1|1a2=a3-a4.|1|1|g#.2-2a3=a3-a2-3',
351
+ },
352
+ {
353
+ encoding: '9x9:3b3b4a2.a2c1c.b1a4a2b.3d2b3.a2b5b1a.4b2a2b2.b1a3b2a.a1c2b1.2a3d3a',
354
+ solution:
355
+ '9x9:3-a3=a4-2.#2-b1|a|.#|1-4-2a|.3|b#2-a3.|2-a5|a1|.4=a2#2a|2.|a1-3|a2|.|1-b2a|1.2-3=c3a',
356
+ },
357
+ {
358
+ encoding: '9x9:4b4b4a4.b1a1d.2b1d3.d2a2b.4a4b3b4.a4b4b2a.2a1c2a2.a2e1a.2a4a3a4a2',
359
+ solution:
360
+ '9x9:4=a4-a4=4.#a1|1a|a#.2a|1|a|a3.b|a2-2a|.4=4-a3=a4.#4=a4-a2|.2#1a|a2|2.a2|a|a#1|.2=4-3-4-2',
279
361
  },
280
- { encoding: '9x9:3b3b4a2.a2c1c.b1a4a2b.3d2b3.a2b5b1a.4b2a2b2.b1a3b2a.a1c2b1.2a3d3a' },
281
- { encoding: '9x9:4b4b4a4.b1a1d.2b1d3.d2a2b.4a4b3b4.a4b4b2a.2a1c2a2.a2e1a.2a4a3a4a2' },
282
362
  {
283
363
  encoding:
284
- '21x35:a1a3b4a2a2a4b3a2b2.3c2b1e4b6a2b.b4c3a2c3d2a2a.a2a4a5a3b2b4a2d2.3a2a2a4a3c2c2d.a4a3a3a2b5b4a4a3a1a.3c4f4b3a3a2b.a2a2b3a4a3a2b5a4b5.4a2b4a1a3a7b2a1a1b.a2a3b5a4d1a3a3b4.3c4f2i.a2a2b4b5b5a3a3a4a4.e5b3a4f2a2a.4a3a5i1a2a2a3.a3a2a3a3a4b6b3a3a4a.3a2a3a2a2a4b2b4a3a3.a2a3e4k.4a4a2c2a3a5a3b5b3.a1a3b3b6c2b3d.1a3b3a3b1g2a2.a3a4b2b4b6b2a4c.2g2b2b2a2a3a2.a2a6a4a6d2b1a4c.5a4a4a2a2b4b8a3a1a2.a1a4a2a7b4b4a2a5a3a.b4e2b3b4c2b.3c6b7a3c2a2a1b3.a3a2o2a.3a5a5a3b3a4b5b2b3.e2a3e1d4b.3b2b3b2d2b2a',
364
+ '21x35:a1a3b4a2a2a4b3a2b2.3c2b1e4b6a2b.b4c3a2c3d2a2a.a2a4a5a3b2b4a2d2.3a2a2a4a3c2c2d.a4a3a3a2b5b4a4a3a1a.3c4f4b3a3a2b.a2a2b3a4a3a2b5a4b5.4a2b4a1a3a7b2a1a1b.a2a3b5a4d1a3a3b4.3c4f2i.a2a2b4b5b5a3a3a4a4.e5b3a4f2a2a.4a3a5i1a2a2a3.a3a2a3a3a4b6b3a3a4a.3a2a3a2a2a4b2b4a3a3.a2a3e4k.4a4a2c2a3a5a3b5b3.a1a3b3b6c2b3d.1a3b3a3b1g2a2.a3a4b2b4b6b2a4c.2g2b2b2a2a3a2.a2a6a4a6d2b1a4c.5a4a4a2a2b4b8a3a1a2.a1a4a2a7b4b4a2a5a3a.b4e2b3b4c2b.3c6b7a3c2a2a1b3.a3a2o2a.3a5a5a3b3a4b5b2b3.e2a3e1d4b.3b2b3b2d2b2a3a.b2b3a3c5a5b5a5a3.4c1a3a3a3a2a2b1a4a.a3a5a5a3a2a3a4b2a1a2.4a4a4a4a3a3a3a4b4a4a',
365
+ solution:
366
+ '21x35:a1-3=a4-2a2-4=a3-2-a2.3=b2a|1|a|a|4=a6=2a|.|a4=b3|2a|a3#b#2-2|.|2#4=5=3|a2a#4-2#|a|2.3#2#2|4=3a|a2|a|2|a||.#4-3#3#2-a5=a4-4=3a1|.3|b4##|b|4=a3-3=2a|.|2-2##3|4=3#2=a5-4=a5.4=2|#4|1#3-7=a2#1|1a#.|2-3##5=4#a#a1-3|3|a4.3|a|4##b#a2d|#|a#.#2-2##4=a5-a5=3-3#4-4.#c#5-a3=4a#c|2#2|.4-3=5#d#a#a1-2a2#3.|3-2|3-3=4#a6=a3-3=4#.3#2|3-2-2#4a#2=a4=3-3.#2#3|c|4#a#h.4-4#2-b2#3a5=3-a5=a3.|1|3-a3=a6|a|2=a3#b|.1|3=a3-3a#1a|c|#2-2.a3-4=a2#a4=a6-a2|4|b.2|a|c#2-a2#a2|2#3-2.#2-6=4=6|b|2a#1|4|a|.5=4#4=2#2-a4=a8=3#1a2.|1#4#2=7=a4=a4#2-5=3|.||4##b|2=a3a#4|b2||.3|##6=a7=3a|a2#2-1#|3.#3#2#b#a|a|b#c#2#.3#5-5-3#a3a4-a5-a2#|3.|##a|2#3a#a#a1|b|4||.3##2|#3|a2a#a|2-a2#3|.##2#|3|3=b5-5-a5=5#3.4#a#1|3=3-3=2#2a#1|4#.#3-5=5=3-2-3=4#a2|1#2.4=4=4=4=3-3=3-4-a4=4a',
285
367
  },
286
368
  ]
@@ -8,6 +8,7 @@ type UsePuzzleInputProps = {
8
8
  puzzlesLength: number
9
9
  rows: { value: number | '-' | '=' | '#' | ' ' | '|' }[][]
10
10
  showSolution: boolean
11
+ enableSolutions: boolean
11
12
  onPrev: () => void
12
13
  onNext: () => void
13
14
  onToggleSolution: () => void
@@ -136,6 +137,7 @@ export default function usePuzzleInput({
136
137
  puzzlesLength,
137
138
  rows,
138
139
  showSolution,
140
+ enableSolutions,
139
141
  onPrev,
140
142
  onNext,
141
143
  onToggleSolution,
@@ -280,7 +282,7 @@ export default function usePuzzleInput({
280
282
  onPrev()
281
283
  resetSelection()
282
284
  return
283
- } else if (input === 's') {
285
+ } else if (input === 's' && enableSolutions) {
284
286
  onToggleSolution()
285
287
  resetSelection()
286
288
  return
@@ -366,7 +368,7 @@ export default function usePuzzleInput({
366
368
  onNext()
367
369
  } else if (input === 'p' && puzzleIndexRef.current - 1 >= 0) {
368
370
  onPrev()
369
- } else if (input === 's') {
371
+ } else if (input === 's' && enableSolutions) {
370
372
  onToggleSolution()
371
373
  } else if (input >= '1' && input <= '8') {
372
374
  if (showSolutionRef.current) return