trackler 2.2.1.176 → 2.2.1.177

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/isbn-verifier/canonical-data.json +9 -9
  4. data/tracks/bash/docs/LEARNING.md +1 -1
  5. data/tracks/bash/docs/RESOURCES.md +7 -3
  6. data/tracks/clojure/docs/RESOURCES.md +1 -1
  7. data/tracks/crystal/config.json +1 -0
  8. data/tracks/crystal/docs/ABOUT.md +3 -1
  9. data/tracks/crystal/exercises/gigasecond/spec/gigasecond_spec.cr +10 -10
  10. data/tracks/delphi/exercises/isbn-verifier/uTestISBNVerifier.pas +7 -7
  11. data/tracks/erlang/config.json +36 -0
  12. data/tracks/erlang/exercises/armstrong-numbers/test/armstrong_numbers_tests.erl +1 -1
  13. data/tracks/erlang/exercises/minesweeper/README.md +68 -0
  14. data/tracks/erlang/exercises/minesweeper/rebar.config +30 -0
  15. data/tracks/erlang/exercises/minesweeper/src/example.erl +76 -0
  16. data/tracks/erlang/exercises/minesweeper/src/minesweeper.app.src +9 -0
  17. data/tracks/erlang/exercises/minesweeper/src/minesweeper.erl +8 -0
  18. data/tracks/erlang/exercises/minesweeper/test/minesweeper_tests.erl +154 -0
  19. data/tracks/erlang/exercises/perfect-numbers/README.md +59 -0
  20. data/tracks/erlang/exercises/perfect-numbers/rebar.config +30 -0
  21. data/tracks/erlang/exercises/perfect-numbers/src/example.erl +35 -0
  22. data/tracks/erlang/exercises/perfect-numbers/src/perfect_numbers.app.src +9 -0
  23. data/tracks/erlang/exercises/perfect-numbers/src/perfect_numbers.erl +8 -0
  24. data/tracks/erlang/exercises/perfect-numbers/test/perfect_numbers_tests.erl +48 -0
  25. data/tracks/erlang/exercises/secret-handshake/README.md +70 -0
  26. data/tracks/erlang/exercises/secret-handshake/rebar.config +30 -0
  27. data/tracks/erlang/exercises/secret-handshake/src/example.erl +19 -0
  28. data/tracks/erlang/exercises/secret-handshake/src/secret_handshake.app.src +9 -0
  29. data/tracks/erlang/exercises/secret-handshake/src/secret_handshake.erl +8 -0
  30. data/tracks/erlang/exercises/secret-handshake/test/secret_handshake_tests.erl +45 -0
  31. data/tracks/go/.travis.yml +2 -2
  32. data/tracks/nim/config.json +2 -2
  33. data/tracks/nim/docs/SNIPPET.txt +4 -1
  34. data/tracks/python/config.json +12 -0
  35. data/tracks/python/exercises/ledger/README.md +60 -0
  36. data/tracks/python/exercises/ledger/example.py +85 -0
  37. data/tracks/python/exercises/ledger/ledger.py +298 -0
  38. data/tracks/python/exercises/ledger/ledger_test.py +147 -0
  39. data/tracks/python/exercises/linked-list/example.py +8 -8
  40. data/tracks/python/exercises/linked-list/linked_list.py +1 -1
  41. data/tracks/python/exercises/reverse-string/example.py +2 -2
  42. data/tracks/python/exercises/reverse-string/reverse_string.py +1 -1
  43. data/tracks/reasonml/config.json +24 -0
  44. data/tracks/reasonml/exercises/armstrong-numbers/README.md +35 -0
  45. data/tracks/reasonml/exercises/armstrong-numbers/__tests__/ArmstrongNumbers_test.re +37 -0
  46. data/tracks/reasonml/exercises/armstrong-numbers/bsconfig.json +25 -0
  47. data/tracks/reasonml/exercises/armstrong-numbers/package-lock.json +5835 -0
  48. data/tracks/reasonml/exercises/armstrong-numbers/package.json +20 -0
  49. data/tracks/reasonml/exercises/armstrong-numbers/src/ArmstrongNumbers.rei +1 -0
  50. data/tracks/reasonml/exercises/armstrong-numbers/src/Example.re +17 -0
  51. data/tracks/reasonml/exercises/isogram/README.md +38 -0
  52. data/tracks/reasonml/exercises/isogram/__tests__/Isogram_test.re +41 -0
  53. data/tracks/reasonml/exercises/isogram/bsconfig.json +25 -0
  54. data/tracks/reasonml/exercises/isogram/package-lock.json +5835 -0
  55. data/tracks/reasonml/exercises/isogram/package.json +20 -0
  56. data/tracks/reasonml/exercises/isogram/src/Example.re +17 -0
  57. data/tracks/reasonml/exercises/isogram/src/Isogram.rei +1 -0
  58. data/tracks/rust/config.json +95 -94
  59. data/tracks/rust/exercises/diffie-hellman/.meta/hints.md +2 -0
  60. data/tracks/rust/exercises/diffie-hellman/README.md +4 -0
  61. data/tracks/rust/exercises/diffie-hellman/example.rs +24 -2
  62. data/tracks/rust/exercises/diffie-hellman/tests/diffie-hellman.rs +30 -0
  63. data/tracks/rust/exercises/{twofer → two-fer}/.gitignore +0 -0
  64. data/tracks/rust/exercises/{twofer → two-fer}/Cargo.toml +0 -0
  65. data/tracks/rust/exercises/{twofer → two-fer}/README.md +1 -1
  66. data/tracks/rust/exercises/{twofer → two-fer}/example.rs +0 -0
  67. data/tracks/rust/exercises/{twofer → two-fer}/src/lib.rs +0 -0
  68. data/tracks/rust/exercises/{twofer → two-fer}/tests/two-fer.rs +0 -0
  69. metadata +45 -8
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "isogram",
3
+ "version": "0.1.0",
4
+ "scripts": {
5
+ "build": "bsb -make-world",
6
+ "start": "bsb -make-world -w",
7
+ "clean": "bsb -clean-world",
8
+ "test": "jest --watchAll",
9
+ "test:ci": "jest --ci --bail --no-cache"
10
+ },
11
+ "keywords": [
12
+ "BuckleScript"
13
+ ],
14
+ "author": "",
15
+ "license": "MIT",
16
+ "devDependencies": {
17
+ "@glennsl/bs-jest": "^0.4.2",
18
+ "bs-platform": "^3.1.5"
19
+ }
20
+ }
@@ -0,0 +1,17 @@
1
+ let charlist = Array.map(w => w.[0]);
2
+
3
+ let rec check_repeats = word_list =>
4
+ switch (word_list) {
5
+ | [] => true
6
+ | [x, ...xs] => ! List.mem(x, xs) && check_repeats(xs)
7
+ };
8
+
9
+ let clean = List.filter(x => ! (x == '-' || x == ' '));
10
+
11
+ let is_isogram = word =>
12
+ String.lowercase(word)
13
+ |> Js.String.split("")
14
+ |> charlist
15
+ |> Array.to_list
16
+ |> clean
17
+ |> check_repeats;
@@ -0,0 +1 @@
1
+ let is_isogram: string => bool;
@@ -11,7 +11,7 @@
11
11
  {
12
12
  "slug": "hello-world",
13
13
  "uuid": "13ec1ebe-d71b-436f-ab12-25305e814171",
14
- "core": false,
14
+ "core": true,
15
15
  "auto_approve": true,
16
16
  "unlocked_by": null,
17
17
  "difficulty": 1,
@@ -19,22 +19,11 @@
19
19
  "println"
20
20
  ]
