trackler 2.1.0.32 → 2.1.0.33

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/common/CONTRIBUTING.md +1 -24
  3. data/fixtures/tracks/animal/config.json +6 -2
  4. data/fixtures/tracks/fake/config.json +0 -5
  5. data/fixtures/tracks/fruit/config.json +16 -4
  6. data/fixtures/tracks/jewels/config.json +6 -2
  7. data/fixtures/tracks/shoes/config.json +6 -2
  8. data/fixtures/tracks/snowflake/config.json +21 -5
  9. data/lib/trackler/track.rb +0 -11
  10. data/lib/trackler/version.rb +1 -1
  11. data/tracks/c/config.json +281 -245
  12. data/tracks/c/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  13. data/tracks/ceylon/config.json +0 -5
  14. data/tracks/ceylon/{exercises/TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  15. data/tracks/cpp/config.json +9 -13
  16. data/tracks/cpp/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  17. data/tracks/cpp/exercises/grade-school/grade_school_test.cpp +1 -0
  18. data/tracks/cpp/exercises/nucleotide-count/nucleotide_count_test.cpp +1 -0
  19. data/tracks/crystal/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  20. data/tracks/csharp/config.json +4 -9
  21. data/tracks/csharp/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  22. data/tracks/delphi/config.json +31 -36
  23. data/tracks/delphi/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  24. data/tracks/ecmascript/config.json +65 -7
  25. data/tracks/ecmascript/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  26. data/tracks/elixir/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  27. data/tracks/elm/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  28. data/tracks/erlang/_test/bootstrap.sh +3 -5
  29. data/tracks/erlang/config.json +108 -40
  30. data/tracks/erlang/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  31. data/tracks/factor/config.json +6 -14
  32. data/tracks/factor/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  33. data/tracks/fsharp/config.json +1 -1
  34. data/tracks/fsharp/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  35. data/tracks/go/{exercises/TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  36. data/tracks/haskell/config.json +0 -4
  37. data/tracks/haskell/{exercises/TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  38. data/tracks/idris/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  39. data/tracks/java/{TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  40. data/tracks/java/exercises/isogram/HINT.md +10 -0
  41. data/tracks/javascript/config.json +57 -6
  42. data/tracks/javascript/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  43. data/tracks/julia/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  44. data/tracks/kotlin/{TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  45. data/tracks/lfe/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  46. data/tracks/lisp/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  47. data/tracks/lua/config.json +684 -611
  48. data/tracks/lua/{exercises/TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  49. data/tracks/objective-c/config.json +235 -241
  50. data/tracks/objective-c/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  51. data/tracks/ocaml/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  52. data/tracks/perl6/config.json +70 -32
  53. data/tracks/php/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  54. data/tracks/r/config.json +72 -24
  55. data/tracks/r/{exercises/TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  56. data/tracks/racket/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  57. data/tracks/ruby/exercises/bob/.meta/.version +1 -0
  58. data/tracks/ruby/exercises/bob/.meta/generator/bob_case.rb +9 -0
  59. data/tracks/ruby/exercises/bob/.meta/solutions/bob.rb +4 -0
  60. data/tracks/ruby/exercises/bob/bob_test.rb +95 -50
  61. data/tracks/rust/config.json +0 -5
  62. data/tracks/rust/{exercises/TRACK_HINTS.md → docs/EXERCISE_README_INSERT.md} +0 -0
  63. data/tracks/scala/config.json +758 -758
  64. data/tracks/scala/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  65. data/tracks/scheme/docs/EXERCISE_README_INSERT.md +0 -0
  66. data/tracks/swift/config.json +468 -478
  67. data/tracks/swift/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  68. data/tracks/typescript/{SETUP.md → docs/EXERCISE_README_INSERT.md} +0 -0
  69. data/tracks/vbnet/config.json +21 -7
  70. metadata +37 -33
@@ -4,620 +4,693 @@
4
4
  "repository": "https://github.com/exercism/xlua",
5
5
  "active": true,
6
6
  "test_pattern": ".*spec[.]lua$",
7
- "exercises": [{
8
- "slug": "hello-world",
9
- "difficulty": 1,
10
- "topics": [
11
- "control-flow (if-statements)",
12
- "optional values",
13
- "text formatting"
14
- ]
15
- }, {
16
- "slug": "hamming",
17
- "difficulty": 2,
18
- "topics": [
19
- "strings",
20
- "control-flow (loops)"
21
- ]
22
- }, {
23
- "slug": "house",
24
- "difficulty": 3,
25
- "topics": [
26
- "strings",
27
- "text formatting",
28
- "control-flow (loops)"
29
- ]
30
- }, {
31
- "slug": "raindrops",
32
- "difficulty": 1,
33
- "topics": [
34
- "strings",
35
- "control-flow (if-else statements)"
36
- ]
37
- }, {
38
- "slug": "bob",
39
- "difficulty": 3,
40
- "topics": [
41
- "strings",
42
- "control-flow (if-else statements)"
43
- ]
44
- }, {
45
- "slug": "difference-of-squares",
46
- "difficulty": 2,
47
- "topics": [
48
- "mathematics"
49
- ]
50
- }, {
51
- "slug": "variable-length-quantity",
52
- "difficulty": 6,
53
- "topics": [
54
- "control-flow (if-else statements)",
55
- "control-flow (loops)",
56
- "bitwise operations",
57
- "arrays"
58
- ]
59
- }, {
60
- "slug": "anagram",
61
- "difficulty": 6,
62
- "topics": [
63
- "strings",
64
- "algorithms",
65
- "control-flow (if-else statements)",
66
- "control-flow (loops)"
67
- ]
68
- }, {
69
- "slug": "octal",
70
- "difficulty": 4,
71
- "topics": [
72
- "strings",
73
- "bitwise operations",
74
- "control-flow (if-else statements)",
75
- "control-flow (loops)"
76
- ]
77
- }, {
78
- "slug": "binary-search",
79
- "difficulty": 4,
80
- "topics": [
81
- "arrays",
82
- "algorithms",
83
- "searching",
84
- "control-flow (if-else statements)",
85
- "control-flow (loops)"
86
- ]
87
- }, {
88
- "slug": "bracket-push",
89
- "difficulty": 5,
90
- "topics": [
91
- "stacks",
92
- "strings",
93
- "algorithms",
94
- "control-flow (if-else statements)",
95
- "control-flow (loops)"
96
- ]
97
- }, {
98
- "slug": "flatten-array",
99
- "difficulty": 5,
100
- "topics": [
101
- "arrays",
102
- "recursion",
103
- "algorithms",
104
- "control-flow (if-else statements)",
105
- "control-flow (loops)"
106
- ]
107
- }, {
108
- "slug": "word-count",
109
- "difficulty": 3,
110
- "topics": [
111
- "strings",
112
- "control-flow (loops)"
113
- ]
114
- }, {
115
- "slug": "pangram",
116
- "difficulty": 3,
117
- "topics": [
118
- "strings",
119
- "control-flow (if-else statements)",
120
- "control-flow (loops)"
121
- ]
122
- }, {
123
- "slug": "matrix",
124
- "difficulty": 3,
125
- "topics": [
126
- "matrices",
127
- "arrays",
128
- "control-flow (loops)"
129
- ]
130
- }, {
131
- "slug": "beer-song",
132
- "difficulty": 3,
133
- "topics": [
134
- "strings",
135
- "text formatting",
136
- "control-flow (if-else statements)",
137
- "control-flow (loops)"
138
- ]
139
- }, {
140
- "slug": "isogram",
141
- "difficulty": 2,
142
- "topics": [
143
- "strings",
144
- "control-flow (if-else statements)",
145
- "control-flow (loops)"
146
- ]
147
- }, {
148
- "slug": "perfect-numbers",
149
- "difficulty": 3,
150
- "topics": [
151
- "mathematics",
152
- "control-flow (if-else statements)",
153
- "control-flow (loops)"
154
- ]
155
- }, {
156
- "slug": "etl",
157
- "difficulty": 3,
158
- "topics": [
159
- "transforming",
160
- "control-flow (loops)"
161
- ]
162
- }, {
163
- "slug": "nucleotide-count",
164
- "difficulty": 3,
165
- "topics": [
166
- "strings",
167
- "exception handling",
168
- "control-flow (loops)"
169
- ]
170
- }, {
171
- "slug": "food-chain",
172
- "difficulty": 3,
173
- "topics": [
174
- "strings",
175
- "control-flow (if-else statements)",
176
- "control-flow (loops)"
177
- ]
178
- }, {
179
- "slug": "sum-of-multiples",
180
- "difficulty": 2,
181
- "topics": [
182
- "mathematics",
183
- "control-flow (if-else statements)",
184
- "control-flow (loops)"
185
- ]
186
- }, {
187
- "slug": "rna-transcription",
188
- "difficulty": 3,
189
- "topics": [
190
- "strings",
191
- "transforming",
192
- "control-flow (loops)"
193
- ]
194
- }, {
195
- "slug": "phone-number",
196
- "difficulty": 3,
197
- "topics": [
198
- "strings",
199
- "text formatting",
200
- "control-flow (if-else statements)"
201
- ]
202
- }, {
203
- "slug": "bank-account",
204
- "difficulty": 3,
205
- "topics": [
206
- "classes",
207
- "control-flow (if-else statements)"
208
- ]
209
- }, {
210
- "slug": "protein-translation",
211
- "difficulty": 3,
212
- "topics": [
213
- "strings",
214
- "control-flow (if-else statements)",
215
- "control-flow (loops)",
216
- "exception handling"
217
- ]
218
- }, {
219
- "slug": "grade-school",
220
- "difficulty": 4,
221
- "topics": [
222
- "classes",
223
- "control-flow (if-else statements)"
224
- ]
225
- }, {
226
- "slug": "nth-prime",
227
- "difficulty": 4,
228
- "topics": [
229
- "mathematics",
230
- "control-flow (if-else statements)",
231
- "control-flow (loops)",
232
- "exception handling"
233
- ]
234
- }, {
235
- "slug": "diamond",
236
- "difficulty": 4,
237
- "topics": [
238
- "control-flow (loops)",
239
- "strings",
240
- "text formatting",
241
- "algorithms"
242
- ]
243
- }, {
244
- "slug": "run-length-encoding",
245
- "difficulty": 5,
246
- "topics": [
247
- "strings",
248
- "algorithms",
249
- "text formatting",
250
- "control-flow (if-else statements)",
251
- "control-flow (loops)"
252
- ]
253
- }, {
254
- "slug": "sublist",
255
- "difficulty": 4,
256
- "topics": [
257
- "arrays",
258
- "control-flow (if-else statements)",
259
- "control-flow (loops)"
260
- ]
261
- }, {
262
- "slug": "robot-name",
263
- "difficulty": 4,
264
- "topics": [
265
- "strings",
266
- "randomness",
267
- "text formatting"
268
- ]
269
- }, {
270
- "slug": "robot-simulator",
271
- "difficulty": 3,
272
- "topics": [
273
- "strings",
274
- "classes",
275
- "exception handling"
276
- ]
277
- }, {
278
- "slug": "pythagorean-triplet",
279
- "difficulty": 3,
280
- "topics": [
281
- "mathematics",
282
- "control-flow (if-else statements)",
283
- "control-flow (loops)"
284
- ]
285
- }, {
286
- "slug": "leap",
287
- "difficulty": 1,
288
- "topics": [
289
- "logic",
290
- "control-flow (if-else statements)"
291
- ]
292
- }, {
293
- "slug": "space-age",
294
- "difficulty": 2,
295
- "topics": [
296
- "classes"
297
- ]
298
- }, {
299
- "slug": "pascals-triangle",
300
- "difficulty": 5,
301
- "topics": [
302
- "mathematics",
303
- "control-flow (loops)"
304
- ]
305
- }, {
306
- "slug": "sieve",
307
- "difficulty": 4,
308
- "topics": [
309
- "mathematics",
310
- "control-flow (if-else statements)",
311
- "control-flow (loops)"
312
- ]
313
- }, {
314
- "slug": "grains",
315
- "difficulty": 2,
316
- "topics": [
317
- "control-flow (loops)"
318
- ]
319
- }, {
320
- "slug": "kindergarten-garden",
321
- "difficulty": 5,
322
- "topics": [
323
- "strings",
324
- "control-flow (if-else statements)",
325
- "control-flow (loops)"
326
- ]
327
- }, {
328
- "slug": "custom-set",
329
- "difficulty": 6,
330
- "topics": [
331
- "classes",
332
- "sets",
333
- "control-flow (if-else statements)",
334
- "control-flow (loops)"
335
- ]
336
- }, {
337
- "slug": "gigasecond",
338
- "difficulty": 2,
339
- "topics": [
340
- "time"
341
- ]
342
- }, {
343
- "slug": "word-search",
344
- "difficulty": 7,
345
- "topics": [
346
- "strings",
347
- "control-flow (if-else statements)",
348
- "control-flow (loops)"
349
- ]
350
- }, {
351
- "slug": "luhn",
352
- "difficulty": 4,
353
- "topics": [
354
- "strings",
355
- "control-flow (if-else statements)",
356
- "control-flow (loops)"
357
- ]
358
- }, {
359
- "slug": "triangle",
360
- "difficulty": 3,
361
- "topics": [
362
- "control-flow (if-else statements)",
363
- "exception handling"
364
- ]
365
- }, {
366
- "slug": "clock",
367
- "difficulty": 3,
368
- "topics": [
369
- "classes"
370
- ]
371
- }, {
372
- "slug": "series",
373
- "difficulty": 4,
374
- "topics": [
375
- "coroutines",
376
- "arrays",
377
- "control-flow (loops)"
378
- ]
379
- }, {
380
- "slug": "linked-list",
381
- "difficulty": 4,
382
- "topics": [
383
- "classes",
384
- "control-flow (if-else statements)",
385
- "control-flow (loops)"
386
- ]
387
- }, {
388
- "slug": "ocr-numbers",
389
- "difficulty": 7,
390
- "topics": [
391
- "strings",
392
- "control-flow (loops)"
393
- ]
394
- }, {
395
- "slug": "pig-latin",
396
- "difficulty": 5,
397
- "topics": [
398
- "strings",
399
- "text formatting",
400
- "control-flow (if-else statements)",
401
- "control-flow (loops)"
402
- ]
403
- }, {
404
- "slug": "minesweeper",
405
- "difficulty": 7,
406
- "topics": [
407
- "arrays",
408
- "strings",
409
- "control-flow (if-else statements)",
410
- "control-flow (loops)",
411
- "exception handling"
412
- ]
413
- }, {
414
- "slug": "crypto-square",
415
- "difficulty": 5,
416
- "topics": [
417
- "strings",
418
- "text formatting",
419
- "control-flow (loops)"
420
- ]
421
- }, {
422
- "slug": "list-ops",
423
- "difficulty": 4,
424
- "topics": [
425
- "arrays",
426
- "filtering",
427
- "control-flow (loops)"
428
- ]
429
- }, {
430
- "slug": "meetup",
431
- "difficulty": 6,
432
- "topics": [
433
- "time",
434
- "control-flow (if-statements)",
435
- "control-flow (loops)"
436
- ]
437
- }, {
438
- "slug": "atbash-cipher",
439
- "difficulty": 3,
440
- "topics": [
441
- "strings",
442
- "text formatting",
443
- "control-flow (loops)"
444
- ]
445
- }, {
446
- "slug": "scrabble-score",
447
- "difficulty": 3,
448
- "topics": [
449
- "strings",
450
- "control-flow (loops)"
451
- ]
452
- }, {
453
- "slug": "largest-series-product",
454
- "difficulty": 5,
455
- "topics": [
456
- "control-flow (loops)",
457
- "exception handling"
458
- ]
459
- }, {
460
- "slug": "rail-fence-cipher",
461
- "difficulty": 7,
462
- "topics": [
463
- "strings",
464
- "text formatting",
465
- "control-flow (if-else statements)",
466
- "control-flow (loops)"
467
- ]
468
- }, {
469
- "slug": "roman-numerals",
470
- "difficulty": 4,
471
- "topics": [
472
- "strings",
473
- "text formatting",
474
- "control-flow (loops)"
475
- ]
476
- }, {
477
- "slug": "transpose",
478
- "difficulty": 7,
479
- "topics": [
480
- "strings",
481
- "algorithms",
482
- "control-flow (loops)"
483
- ]
484
- }, {
485
- "slug": "tournament",
486
- "difficulty": 5,
487
- "topics": [
488
- "arrays",
489
- "strings",
490
- "text formatting",
491
- "text parsing",
492
- "control-flow (loops)"
493
- ]
494
- }, {
495
- "slug": "circular-buffer",
496
- "difficulty": 4,
497
- "topics": [
498
- "classes",
499
- "control-flow (if-else statements)",
500
- "exception handling"
501
- ]
502
- }, {
503
- "slug": "binary-search-tree",
504
- "difficulty": 5,
505
- "topics": [
506
- "coroutines",
507
- "trees",
508
- "algorithms",
509
- "searching",
510
- "recursion",
511
- "exception handling"
512
- ]
513
- }, {
514
- "slug": "bowling",
515
- "difficulty": 4,
516
- "topics": [
517
- "algorithms",
518
- "control-flow (if-else statements)",
519
- "exception handling"
520
- ]
521
- }, {
522
- "slug": "binary",
523
- "difficulty": 3,
524
- "topics": [
525
- "strings",
526
- "bitwise operations",
527
- "control-flow (if-else statements)",
528
- "control-flow (loops)"
529
- ]
530
- }, {
531
- "slug": "alphametics",
532
- "difficulty": 8,
533
- "topics": [
534
- "strings",
535
- "algorithms",
536
- "performance",
537
- "control-flow (if-else statements)",
538
- "control-flow (loops)"
539
- ]
540
- }, {
541
- "slug": "prime-factors",
542
- "difficulty": 4,
543
- "topics": [
544
- "mathematics",
545
- "control-flow (if-else statements)",
546
- "control-flow (loops)"
547
- ]
548
- }, {
549
- "slug": "acronym",
550
- "difficulty": 4,
551
- "topics": [
552
- "strings",
553
- "control-flow (loops)"
554
- ]
555
- }, {
556
- "slug": "all-your-base",
557
- "difficulty": 4,
558
- "topics": [
559
- "mathematics",
560
- "arrays",
561
- "control-flow (loops)"
562
- ]
563
- }, {
564
- "slug": "rectangles",
565
- "difficulty": 8,
566
- "topics": [
567
- "strings",
568
- "performance",
569
- "control-flow (if-else statements)",
570
- "control-flow (loops)",
571
- "algorithms"
572
- ]
573
- }, {
574
- "slug": "allergies",
575
- "difficulty": 4,
576
- "topics": [
577
- "bitwise operations",
578
- "control-flow (if-else statements)",
579
- "control-flow (loops)"
580
- ]
581
- }, {
582
- "slug": "say",
583
- "difficulty": 7,
584
- "topics": [
585
- "strings",
586
- "text formatting",
587
- "control-flow (loops)"
588
- ]
589
- }, {
590
- "slug": "pov",
591
- "difficulty": 9,
592
- "topics": [
593
- "graphs",
594
- "algorithms",
595
- "control-flow (if-else statements)",
596
- "control-flow (loops)",
597
- "exception handling"
598
- ]
599
- }, {
600
- "slug": "change",
601
- "difficulty": 4,
602
- "topics": [
603
- "control-flow (if-else statements)",
604
- "control-flow (loops)"
605
- ]
606
- }, {
607
- "slug": "secret-handshake",
608
- "difficulty": 3,
609
- "topics": [
610
- "control-flow (if-else statements)",
611
- "arrays",
612
- "bitwise operations"
613
- ]
614
- }],
7
+ "exercises": [
8
+ {
9
+ "slug": "hello-world",
10
+ "difficulty": 1,
11
+ "topics": [
12
+ "control-flow (if-statements)",
13
+ "optional values",
14
+ "text formatting"
15
+ ]
16
+ },
17
+ {
18
+ "slug": "hamming",
19
+ "difficulty": 2,
20
+ "topics": [
21
+ "strings",
22
+ "control-flow (loops)"
23
+ ]
24
+ },
25
+ {
26
+ "slug": "house",
27
+ "difficulty": 3,
28
+ "topics": [
29
+ "strings",
30
+ "text formatting",
31
+ "control-flow (loops)"
32
+ ]
33
+ },
34
+ {
35
+ "slug": "raindrops",
36
+ "difficulty": 1,
37
+ "topics": [
38
+ "strings",
39
+ "control-flow (if-else statements)"
40
+ ]
41
+ },
42
+ {
43
+ "slug": "bob",
44
+ "difficulty": 3,
45
+ "topics": [
46
+ "strings",
47
+ "control-flow (if-else statements)"
48
+ ]
49
+ },
50
+ {
51
+ "slug": "difference-of-squares",
52
+ "difficulty": 2,
53
+ "topics": [
54
+ "mathematics"
55
+ ]
56
+ },
57
+ {
58
+ "slug": "variable-length-quantity",
59
+ "difficulty": 6,
60
+ "topics": [
61
+ "control-flow (if-else statements)",
62
+ "control-flow (loops)",
63
+ "bitwise operations",
64
+ "arrays"
65
+ ]
66
+ },
67
+ {
68
+ "slug": "anagram",
69
+ "difficulty": 6,
70
+ "topics": [
71
+ "strings",
72
+ "algorithms",
73
+ "control-flow (if-else statements)",
74
+ "control-flow (loops)"
75
+ ]
76
+ },
77
+ {
78
+ "slug": "octal",
79
+ "difficulty": 4,
80
+ "topics": [
81
+ "strings",
82
+ "bitwise operations",
83
+ "control-flow (if-else statements)",
84
+ "control-flow (loops)"
85
+ ]
86
+ },
87
+ {
88
+ "slug": "binary-search",
89
+ "difficulty": 4,
90
+ "topics": [
91
+ "arrays",
92
+ "algorithms",
93
+ "searching",
94
+ "control-flow (if-else statements)",
95
+ "control-flow (loops)"
96
+ ]
97
+ },
98
+ {
99
+ "slug": "bracket-push",
100
+ "difficulty": 5,
101
+ "topics": [
102
+ "stacks",
103
+ "strings",
104
+ "algorithms",
105
+ "control-flow (if-else statements)",
106
+ "control-flow (loops)"
107
+ ]
108
+ },
109
+ {
110
+ "slug": "flatten-array",
111
+ "difficulty": 5,
112
+ "topics": [
113
+ "arrays",
114
+ "recursion",
115
+ "algorithms",
116
+ "control-flow (if-else statements)",
117
+ "control-flow (loops)"
118
+ ]
119
+ },
120
+ {
121
+ "slug": "word-count",
122
+ "difficulty": 3,
123
+ "topics": [
124
+ "strings",
125
+ "control-flow (loops)"
126
+ ]
127
+ },
128
+ {
129
+ "slug": "pangram",
130
+ "difficulty": 3,
131
+ "topics": [
132
+ "strings",
133
+ "control-flow (if-else statements)",
134
+ "control-flow (loops)"
135
+ ]
136
+ },
137
+ {
138
+ "slug": "matrix",
139
+ "difficulty": 3,
140
+ "topics": [
141
+ "matrices",
142
+ "arrays",
143
+ "control-flow (loops)"
144
+ ]
145
+ },
146
+ {
147
+ "slug": "beer-song",
148
+ "difficulty": 3,
149
+ "topics": [
150
+ "strings",
151
+ "text formatting",
152
+ "control-flow (if-else statements)",
153
+ "control-flow (loops)"
154
+ ]
155
+ },
156
+ {
157
+ "slug": "isogram",
158
+ "difficulty": 2,
159
+ "topics": [
160
+ "strings",
161
+ "control-flow (if-else statements)",
162
+ "control-flow (loops)"
163
+ ]
164
+ },
165
+ {
166
+ "slug": "perfect-numbers",
167
+ "difficulty": 3,
168
+ "topics": [
169
+ "mathematics",
170
+ "control-flow (if-else statements)",
171
+ "control-flow (loops)"
172
+ ]
173
+ },
174
+ {
175
+ "slug": "etl",
176
+ "difficulty": 3,
177
+ "topics": [
178
+ "transforming",
179
+ "control-flow (loops)"
180
+ ]
181
+ },
182
+ {
183
+ "slug": "nucleotide-count",
184
+ "difficulty": 3,
185
+ "topics": [
186
+ "strings",
187
+ "exception handling",
188
+ "control-flow (loops)"
189
+ ]
190
+ },
191
+ {
192
+ "slug": "food-chain",
193
+ "difficulty": 3,
194
+ "topics": [
195
+ "strings",
196
+ "control-flow (if-else statements)",
197
+ "control-flow (loops)"
198
+ ]
199
+ },
200
+ {
201
+ "slug": "sum-of-multiples",
202
+ "difficulty": 2,
203
+ "topics": [
204
+ "mathematics",
205
+ "control-flow (if-else statements)",
206
+ "control-flow (loops)"
207
+ ]
208
+ },
209
+ {
210
+ "slug": "rna-transcription",
211
+ "difficulty": 3,
212
+ "topics": [
213
+ "strings",
214
+ "transforming",
215
+ "control-flow (loops)"
216
+ ]
217
+ },
218
+ {
219
+ "slug": "phone-number",
220
+ "difficulty": 3,
221
+ "topics": [
222
+ "strings",
223
+ "text formatting",
224
+ "control-flow (if-else statements)"
225
+ ]
226
+ },
227
+ {
228
+ "slug": "bank-account",
229
+ "difficulty": 3,
230
+ "topics": [
231
+ "classes",
232
+ "control-flow (if-else statements)"
233
+ ]
234
+ },
235
+ {
236
+ "slug": "protein-translation",
237
+ "difficulty": 3,
238
+ "topics": [
239
+ "strings",
240
+ "control-flow (if-else statements)",
241
+ "control-flow (loops)",
242
+ "exception handling"
243
+ ]
244
+ },
245
+ {
246
+ "slug": "grade-school",
247
+ "difficulty": 4,
248
+ "topics": [
249
+ "classes",
250
+ "control-flow (if-else statements)"
251
+ ]
252
+ },
253
+ {
254
+ "slug": "nth-prime",
255
+ "difficulty": 4,
256
+ "topics": [
257
+ "mathematics",
258
+ "control-flow (if-else statements)",
259
+ "control-flow (loops)",
260
+ "exception handling"
261
+ ]
262
+ },
263
+ {
264
+ "slug": "diamond",
265
+ "difficulty": 4,
266
+ "topics": [
267
+ "control-flow (loops)",
268
+ "strings",
269
+ "text formatting",
270
+ "algorithms"
271
+ ]
272
+ },
273
+ {
274
+ "slug": "run-length-encoding",
275
+ "difficulty": 5,
276
+ "topics": [
277
+ "strings",
278
+ "algorithms",
279
+ "text formatting",
280
+ "control-flow (if-else statements)",
281
+ "control-flow (loops)"
282
+ ]
283
+ },
284
+ {
285
+ "slug": "sublist",
286
+ "difficulty": 4,
287
+ "topics": [
288
+ "arrays",
289
+ "control-flow (if-else statements)",
290
+ "control-flow (loops)"
291
+ ]
292
+ },
293
+ {
294
+ "slug": "robot-name",
295
+ "difficulty": 4,
296
+ "topics": [
297
+ "strings",
298
+ "randomness",
299
+ "text formatting"
300
+ ]
301
+ },
302
+ {
303
+ "slug": "robot-simulator",
304
+ "difficulty": 3,
305
+ "topics": [
306
+ "strings",
307
+ "classes",
308
+ "exception handling"
309
+ ]
310
+ },
311
+ {
312
+ "slug": "pythagorean-triplet",
313
+ "difficulty": 3,
314
+ "topics": [
315
+ "mathematics",
316
+ "control-flow (if-else statements)",
317
+ "control-flow (loops)"
318
+ ]
319
+ },
320
+ {
321
+ "slug": "leap",
322
+ "difficulty": 1,
323
+ "topics": [
324
+ "logic",
325
+ "control-flow (if-else statements)"
326
+ ]
327
+ },
328
+ {
329
+ "slug": "space-age",
330
+ "difficulty": 2,
331
+ "topics": [
332
+ "classes"
333
+ ]
334
+ },
335
+ {
336
+ "slug": "pascals-triangle",
337
+ "difficulty": 5,
338
+ "topics": [
339
+ "mathematics",
340
+ "control-flow (loops)"
341
+ ]
342
+ },
343
+ {
344
+ "slug": "sieve",
345
+ "difficulty": 4,
346
+ "topics": [
347
+ "mathematics",
348
+ "control-flow (if-else statements)",
349
+ "control-flow (loops)"
350
+ ]
351
+ },
352
+ {
353
+ "slug": "grains",
354
+ "difficulty": 2,
355
+ "topics": [
356
+ "control-flow (loops)"
357
+ ]
358
+ },
359
+ {
360
+ "slug": "kindergarten-garden",
361
+ "difficulty": 5,
362
+ "topics": [
363
+ "strings",
364
+ "control-flow (if-else statements)",
365
+ "control-flow (loops)"
366
+ ]
367
+ },
368
+ {
369
+ "slug": "custom-set",
370
+ "difficulty": 6,
371
+ "topics": [
372
+ "classes",
373
+ "sets",
374
+ "control-flow (if-else statements)",
375
+ "control-flow (loops)"
376
+ ]
377
+ },
378
+ {
379
+ "slug": "gigasecond",
380
+ "difficulty": 2,
381
+ "topics": [
382
+ "time"
383
+ ]
384
+ },
385
+ {
386
+ "slug": "word-search",
387
+ "difficulty": 7,
388
+ "topics": [
389
+ "strings",
390
+ "control-flow (if-else statements)",
391
+ "control-flow (loops)"
392
+ ]
393
+ },
394
+ {
395
+ "slug": "luhn",
396
+ "difficulty": 4,
397
+ "topics": [
398
+ "strings",
399
+ "control-flow (if-else statements)",
400
+ "control-flow (loops)"
401
+ ]
402
+ },
403
+ {
404
+ "slug": "triangle",
405
+ "difficulty": 3,
406
+ "topics": [
407
+ "control-flow (if-else statements)",
408
+ "exception handling"
409
+ ]
410
+ },
411
+ {
412
+ "slug": "clock",
413
+ "difficulty": 3,
414
+ "topics": [
415
+ "classes"
416
+ ]
417
+ },
418
+ {
419
+ "slug": "series",
420
+ "difficulty": 4,
421
+ "topics": [
422
+ "coroutines",
423
+ "arrays",
424
+ "control-flow (loops)"
425
+ ]
426
+ },
427
+ {
428
+ "slug": "linked-list",
429
+ "difficulty": 4,
430
+ "topics": [
431
+ "classes",
432
+ "control-flow (if-else statements)",
433
+ "control-flow (loops)"
434
+ ]
435
+ },
436
+ {
437
+ "slug": "ocr-numbers",
438
+ "difficulty": 7,
439
+ "topics": [
440
+ "strings",
441
+ "control-flow (loops)"
442
+ ]
443
+ },
444
+ {
445
+ "slug": "pig-latin",
446
+ "difficulty": 5,
447
+ "topics": [
448
+ "strings",
449
+ "text formatting",
450
+ "control-flow (if-else statements)",
451
+ "control-flow (loops)"
452
+ ]
453
+ },
454
+ {
455
+ "slug": "minesweeper",
456
+ "difficulty": 7,
457
+ "topics": [
458
+ "arrays",
459
+ "strings",
460
+ "control-flow (if-else statements)",
461
+ "control-flow (loops)",
462
+ "exception handling"
463
+ ]
464
+ },
465
+ {
466
+ "slug": "crypto-square",
467
+ "difficulty": 5,
468
+ "topics": [
469
+ "strings",
470
+ "text formatting",
471
+ "control-flow (loops)"
472
+ ]
473
+ },
474
+ {
475
+ "slug": "list-ops",
476
+ "difficulty": 4,
477
+ "topics": [
478
+ "arrays",
479
+ "filtering",
480
+ "control-flow (loops)"
481
+ ]
482
+ },
483
+ {
484
+ "slug": "meetup",
485
+ "difficulty": 6,
486
+ "topics": [
487
+ "time",
488
+ "control-flow (if-statements)",
489
+ "control-flow (loops)"
490
+ ]
491
+ },
492
+ {
493
+ "slug": "atbash-cipher",
494
+ "difficulty": 3,
495
+ "topics": [
496
+ "strings",
497
+ "text formatting",
498
+ "control-flow (loops)"
499
+ ]
500
+ },
501
+ {
502
+ "slug": "scrabble-score",
503
+ "difficulty": 3,
504
+ "topics": [
505
+ "strings",
506
+ "control-flow (loops)"
507
+ ]
508
+ },
509
+ {
510
+ "slug": "largest-series-product",
511
+ "difficulty": 5,
512
+ "topics": [
513
+ "control-flow (loops)",
514
+ "exception handling"
515
+ ]
516
+ },
517
+ {
518
+ "slug": "rail-fence-cipher",
519
+ "difficulty": 7,
520
+ "topics": [
521
+ "strings",
522
+ "text formatting",
523
+ "control-flow (if-else statements)",
524
+ "control-flow (loops)"
525
+ ]
526
+ },
527
+ {
528
+ "slug": "roman-numerals",
529
+ "difficulty": 4,
530
+ "topics": [
531
+ "strings",
532
+ "text formatting",
533
+ "control-flow (loops)"
534
+ ]
535
+ },
536
+ {
537
+ "slug": "transpose",
538
+ "difficulty": 7,
539
+ "topics": [
540
+ "strings",
541
+ "algorithms",
542
+ "control-flow (loops)"
543
+ ]
544
+ },
545
+ {
546
+ "slug": "tournament",
547
+ "difficulty": 5,
548
+ "topics": [
549
+ "arrays",
550
+ "strings",
551
+ "text formatting",
552
+ "text parsing",
553
+ "control-flow (loops)"
554
+ ]
555
+ },
556
+ {
557
+ "slug": "circular-buffer",
558
+ "difficulty": 4,
559
+ "topics": [
560
+ "classes",
561
+ "control-flow (if-else statements)",
562
+ "exception handling"
563
+ ]
564
+ },
565
+ {
566
+ "slug": "binary-search-tree",
567
+ "difficulty": 5,
568
+ "topics": [
569
+ "coroutines",
570
+ "trees",
571
+ "algorithms",
572
+ "searching",
573
+ "recursion",
574
+ "exception handling"
575
+ ]
576
+ },
577
+ {
578
+ "slug": "bowling",
579
+ "difficulty": 4,
580
+ "topics": [
581
+ "algorithms",
582
+ "control-flow (if-else statements)",
583
+ "exception handling"
584
+ ]
585
+ },
586
+ {
587
+ "slug": "binary",
588
+ "difficulty": 3,
589
+ "topics": [
590
+ "strings",
591
+ "bitwise operations",
592
+ "control-flow (if-else statements)",
593
+ "control-flow (loops)"
594
+ ]
595
+ },
596
+ {
597
+ "slug": "alphametics",
598
+ "difficulty": 8,
599
+ "topics": [
600
+ "strings",
601
+ "algorithms",
602
+ "performance",
603
+ "control-flow (if-else statements)",
604
+ "control-flow (loops)"
605
+ ]
606
+ },
607
+ {
608
+ "slug": "prime-factors",
609
+ "difficulty": 4,
610
+ "topics": [
611
+ "mathematics",
612
+ "control-flow (if-else statements)",
613
+ "control-flow (loops)"
614
+ ]
615
+ },
616
+ {
617
+ "slug": "acronym",
618
+ "difficulty": 4,
619
+ "topics": [
620
+ "strings",
621
+ "control-flow (loops)"
622
+ ]
623
+ },
624
+ {
625
+ "slug": "all-your-base",
626
+ "difficulty": 4,
627
+ "topics": [
628
+ "mathematics",
629
+ "arrays",
630
+ "control-flow (loops)"
631
+ ]
632
+ },
633
+ {
634
+ "slug": "rectangles",
635
+ "difficulty": 8,
636
+ "topics": [
637
+ "strings",
638
+ "performance",
639
+ "control-flow (if-else statements)",
640
+ "control-flow (loops)",
641
+ "algorithms"
642
+ ]
643
+ },
644
+ {
645
+ "slug": "allergies",
646
+ "difficulty": 4,
647
+ "topics": [
648
+ "bitwise operations",
649
+ "control-flow (if-else statements)",
650
+ "control-flow (loops)"
651
+ ]
652
+ },
653
+ {
654
+ "slug": "say",
655
+ "difficulty": 7,
656
+ "topics": [
657
+ "strings",
658
+ "text formatting",
659
+ "control-flow (loops)"
660
+ ]
661
+ },
662
+ {
663
+ "slug": "pov",
664
+ "difficulty": 9,
665
+ "topics": [
666
+ "graphs",
667
+ "algorithms",
668
+ "control-flow (if-else statements)",
669
+ "control-flow (loops)",
670
+ "exception handling"
671
+ ]
672
+ },
673
+ {
674
+ "slug": "change",
675
+ "difficulty": 4,
676
+ "topics": [
677
+ "control-flow (if-else statements)",
678
+ "control-flow (loops)"
679
+ ]
680
+ },
681
+ {
682
+ "slug": "secret-handshake",
683
+ "difficulty": 3,
684
+ "topics": [
685
+ "control-flow (if-else statements)",
686
+ "arrays",
687
+ "bitwise operations"
688
+ ]
689
+ }
690
+ ],
615
691
  "deprecated": [
616
692
  "accumulate"
617
693
  ],
618
- "ignored": [
619
- "docs"
620
- ],
621
694
  "foregone": [
622
695
 
623
696
  ]