21
21
  },
22
- {
23
- "slug": "twofer",
24
- "uuid": "c6631a2c-4632-11e8-842f-0ed5f89f718b",
25
- "core": false,
26
- "unlocked_by": null,
27
- "difficulty": 1,
28
- "topics": [
29
- "match",
30
- "strings"
31
- ]
32
- },
33
22
  {
34
23
  "slug": "gigasecond",
35
24
  "uuid": "f880b1ef-8f66-41f3-bb89-f39a4ed592a2",
36
25
  "core": false,
37
- "unlocked_by": null,
26
+ "unlocked_by": "hello-world",
38
27
  "difficulty": 1,
39
28
  "topics": [
40
29
  "crates",
@@ -45,7 +34,7 @@
45
34
  "slug": "leap",
46
35
  "uuid": "ef52f576-9c33-4cc1-a018-803ace8897f6",
47
36
  "core": false,
48
- "unlocked_by": null,
37
+ "unlocked_by": "hello-world",
49
38
  "difficulty": 1,
50
39
  "topics": [
51
40
  "booleans",
@@ -57,7 +46,7 @@
57
46
  "slug": "raindrops",
58
47
  "uuid": "2c12be9b-3a02-4161-8eac-050642ad791f",
59
48
  "core": false,
60
- "unlocked_by": null,
49
+ "unlocked_by": "hello-world",
61
50
  "difficulty": 1,
62
51
  "topics": [
63
52
  "case_or_format",
@@ -68,7 +57,7 @@
68
57
  "slug": "reverse-string",
69
58
  "uuid": "ecf8d1e3-9400-4d1a-8326-2e2820bce024",
70
59
  "core": false,
71
- "unlocked_by": null,
60
+ "unlocked_by": "hello-world",
72
61
  "difficulty": 1,
73
62
  "topics": [
74
63
  "iterator",
@@ -80,7 +69,7 @@
80
69
  "slug": "nth-prime",
81
70
  "uuid": "ee5048a7-c625-434d-a0a2-4fd54757ee02",
82
71
  "core": false,
83
- "unlocked_by": null,
72
+ "unlocked_by": "hello-world",
84
73
  "difficulty": 1,
85
74
  "topics": [
86
75
  "loops",
@@ -91,7 +80,7 @@
91
80
  "slug": "bob",
92
81
  "uuid": "38ef1802-2730-4f94-bafe-d2cd6b3e7f95",
93
82
  "core": false,
94
- "unlocked_by": null,
83
+ "unlocked_by": "hello-world",
95
84
  "difficulty": 1,
96
85
  "topics": [
97
86
  "chars",
@@ -102,7 +91,7 @@
102
91
  "slug": "beer-song",
103
92
  "uuid": "bb42bc3a-139d-4cab-8b3a-2eac2e1b77b6",
104
93
  "core": false,
105
- "unlocked_by": null,
94
+ "unlocked_by": "hello-world",
106
95
  "difficulty": 1,
107
96
  "topics": [
108
97
  "case",
@@ -115,7 +104,7 @@
115
104
  "slug": "proverb",
116
105
  "uuid": "504f9033-6433-4508-aebb-60ee77b800b9",
117
106
  "core": false,
118
- "unlocked_by": null,
107
+ "unlocked_by": "hello-world",
119
108
  "difficulty": 1,
120
109
  "topics": [
121
110
  "format"
@@ -125,7 +114,7 @@
125
114
  "slug": "difference-of-squares",
126
115
  "uuid": "aee49878-f727-400b-8fb5-eaf83447cf87",
127
116
  "core": false,
128
- "unlocked_by": null,
117
+ "unlocked_by": "hello-world",
129
118
  "difficulty": 1,
130
119
  "topics": [
131
120
  "fold",
@@ -136,7 +125,7 @@
136
125
  "slug": "sum-of-multiples",
137
126
  "uuid": "be90fe16-9947-45ef-ab8e-eeca4ce3a8c8",
138
127
  "core": false,
139
- "unlocked_by": null,
128
+ "unlocked_by": "hello-world",
140
129
  "difficulty": 1,
141
130
  "topics": [
142
131
  "algorithm",
@@ -147,7 +136,7 @@
147
136
  "slug": "grains",
148
137
  "uuid": "9e69dd5d-472d-43d7-a8bb-60e4a7bed175",
149
138
  "core": false,
150
- "unlocked_by": null,
139
+ "unlocked_by": "hello-world",
151
140
  "difficulty": 1,
152
141
  "topics": [
153
142
  "mathematics",
@@ -157,7 +146,7 @@
157
146
  {
158
147
  "slug": "pythagorean-triplet",
159
148
  "uuid": "6e7cac84-99d1-4f9f-b7d6-48ea43024bc0",
160
- "core": false,
149
+ "core": true,
161
150
  "unlocked_by": null,
162
151
  "difficulty": 1,
163
152
  "topics": [
@@ -168,7 +157,7 @@
168
157
  "slug": "prime-factors",
169
158
  "uuid": "9f649818-0c82-4b79-b912-4d65b9f60e10",
170
159
  "core": false,
171
- "unlocked_by": null,
160
+ "unlocked_by": "hello-world",
172
161
  "difficulty": 1,
173
162
  "topics": [
174
163
  "mathematics"
@@ -178,7 +167,7 @@
178
167
  "slug": "series",
179
168
  "uuid": "9de405e1-3a05-43cb-8eb3-00b81a2968e9",
180
169
  "core": false,
181
- "unlocked_by": null,
170
+ "unlocked_by": "pythagorean-triplet",
182
171
  "difficulty": 1,
183
172
  "topics": [
184
173
  "strings",
@@ -189,7 +178,7 @@
189
178
  "slug": "armstrong-numbers",
190
179
  "uuid": "e652139e-ff3f-4e03-9810-d21f8b0c9e60",
191
180
  "core": false,
192
- "unlocked_by": null,
181
+ "unlocked_by": "hello-world",
193
182
  "difficulty": 1,
194
183
  "topics": [
195
184
  "mathematics"
@@ -199,7 +188,7 @@
199
188
  "slug": "collatz-conjecture",
200
189
  "uuid": "f9afd650-8103-4373-a284-fa4ecfee7207",
201
190
  "core": false,
202
- "unlocked_by": null,
191
+ "unlocked_by": "pythagorean-triplet",
203
192
  "difficulty": 1,
204
193
  "topics": [
205
194
  "option"
@@ -209,7 +198,7 @@
209
198
  "slug": "diffie-hellman",
210
199
  "uuid": "23d82e48-d074-11e7-8fab-cec278b6b50a",
211
200
  "core": false,
212
- "unlocked_by": null,
201
+ "unlocked_by": "pythagorean-triplet",
213
202
  "difficulty": 1,
214
203
  "topics": [
215
204
  "mathematics"
@@ -218,7 +207,7 @@
218
207
  {
219
208
  "slug": "saddle-points",
220
209
  "uuid": "ccebfa12-d224-11e7-8941-cec278b6b50a",
221
- "core": false,
210
+ "core": true,
222
211
  "unlocked_by": null,
223
212
  "difficulty": 4,
224
213
  "topics": [
@@ -230,7 +219,7 @@
230
219
  "slug": "isogram",
231
220
  "uuid": "79613fd8-b7da-11e7-abc4-cec278b6b50a",
232
221
  "core": false,
233
- "unlocked_by": null,
222
+ "unlocked_by": "saddle-points",
234
223
  "difficulty": 4,
235
224
  "topics": [
236
225
  "chars",
@@ -242,7 +231,7 @@
242
231
  "slug": "say",
243
232
  "uuid": "4ba35adb-230b-49a6-adc9-2d3cd9a4c538",
244
233
  "core": false,
245
- "unlocked_by": null,
234
+ "unlocked_by": "saddle-points",
246
235
  "difficulty": 4,
247
236
  "topics": [
248
237
  "modulus",
@@ -253,7 +242,7 @@
253
242
  "slug": "run-length-encoding",
254
243
  "uuid": "4dc9b165-792a-4438-be80-df9aab6f6a9c",
255
244
  "core": false,
256
- "unlocked_by": null,
245
+ "unlocked_by": "saddle-points",
257
246
  "difficulty": 4,
258
247
  "topics": [
259
248
  "conversion_between_string_and_int",
@@ -266,7 +255,7 @@
266
255
  "slug": "isbn-verifier",
267
256
  "uuid": "c986c240-46de-419c-8ed6-700eb68f8db6",
268
257
  "core": false,
269
- "unlocked_by": null,
258
+ "unlocked_by": "saddle-points",
270
259
  "difficulty": 4,
271
260
  "topics": [
272
261
  "conversion_between_string_and_int",
@@ -278,7 +267,7 @@
278
267
  "slug": "perfect-numbers",
279
268
  "uuid": "20e7d347-b80a-4656-ac34-0825126939ff",
280
269
  "core": false,
281
- "unlocked_by": null,
270
+ "unlocked_by": "saddle-points",
282
271
  "difficulty": 4,
283
272
  "topics": [
284
273
  "mathematics"
@@ -287,7 +276,7 @@
287
276
  {
288
277
  "slug": "clock",
289
278
  "uuid": "543a3ca2-fb9b-4f20-a873-ff23595d41df",
290
- "core": false,
279
+ "core": true,
291
280
  "unlocked_by": null,
292
281
  "difficulty": 4,
293
282
  "topics": [
@@ -300,7 +289,7 @@
300
289
  "slug": "hamming",
301
290
  "uuid": "2874216a-0822-4ec2-892e-d451fd89646a",
302
291
  "core": false,
303
- "unlocked_by": null,
292
+ "unlocked_by": "saddle-points",
304
293
  "difficulty": 4,
305
294
  "topics": [
306
295
  "result"
@@ -310,7 +299,7 @@
310
299
  "slug": "simple-linked-list",
311
300
  "uuid": "10923b0b-c726-44a7-9e02-b775e7b8b237",
312
301
  "core": false,
313
- "unlocked_by": null,
302
+ "unlocked_by": "clock",
314
303
  "difficulty": 4,
315
304
  "topics": [
316
305
  "lists",
@@ -322,7 +311,7 @@
322
311
  "slug": "pascals-triangle",
323
312
  "uuid": "ddc0c1da-6b65-4ed1-8bdc-5e71cd05f720",
324
313
  "core": false,
325
- "unlocked_by": null,
314
+ "unlocked_by": "clock",
326
315
  "difficulty": 4,
327
316
  "topics": [
328
317
  "index_optional",
@@ -334,7 +323,7 @@
334
323
  "slug": "scrabble-score",
335
324
  "uuid": "561cc4ff-5e74-4701-a7c2-c4edefa0d068",
336
325
  "core": false,
337
- "unlocked_by": null,
326
+ "unlocked_by": "saddle-points",
338
327
  "difficulty": 4,
339
328
  "topics": [
340
329
  "chaining_higher_order_functions",
@@ -345,7 +334,7 @@
345
334
  "slug": "pangram",
346
335
  "uuid": "a24cb7bf-3aac-4051-bcd1-952c2a806187",
347
336
  "core": false,
348
- "unlocked_by": null,
337
+ "unlocked_by": "saddle-points",
349
338
  "difficulty": 4,
350
339
  "topics": [
351
340
  "ascii_optional",
@@ -356,7 +345,7 @@
356
345
  "slug": "nucleotide-count",
357
346
  "uuid": "3f54853b-cc65-4282-ab25-8dc3fdf43c03",
358
347
  "core": false,
359
- "unlocked_by": null,
348
+ "unlocked_by": "clock",
360
349
  "difficulty": 4,
361
350
  "topics": [
362
351
  "entry_api",
@@ -369,7 +358,7 @@
369
358
  {
370
359
  "slug": "luhn",
371
360
  "uuid": "8d64bfc3-fc4b-45c4-85f0-e74dc2ea6812",
372
- "core": false,
361
+ "core": true,
373
362
  "unlocked_by": null,
374
363
  "difficulty": 4,
375
364
  "topics": [
@@ -382,7 +371,7 @@
382
371
  "slug": "largest-series-product",
383
372
  "uuid": "8679c221-d150-4230-b1cd-5ea78ae69db7",
384
373
  "core": false,
385
- "unlocked_by": null,
374
+ "unlocked_by": "luhn",
386
375
  "difficulty": 4,
387
376
  "topics": [
388
377
  "char",
@@ -395,7 +384,7 @@
395
384
  "slug": "word-count",
396
385
  "uuid": "6c5c0dc3-4f5b-4f83-bf67-a45bf4ea6be4",
397
386
  "core": false,
398
- "unlocked_by": null,
387
+ "unlocked_by": "luhn",
399
388
  "difficulty": 4,
400
389
  "topics": [
401
390
  "chars",
@@ -407,7 +396,7 @@
407
396
  {
408
397
  "slug": "atbash-cipher",
409
398
  "uuid": "53298a14-76a9-4bb9-943a-57c5e79d9cf7",
410
- "core": false,
399
+ "core": true,
411
400
  "unlocked_by": null,
412
401
  "difficulty": 4,
413
402
  "topics": [
@@ -422,7 +411,7 @@
422
411
  "slug": "crypto-square",
423
412
  "uuid": "0cc485e9-43ba-4d97-a622-ee4cb8b9f1f7",
424
413
  "core": false,
425
- "unlocked_by": null,
414
+ "unlocked_by": "atbash-cipher",
426
415
  "difficulty": 4,
427
416
  "topics": [
428
417
  "arrays",
@@ -438,7 +427,7 @@
438
427
  "slug": "rotational-cipher",
439
428
  "uuid": "5dbecc83-2c8d-467d-be05-f28a08f7abcf",
440
429
  "core": false,
441
- "unlocked_by": null,
430
+ "unlocked_by": "atbash-cipher",
442
431
  "difficulty": 4,
443
432
  "topics": [
444
433
  "ascii",
@@ -452,7 +441,7 @@
452
441
  "slug": "simple-cipher",
453
442
  "uuid": "f424a350-50bd-11e8-9c2d-fa7ae01bbebc",
454
443
  "core": false,
455
- "unlocked_by": null,
444
+ "unlocked_by": "atbash-cipher",
456
445
  "difficulty": 4,
457
446
  "topics": [
458
447
  "ascii",
@@ -464,7 +453,7 @@
464
453
  "slug": "etl",
465
454
  "uuid": "0c8eeef7-4bab-4cf9-9047-c208b5618312",
466
455
  "core": false,
467
- "unlocked_by": null,
456
+ "unlocked_by": "clock",
468
457
  "difficulty": 4,
469
458
  "topics": [
470
459
  "btree"
@@ -474,7 +463,7 @@
474
463
  "slug": "accumulate",
475
464
  "uuid": "ddc45979-8a92-4313-a4f8-878562d5a483",
476
465
  "core": false,
477
- "unlocked_by": null,
466
+ "unlocked_by": "luhn",
478
467
  "difficulty": 4,
479
468
  "topics": [
480
469
  "function_pointer"
@@ -484,7 +473,7 @@
484
473
  "slug": "acronym",
485
474
  "uuid": "26a9102f-26f6-4238-858e-ba20db66f1a9",
486
475
  "core": false,
487
- "unlocked_by": null,
476
+ "unlocked_by": "clock",
488
477
  "difficulty": 4,
489
478
  "topics": [
490
479
  "filter",
@@ -498,7 +487,7 @@
498
487
  "slug": "sieve",
499
488
  "uuid": "da784b42-1cec-469e-8e48-0be232b17003",
500
489
  "core": false,
501
- "unlocked_by": null,
490
+ "unlocked_by": "clock",
502
491
  "difficulty": 4,
503
492
  "topics": [
504
493
  "map",
@@ -510,7 +499,7 @@
510
499
  "slug": "rna-transcription",
511
500
  "uuid": "9a219d87-cd32-4e12-a879-bfb5747c2369",
512
501
  "core": false,
513
- "unlocked_by": null,
502
+ "unlocked_by": "clock",
514
503
  "difficulty": 4,
515
504
  "topics": [
516
505
  "match",
@@ -523,7 +512,7 @@
523
512
  "slug": "triangle",
524
513
  "uuid": "c0bc2af6-d7af-401f-9ed8-bbe31977666c",
525
514
  "core": false,
526
- "unlocked_by": null,
515
+ "unlocked_by": "clock",
527
516
  "difficulty": 4,
528
517
  "topics": [
529
518
  "mathematics",
@@ -534,7 +523,7 @@
534
523
  "slug": "roman-numerals",
535
524
  "uuid": "498be645-734a-49b7-aba7-aae1e051e1f0",
536
525
  "core": false,
537
- "unlocked_by": null,
526
+ "unlocked_by": "luhn",
538
527
  "difficulty": 4,
539
528
  "topics": [
540
529
  "loops",
@@ -548,7 +537,7 @@
548
537
  "slug": "all-your-base",
549
538
  "uuid": "54c11dae-3878-4bec-b8d6-775b7d4f317b",
550
539
  "core": false,
551
- "unlocked_by": null,
540
+ "unlocked_by": "saddle-points",
552
541
  "difficulty": 4,
553
542
  "topics": [
554
543
  "enumerate",
@@ -561,7 +550,7 @@
561
550
  "slug": "grade-school",
562
551
  "uuid": "5ca03812-c229-48db-b7fd-0889b22f8d1d",
563
552
  "core": false,
564
- "unlocked_by": null,
553
+ "unlocked_by": "clock",
565
554
  "difficulty": 4,
566
555
  "topics": [
567
556
  "entry_api",
@@ -574,7 +563,7 @@
574
563
  "slug": "binary-search",
575
564
  "uuid": "dd74b65c-0d26-4821-9add-064e32e3a5bd",
576
565
  "core": false,
577
- "unlocked_by": null,
566
+ "unlocked_by": "clock",
578
567
  "difficulty": 4,
579
568
  "topics": [
580
569
  "option",
@@ -586,7 +575,7 @@
586
575
  "slug": "robot-simulator",
587
576
  "uuid": "1beb8b0c-d06d-4569-80e5-866ed01a7a66",
588
577
  "core": false,
589
- "unlocked_by": null,
578
+ "unlocked_by": "clock",
590
579
  "difficulty": 4,
591
580
  "topics": [
592
581
  "enum",
@@ -596,7 +585,7 @@
596
585
  {
597
586
  "slug": "bracket-push",
598
587
  "uuid": "40729822-4265-4c14-b03f-a00bff5f24bb",
599
- "core": false,
588
+ "core": true,
600
589
  "unlocked_by": null,
601
590
  "difficulty": 4,
602
591
  "topics": [
@@ -608,7 +597,7 @@
608
597
  "slug": "luhn-from",
609
598
  "uuid": "f9131b5d-91dd-4514-983d-4abc22bb5d5c",
610
599
  "core": false,
611
- "unlocked_by": null,
600
+ "unlocked_by": "bracket-push",
612
601
  "difficulty": 4,
613
602
  "topics": [
614
603
  "from_trait",
@@ -621,7 +610,7 @@
621
610
  "slug": "queen-attack",
622
611
  "uuid": "30c33e3d-8034-4618-8346-2ae906961579",
623
612
  "core": false,
624
- "unlocked_by": null,
613
+ "unlocked_by": "clock",
625
614
  "difficulty": 4,
626
615
  "topics": [
627
616
  "result",
@@ -633,7 +622,7 @@
633
622
  "slug": "bowling",
634
623
  "uuid": "fec447a5-cf11-4ddd-b0fd-63bcc4e245cd",
635
624
  "core": false,
636
- "unlocked_by": null,
625
+ "unlocked_by": "clock",
637
626
  "difficulty": 4,
638
627
  "topics": [
639
628
  "goofy_bowling_logic",
@@ -644,7 +633,7 @@
644
633
  {
645
634
  "slug": "sublist",
646
635
  "uuid": "644ffd17-548e-4405-bfd5-a58df74cc19d",
647
- "core": false,
636
+ "core": true,
648
637
  "unlocked_by": null,
649
638
  "difficulty": 4,
650
639
  "topics": [
@@ -655,7 +644,7 @@
655
644
  {
656
645
  "slug": "space-age",
657
646
  "uuid": "fa94645d-14e1-422d-a832-d24efbb493d8",
658
- "core": false,
647
+ "core": true,
659
648
  "unlocked_by": null,
660
649
  "difficulty": 4,
661
650
  "topics": [
@@ -668,7 +657,7 @@
668
657
  "slug": "luhn-trait",
669
658
  "uuid": "c32c0124-873d-45f4-9287-402aea29f129",
670
659
  "core": false,
671
- "unlocked_by": null,
660
+ "unlocked_by": "space-age",
672
661
  "difficulty": 4,
673
662
  "topics": [
674
663
  "custom_trait",
@@ -680,7 +669,7 @@
680
669
  {
681
670
  "slug": "macros",
682
671
  "uuid": "29583cc6-d56d-4bee-847d-93d74e5a30e7",
683
- "core": false,
672
+ "core": true,
684
673
  "unlocked_by": null,
685
674
  "difficulty": 4,
686
675
  "topics": [
@@ -693,7 +682,7 @@
693
682
  "slug": "allergies",
694
683
  "uuid": "94f040d6-3f41-4950-8fe6-acf0945ac83d",
695
684
  "core": false,
696
- "unlocked_by": null,
685
+ "unlocked_by": "saddle-points",
697
686
  "difficulty": 4,
698
687
  "topics": [
699
688
  "bitwise_probably",
@@ -707,7 +696,7 @@
707
696
  "slug": "variable-length-quantity",
708
697
  "uuid": "f1371a9c-c2a4-4fc6-a5fd-3a57c4af16fa",
709
698
  "core": false,
710
- "unlocked_by": null,
699
+ "unlocked_by": "saddle-points",
711
700
  "difficulty": 4,
712
701
  "topics": [
713
702
  "bitwise",
@@ -720,7 +709,7 @@
720
709
  "slug": "phone-number",
721
710
  "uuid": "6abac1d1-0d85-4b51-8001-97a07990630d",
722
711
  "core": false,
723
- "unlocked_by": null,
712
+ "unlocked_by": "luhn",
724
713
  "difficulty": 4,
725
714
  "topics": [
726
715
  "format",
@@ -734,7 +723,7 @@
734
723
  "slug": "wordy",
735
724
  "uuid": "620b55bb-058e-4c6f-a966-ced3b41736db",
736
725
  "core": false,
737
- "unlocked_by": null,
726
+ "unlocked_by": "space-age",
738
727
  "difficulty": 4,
739
728
  "topics": [
740
729
  "operators_optional",
@@ -746,7 +735,7 @@
746
735
  "slug": "tournament",
747
736
  "uuid": "9a2406cc-5037-4761-b820-bb25b1d397c8",
748
737
  "core": false,
749
- "unlocked_by": null,
738
+ "unlocked_by": "clock",
750
739
  "difficulty": 4,
751
740
  "topics": [
752
741
  "enum",
@@ -759,7 +748,7 @@
759
748
  "slug": "custom-set",
760
749
  "uuid": "9d652e63-6654-4dec-a99f-97e6bc8cf772",
761
750
  "core": false,
762
- "unlocked_by": null,
751
+ "unlocked_by": "sublist",
763
752
  "difficulty": 4,
764
753
  "topics": [
765
754
  "equality",
@@ -772,7 +761,7 @@
772
761
  "slug": "alphametics",
773
762
  "uuid": "7450bd80-2388-42ac-a61f-097e82581475",
774
763
  "core": false,
775
- "unlocked_by": null,
764
+ "unlocked_by": "clock",
776
765
  "difficulty": 4,
777
766
  "topics": [
778
767
  "combinations",
@@ -785,7 +774,7 @@
785
774
  "slug": "two-bucket",
786
775
  "uuid": "1850fb3f-9dad-449a-90b6-9d90038cf34d",
787
776
  "core": false,
788
- "unlocked_by": null,
777
+ "unlocked_by": "clock",
789
778
  "difficulty": 4,
790
779
  "topics": [
791
780
  "algorithm",
@@ -797,7 +786,7 @@
797
786
  "slug": "pig-latin",
798
787
  "uuid": "c21c379b-fb23-449b-809a-3c6ef1c31221",
799
788
  "core": false,
800
- "unlocked_by": null,
789
+ "unlocked_by": "saddle-points",
801
790
  "difficulty": 4,
802
791
  "topics": [
803
792
  "ascii",
@@ -809,7 +798,7 @@
809
798
  "slug": "diamond",
810
799
  "uuid": "c6878b91-70dd-49a0-b7c1-06364fa3d80b",
811
800
  "core": false,
812
- "unlocked_by": null,
801
+ "unlocked_by": "luhn",
813
802
  "difficulty": 4,
814
803
  "topics": [
815
804
  "parsing",
@@ -821,7 +810,7 @@
821
810
  "slug": "spiral-matrix",
822
811
  "uuid": "8dea3473-36f4-4228-b24b-bee8d9389167",
823
812
  "core": false,
824
- "unlocked_by": null,
813
+ "unlocked_by": "clock",
825
814
  "difficulty": 4,
826
815
  "topics": [
827
816
  "matrix",
@@ -832,7 +821,7 @@
832
821
  "slug": "palindrome-products",
833
822
  "uuid": "8cdc3424-51da-4cae-a065-9982859d5b55",
834
823
  "core": false,
835
- "unlocked_by": null,
824
+ "unlocked_by": "clock",
836
825
  "difficulty": 4,
837
826
  "topics": [
838
827
  "calculation",
@@ -843,7 +832,7 @@
843
832
  {
844
833
  "slug": "poker",
845
834
  "uuid": "0a33f3ac-cedd-4a40-a132-9d044b0e9977",
846
- "core": false,
835
+ "core": true,
847
836
  "unlocked_by": null,
848
837
  "difficulty": 7,
849
838
  "topics": [
@@ -858,7 +847,7 @@
858
847
  "slug": "decimal",
859
848
  "uuid": "7cefed7c-37f4-46c5-9a45-68fe4d0fb326",
860
849
  "core": false,
861
- "unlocked_by": null,
850
+ "unlocked_by": "poker",
862
851
  "difficulty": 7,
863
852
  "topics": [
864
853
  "bigint",
@@ -871,7 +860,7 @@
871
860
  {
872
861
  "slug": "anagram",
873
862
  "uuid": "f3172997-91f5-4941-a76e-91c4b8eed401",
874
- "core": false,
863
+ "core": true,
875
864
  "unlocked_by": null,
876
865
  "difficulty": 7,
877
866
  "topics": [
@@ -886,7 +875,7 @@
886
875
  "slug": "protein-translation",
887
876
  "uuid": "4e01efbc-51ce-4d20-b093-b3d44c4be5e8",
888
877
  "core": false,
889
- "unlocked_by": null,
878
+ "unlocked_by": "anagram",
890
879
  "difficulty": 7,
891
880
  "topics": [
892
881
  "hash_map",
@@ -899,7 +888,7 @@
899
888
  "slug": "robot-name",
900
889
  "uuid": "ec7f66c2-749e-4d00-9c11-fa9d106632e4",
901
890
  "core": false,
902
- "unlocked_by": null,
891
+ "unlocked_by": "anagram",
903
892
  "difficulty": 7,
904
893
  "topics": [
905
894
  "lifetimes",
@@ -913,7 +902,7 @@
913
902
  "slug": "book-store",
914
903
  "uuid": "a78ed17a-b2c0-485c-814b-e13ccd1f4153",
915
904
  "core": false,
916
- "unlocked_by": null,
905
+ "unlocked_by": "poker",
917
906
  "difficulty": 7,
918
907
  "topics": [
919
908
  "algorithms",
@@ -925,7 +914,7 @@
925
914
  "slug": "ocr-numbers",
926
915
  "uuid": "704aab91-b83a-4e64-8c21-fb0be5076289",
927
916
  "core": false,
928
- "unlocked_by": null,
917
+ "unlocked_by": "anagram",
929
918
  "difficulty": 10,
930
919
  "topics": [
931
920
  "chunks",
@@ -936,7 +925,7 @@
936
925
  {
937
926
  "slug": "minesweeper",
938
927
  "uuid": "e0037ac4-ae5f-4622-b3ad-915648263495",
939
- "core": false,
928
+ "core": true,
940
929
  "unlocked_by": null,
941
930
  "difficulty": 10,
942
931
  "topics": [
@@ -947,7 +936,7 @@
947
936
  "slug": "dominoes",
948
937
  "uuid": "5e6f6986-5011-427b-a992-d6d0c81f5101",
949
938
  "core": false,
950
- "unlocked_by": null,
939
+ "unlocked_by": "poker",
951
940
  "difficulty": 10,
952
941
  "topics": [
953
942
  "graph_theory",
@@ -957,7 +946,7 @@
957
946
  {
958
947
  "slug": "parallel-letter-frequency",
959
948
  "uuid": "e114b19f-9a9a-402d-a5cb-1cad8de5088e",
960
- "core": false,
949
+ "core": true,
961
950
  "unlocked_by": null,
962
951
  "difficulty": 10,
963
952
  "topics": [
@@ -968,7 +957,7 @@
968
957
  "slug": "rectangles",
969
958
  "uuid": "cc4ccd99-1c97-4ee7-890c-d629b4e1e46d",
970
959
  "core": false,
971
- "unlocked_by": null,
960
+ "unlocked_by": "minesweeper",
972
961
  "difficulty": 10,
973
962
  "topics": [
974
963
  "algorithm",
@@ -980,7 +969,7 @@
980
969
  {
981
970
  "slug": "forth",
982
971
  "uuid": "55976c49-1be5-4170-8aa3-056c2223abbb",
983
- "core": false,
972
+ "core": true,
984
973
  "unlocked_by": null,
985
974
  "difficulty": 10,
986
975
  "topics": [
@@ -991,7 +980,7 @@
991
980
  "slug": "circular-buffer",
992
981
  "uuid": "6ff1a539-251b-49d4-81b5-a6b1e9ba66a4",
993
982
  "core": false,
994
- "unlocked_by": null,
983
+ "unlocked_by": "minesweeper",
995
984
  "difficulty": 10,
996
985
  "topics": [
997
986
  "buffer_reimplementation",
@@ -1002,7 +991,7 @@
1002
991
  "slug": "react",
1003
992
  "uuid": "8708ccc7-711a-4862-b5a4-ff59fde2241c",
1004
993
  "core": false,
1005
- "unlocked_by": null,
994
+ "unlocked_by": "anagram",
1006
995
  "difficulty": 10,
1007
996
  "topics": [
1008
997
  "closures",
@@ -1010,6 +999,18 @@
1010
999
  "lifetimes"
1011
1000
  ]
1012
1001
  },
1002
+ {
1003
+ "slug": "two-fer",
1004
+ "uuid": "c6631a2c-4632-11e8-842f-0ed5f89f718b",
1005
+ "core": false,
1006
+ "unlocked_by": null,
1007
+ "difficulty": 1,
1008
+ "topics": [
1009
+ "match",
1010
+ "strings"
1011
+ ],
1012
+ "deprecated": true
1013
+ },
1013
1014
  {
1014
1015
  "slug": "nucleotide-codons",
1015
1016
  "uuid": "8dae8f4d-368d-477d-907e-bf746921bfbf",