diff --git a/.github/workflows/sorted.yml b/.github/workflows/sorted.yml index 6b2af9e..0de38ff 100644 --- a/.github/workflows/sorted.yml +++ b/.github/workflows/sorted.yml @@ -13,4 +13,4 @@ jobs: name: Check uses: exercism/github-actions/.github/workflows/sorted.yml@main with: - ordering: ".difficulty, .lowercase_name" + ordering: ".bucket, .lowercase_name" diff --git a/config.json b/config.json index bae1800..e45ccf6 100644 --- a/config.json +++ b/config.json @@ -37,42 +37,63 @@ }, "exercises": { "practice": [ + { + "slug": "accumulate", + "name": "Accumulate", + "uuid": "b2e12f15-5cae-4848-9ee8-2e1b0992b69c", + "practices": [ + "lambdas", + "foreach", + "yield" + ], + "prerequisites": [ + "lambdas", + "generic-types", + "foreach", + "enumerables", + "extension-methods" + ], + "difficulty": 2, + "topics": [ + "extension_methods", + "sequences", + "transforming" + ] + }, { "slug": "allergies", "name": "Allergies", "uuid": "0488d664-0386-4471-b569-01f847ec6054", "practices": [], "prerequisites": [], - "difficulty": 1, + "difficulty": 2, "topics": [ "bitwise_operations", "filtering" ] }, { - "slug": "anagram", - "name": "Anagram", - "uuid": "ff07d780-2531-4728-9432-bd786652ad51", - "practices": [], - "prerequisites": [], - "difficulty": 1, - "topics": [ - "filtering", - "strings" - ] + "slug": "armstrong-numbers", + "name": "Armstrong Numbers", + "uuid": "b6f4c895-255f-49ae-8163-ee26c2fc1189", + "practices": [ + "casting" + ], + "prerequisites": [ + "numbers", + "booleans", + "casting" + ], + "difficulty": 2 }, { - "slug": "atbash-cipher", - "name": "Atbash Cipher", - "uuid": "cd829c1c-8e35-4cf7-a47e-3b394a036637", + "slug": "beer-song", + "name": "Beer Song", + "uuid": "2523e11e-3a9e-4936-9cbb-37f53a6d90cb", "practices": [], "prerequisites": [], - "difficulty": 1, - "topics": [ - "algorithms", - "strings", - "transforming" - ] + "difficulty": 2, + "status": "deprecated" }, { "slug": "binary", @@ -80,36 +101,87 @@ "uuid": "b5363091-1350-428f-b709-550f9352d562", "practices": [], "prerequisites": [], - "difficulty": 1, + "difficulty": 2, "topics": [ "math" ] }, { - "slug": "bob", - "name": "Bob", - "uuid": "c26876c4-060e-4870-b20c-a4a3ebbfcf7c", - "practices": [], - "prerequisites": [], - "difficulty": 1, - "topics": [ - "conditionals", - "strings" - ] + "slug": "binary-search", + "name": "Binary Search", + "uuid": "85ba3b9b-ea14-4032-a7e5-45e911e0e5fd", + "practices": [ + "arrays", + "for-loops" + ], + "prerequisites": [ + "arrays", + "numbers", + "for-loops" + ], + "difficulty": 2 }, { - "slug": "crypto-square", - "name": "Crypto Square", - "uuid": "5f6ed6d3-fd66-406a-9a92-544745a5e4ee", + "slug": "bottle-song", + "name": "Bottle Song", + "uuid": "7495b54e-0c0c-4e1f-af6a-f367402483b2", + "practices": [ + "switch-statements", + "string-formatting" + ], + "prerequisites": [ + "strings", + "numbers", + "for-loops" + ], + "difficulty": 2 + }, + { + "slug": "collatz-conjecture", + "name": "Collatz Conjecture", + "uuid": "751e4fea-1ee7-4c66-ba2b-802f3ab5f7d6", "practices": [], "prerequisites": [], - "difficulty": 1, + "difficulty": 2, "topics": [ "algorithms", - "strings", - "transforming" + "conditionals", + "integers", + "loops", + "math" ] }, + { + "slug": "dnd-character", + "name": "D&D Character", + "uuid": "dc8c3579-87bb-4730-aafa-fd0c01955250", + "practices": [ + "randomness", + "constructors" + ], + "prerequisites": [ + "randomness", + "classes", + "properties", + "numbers", + "constructors" + ], + "difficulty": 2 + }, + { + "slug": "darts", + "name": "Darts", + "uuid": "55100bd3-8470-45d2-ae90-ac3eb9fd786c", + "practices": [ + "floating-point-numbers", + "if-statements" + ], + "prerequisites": [ + "floating-point-numbers", + "if-statements" + ], + "difficulty": 2 + }, { "slug": "difference-of-squares", "name": "Difference of Squares", @@ -123,7 +195,47 @@ "numbers", "math-operators" ], - "difficulty": 1 + "difficulty": 2 + }, + { + "slug": "eliuds-eggs", + "name": "Eliud's Eggs", + "uuid": "fdb2a717-08d5-4f2a-bd53-fba6fe7c85db", + "practices": [], + "prerequisites": [], + "difficulty": 2 + }, + { + "slug": "error-handling", + "name": "Error Handling", + "uuid": "09809c99-6fb9-4b7e-81b8-f069f79b0b0a", + "practices": [ + "exceptions", + "casting", + "resource-cleanup" + ], + "prerequisites": [ + "exceptions", + "casting", + "resource-cleanup", + "numbers" + ], + "difficulty": 2 + }, + { + "slug": "etl", + "name": "ETL", + "uuid": "5bc7cda0-519f-4a99-92d5-2e5e20d2a8c8", + "practices": [ + "linq", + "dictionaries" + ], + "prerequisites": [ + "strings", + "numbers", + "dictionaries" + ], + "difficulty": 2 }, { "slug": "gigasecond", @@ -136,7 +248,60 @@ "datetimes", "numbers" ], - "difficulty": 1 + "difficulty": 2 + }, + { + "slug": "grade-school", + "name": "Grade School", + "uuid": "e017f9e9-d928-43d1-b69f-5176d4d93785", + "practices": [ + "dictionaries", + "ordering" + ], + "prerequisites": [ + "strings", + "numbers", + "enumerables", + "ordering" + ], + "difficulty": 2 + }, + { + "slug": "grains", + "name": "Grains", + "uuid": "804f12fe-dc2e-4f74-923a-6663fc968b06", + "practices": [ + "integral-numbers", + "math-operators" + ], + "prerequisites": [ + "integral-numbers", + "math-operators", + "if-statements", + "for-loops", + "exceptions" + ], + "difficulty": 2 + }, + { + "slug": "hamming", + "name": "Hamming", + "uuid": "39e7d0e6-d926-4d69-99d8-7f3084cab476", + "practices": [ + "if-statements", + "for-loops", + "linq" + ], + "prerequisites": [ + "if-statements", + "for-loops", + "strings" + ], + "difficulty": 2, + "topics": [ + "filtering", + "strings" + ] }, { "slug": "hello-world", @@ -144,7 +309,7 @@ "uuid": "a3da97d9-8e55-47a2-ba80-7446ee8ddaa9", "practices": [], "prerequisites": [], - "difficulty": 1, + "difficulty": 2, "topics": [ "strings" ] @@ -163,26 +328,165 @@ "constructors", "numbers" ], - "difficulty": 1, + "difficulty": 2, "topics": [ "lists" ] }, + { + "slug": "isogram", + "name": "Isogram", + "uuid": "ffa3cdb7-5cc8-4583-b6b1-e17f18db2b5d", + "practices": [ + "chars", + "strings", + "sets" + ], + "prerequisites": [ + "chars", + "strings", + "booleans" + ], + "difficulty": 2 + }, { "slug": "leap", "name": "Leap", "uuid": "9b1ce07f-05fb-4d01-b4cd-cf7a8799db2f", "practices": [], "prerequisites": [], - "difficulty": 1, + "difficulty": 2, "topics": [ "conditionals", "integers" ] }, { - "slug": "resistor-color", - "name": "Resistor Color", + "slug": "nucleotide-count", + "name": "Nucleotide Count", + "uuid": "57d134bd-f992-4452-b14c-fe2b533d72ee", + "practices": [ + "dictionaries", + "exceptions" + ], + "prerequisites": [ + "dictionaries", + "strings", + "chars", + "if-statements", + "foreach-loops", + "exceptions" + ], + "difficulty": 2 + }, + { + "slug": "pangram", + "name": "Pangram", + "uuid": "7db2492a-2d20-4be3-af4a-c9fad183c752", + "practices": [ + "chars", + "strings", + "sets" + ], + "prerequisites": [ + "chars", + "strings", + "booleans" + ], + "difficulty": 2 + }, + { + "slug": "perfect-numbers", + "name": "Perfect Numbers", + "uuid": "4e6633c9-4fd7-4a32-90c0-0498d06ddcbf", + "practices": [ + "numbers" + ], + "prerequisites": [ + "enums", + "numbers", + "exceptions" + ], + "difficulty": 2 + }, + { + "slug": "phone-number", + "name": "Phone Number", + "uuid": "d620068b-b36f-464a-ba78-82e1f8532c53", + "practices": [], + "prerequisites": [], + "difficulty": 2, + "topics": [ + "parsing", + "transforming" + ] + }, + { + "slug": "protein-translation", + "name": "Protein Translation", + "uuid": "d608e34e-2292-415b-b742-450155081fcd", + "practices": [ + "while-loops", + "linq" + ], + "prerequisites": [ + "strings", + "while-loops", + "arrays" + ], + "difficulty": 2 + }, + { + "slug": "proverb", + "name": "Proverb", + "uuid": "c9765122-c89e-4a9e-b423-74e9b3ee6691", + "practices": [ + "arrays" + ], + "prerequisites": [ + "strings", + "arrays", + "for-loops" + ], + "difficulty": 2 + }, + { + "slug": "queen-attack", + "name": "Queen Attack", + "uuid": "9066e7e7-d830-46a0-b022-a3b22acec455", + "practices": [ + "constructors", + "math-operators" + ], + "prerequisites": [ + "classes", + "constructors", + "booleans", + "if-statements", + "math-operators", + "exceptions" + ], + "difficulty": 2 + }, + { + "slug": "raindrops", + "name": "Raindrops", + "uuid": "36d91bd3-0cdc-4e53-94bf-4b9a797b596e", + "practices": [ + "if-statements", + "casting" + ], + "prerequisites": [ + "strings", + "if-statements", + "numbers", + "casting" + ], + "difficulty": 2 + }, + { + "slug": "resistor-color", + "name": "Resistor Color", "uuid": "494268ff-654d-4376-a163-837c4ca3195f", "practices": [ "arrays" @@ -192,7 +496,7 @@ "integers", "strings" ], - "difficulty": 1, + "difficulty": 2, "topics": [ "arrays" ] @@ -209,7 +513,7 @@ "strings", "numbers" ], - "difficulty": 1 + "difficulty": 2 }, { "slug": "resistor-color-trio", @@ -224,7 +528,7 @@ "numbers", "string-formatting" ], - "difficulty": 1 + "difficulty": 2 }, { "slug": "reverse-string", @@ -232,7 +536,7 @@ "uuid": "af6ae113-35b5-45a2-bf24-27381adf5c6f", "practices": [], "prerequisites": [], - "difficulty": 1, + "difficulty": 2, "topics": [ "strings" ] @@ -251,7 +555,70 @@ "strings", "exceptions" ], - "difficulty": 1 + "difficulty": 2 + }, + { + "slug": "robot-name", + "name": "Robot Name", + "uuid": "687037f7-bce0-4256-bcfd-1dda8bf0c401", + "practices": [ + "randomness", + "classes", + "sets" + ], + "prerequisites": [ + "randomness", + "strings", + "classes", + "generic-types" + ], + "difficulty": 2 + }, + { + "slug": "robot-simulator", + "name": "Robot Simulator", + "uuid": "99edb730-c79a-48b6-9bba-efc4b4882f44", + "practices": [ + "switch-statements", + "switch-expressions", + "constructors" + ], + "prerequisites": [ + "enums", + "classes", + "constructors", + "properties", + "chars", + "switch-statements" + ], + "difficulty": 2 + }, + { + "slug": "scrabble-score", + "name": "Scrabble Score", + "uuid": "2cdcf9b2-caa5-4116-bf38-e65138875112", + "practices": [ + "dictionaries" + ], + "prerequisites": [ + "numbers", + "strings" + ], + "difficulty": 2 + }, + { + "slug": "secret-handshake", + "name": "Secret Handshake", + "uuid": "61ea38ad-7600-42fc-aa6b-07188259689f", + "practices": [ + "bit-manipulation" + ], + "prerequisites": [ + "strings", + "bit-manipulation", + "arrays" + ], + "difficulty": 2 }, { "slug": "series", @@ -270,7 +637,21 @@ "for-loops", "exceptions" ], - "difficulty": 1 + "difficulty": 2 + }, + { + "slug": "sieve", + "name": "Sieve", + "uuid": "69846818-29ff-4293-84c2-49e62ee8dc34", + "practices": [ + "arrays" + ], + "prerequisites": [ + "arrays", + "numbers", + "exceptions" + ], + "difficulty": 2 }, { "slug": "space-age", @@ -286,7 +667,15 @@ "constructors", "numbers" ], - "difficulty": 1 + "difficulty": 2 + }, + { + "slug": "square-root", + "name": "Square Root", + "uuid": "5704628e-f23f-4867-ae95-63151fbbc97f", + "practices": [], + "prerequisites": [], + "difficulty": 2 }, { "slug": "sum-of-multiples", @@ -303,7 +692,22 @@ "foreach-loops", "if-statements" ], - "difficulty": 1 + "difficulty": 2 + }, + { + "slug": "triangle", + "name": "Triangle", + "uuid": "78113af6-b1a4-40ab-86c6-3b26afdec75f", + "practices": [ + "floating-point-numbers", + "if-statements" + ], + "prerequisites": [ + "floating-point-numbers", + "if-statements", + "booleans" + ], + "difficulty": 2 }, { "slug": "two-fer", @@ -317,474 +721,27 @@ "optional-parameters", "string-interpolation" ], - "difficulty": 1, + "difficulty": 2, "topics": [ "optional_values", "strings" ] }, { - "slug": "armstrong-numbers", - "name": "Armstrong Numbers", - "uuid": "b6f4c895-255f-49ae-8163-ee26c2fc1189", + "slug": "acronym", + "name": "Acronym", + "uuid": "5583fbaa-0d79-4069-a1c7-782659e737e4", "practices": [ - "casting" + "chars", + "strings", + "regular-expressions" ], "prerequisites": [ - "numbers", - "booleans", - "casting" + "chars", + "strings", + "booleans" ], - "difficulty": 2 - }, - { - "slug": "collatz-conjecture", - "name": "Collatz Conjecture", - "uuid": "751e4fea-1ee7-4c66-ba2b-802f3ab5f7d6", - "practices": [], - "prerequisites": [], - "difficulty": 2, - "topics": [ - "algorithms", - "conditionals", - "integers", - "loops", - "math" - ] - }, - { - "slug": "game-of-life", - "name": "Conway's Game of Life", - "uuid": "c867b7c0-3810-40c5-9d71-5763f2e28505", - "practices": [], - "prerequisites": [], - "difficulty": 2 - }, - { - "slug": "darts", - "name": "Darts", - "uuid": "55100bd3-8470-45d2-ae90-ac3eb9fd786c", - "practices": [ - "floating-point-numbers", - "if-statements" - ], - "prerequisites": [ - "floating-point-numbers", - "if-statements" - ], - "difficulty": 2 - }, - { - "slug": "eliuds-eggs", - "name": "Eliud's Eggs", - "uuid": "fdb2a717-08d5-4f2a-bd53-fba6fe7c85db", - "practices": [], - "prerequisites": [], - "difficulty": 2 - }, - { - "slug": "etl", - "name": "ETL", - "uuid": "5bc7cda0-519f-4a99-92d5-2e5e20d2a8c8", - "practices": [ - "linq", - "dictionaries" - ], - "prerequisites": [ - "strings", - "numbers", - "dictionaries" - ], - "difficulty": 2 - }, - { - "slug": "grains", - "name": "Grains", - "uuid": "804f12fe-dc2e-4f74-923a-6663fc968b06", - "practices": [ - "integral-numbers", - "math-operators" - ], - "prerequisites": [ - "integral-numbers", - "math-operators", - "if-statements", - "for-loops", - "exceptions" - ], - "difficulty": 2 - }, - { - "slug": "hamming", - "name": "Hamming", - "uuid": "39e7d0e6-d926-4d69-99d8-7f3084cab476", - "practices": [ - "if-statements", - "for-loops", - "linq" - ], - "prerequisites": [ - "if-statements", - "for-loops", - "strings" - ], - "difficulty": 2, - "topics": [ - "filtering", - "strings" - ] - }, - { - "slug": "nth-prime", - "name": "Nth Prime", - "uuid": "5734890a-67af-4eaf-8c78-7d7580b8db70", - "practices": [], - "prerequisites": [], - "difficulty": 2 - }, - { - "slug": "nucleotide-count", - "name": "Nucleotide Count", - "uuid": "57d134bd-f992-4452-b14c-fe2b533d72ee", - "practices": [ - "dictionaries", - "exceptions" - ], - "prerequisites": [ - "dictionaries", - "strings", - "chars", - "if-statements", - "foreach-loops", - "exceptions" - ], - "difficulty": 2 - }, - { - "slug": "pangram", - "name": "Pangram", - "uuid": "7db2492a-2d20-4be3-af4a-c9fad183c752", - "practices": [ - "chars", - "strings", - "sets" - ], - "prerequisites": [ - "chars", - "strings", - "booleans" - ], - "difficulty": 2 - }, - { - "slug": "raindrops", - "name": "Raindrops", - "uuid": "36d91bd3-0cdc-4e53-94bf-4b9a797b596e", - "practices": [ - "if-statements", - "casting" - ], - "prerequisites": [ - "strings", - "if-statements", - "numbers", - "casting" - ], - "difficulty": 2 - }, - { - "slug": "square-root", - "name": "Square Root", - "uuid": "5704628e-f23f-4867-ae95-63151fbbc97f", - "practices": [], - "prerequisites": [], - "difficulty": 2 - }, - { - "slug": "beer-song", - "name": "Beer Song", - "uuid": "2523e11e-3a9e-4936-9cbb-37f53a6d90cb", - "practices": [], - "prerequisites": [], - "difficulty": 3, - "status": "deprecated" - }, - { - "slug": "binary-search", - "name": "Binary Search", - "uuid": "85ba3b9b-ea14-4032-a7e5-45e911e0e5fd", - "practices": [ - "arrays", - "for-loops" - ], - "prerequisites": [ - "arrays", - "numbers", - "for-loops" - ], - "difficulty": 3 - }, - { - "slug": "bottle-song", - "name": "Bottle Song", - "uuid": "7495b54e-0c0c-4e1f-af6a-f367402483b2", - "practices": [ - "switch-statements", - "string-formatting" - ], - "prerequisites": [ - "strings", - "numbers", - "for-loops" - ], - "difficulty": 3 - }, - { - "slug": "dnd-character", - "name": "D&D Character", - "uuid": "dc8c3579-87bb-4730-aafa-fd0c01955250", - "practices": [ - "randomness", - "constructors" - ], - "prerequisites": [ - "randomness", - "classes", - "properties", - "numbers", - "constructors" - ], - "difficulty": 3 - }, - { - "slug": "error-handling", - "name": "Error Handling", - "uuid": "09809c99-6fb9-4b7e-81b8-f069f79b0b0a", - "practices": [ - "exceptions", - "casting", - "resource-cleanup" - ], - "prerequisites": [ - "exceptions", - "casting", - "resource-cleanup", - "numbers" - ], - "difficulty": 3 - }, - { - "slug": "grade-school", - "name": "Grade School", - "uuid": "e017f9e9-d928-43d1-b69f-5176d4d93785", - "practices": [ - "dictionaries", - "ordering" - ], - "prerequisites": [ - "strings", - "numbers", - "enumerables", - "ordering" - ], - "difficulty": 3 - }, - { - "slug": "isogram", - "name": "Isogram", - "uuid": "ffa3cdb7-5cc8-4583-b6b1-e17f18db2b5d", - "practices": [ - "chars", - "strings", - "sets" - ], - "prerequisites": [ - "chars", - "strings", - "booleans" - ], - "difficulty": 3 - }, - { - "slug": "perfect-numbers", - "name": "Perfect Numbers", - "uuid": "4e6633c9-4fd7-4a32-90c0-0498d06ddcbf", - "practices": [ - "numbers" - ], - "prerequisites": [ - "enums", - "numbers", - "exceptions" - ], - "difficulty": 3 - }, - { - "slug": "phone-number", - "name": "Phone Number", - "uuid": "d620068b-b36f-464a-ba78-82e1f8532c53", - "practices": [], - "prerequisites": [], - "difficulty": 3, - "topics": [ - "parsing", - "transforming" - ] - }, - { - "slug": "protein-translation", - "name": "Protein Translation", - "uuid": "d608e34e-2292-415b-b742-450155081fcd", - "practices": [ - "while-loops", - "linq" - ], - "prerequisites": [ - "strings", - "while-loops", - "arrays" - ], - "difficulty": 3 - }, - { - "slug": "proverb", - "name": "Proverb", - "uuid": "c9765122-c89e-4a9e-b423-74e9b3ee6691", - "practices": [ - "arrays" - ], - "prerequisites": [ - "strings", - "arrays", - "for-loops" - ], - "difficulty": 3 - }, - { - "slug": "queen-attack", - "name": "Queen Attack", - "uuid": "9066e7e7-d830-46a0-b022-a3b22acec455", - "practices": [ - "constructors", - "math-operators" - ], - "prerequisites": [ - "classes", - "constructors", - "booleans", - "if-statements", - "math-operators", - "exceptions" - ], - "difficulty": 3 - }, - { - "slug": "robot-name", - "name": "Robot Name", - "uuid": "687037f7-bce0-4256-bcfd-1dda8bf0c401", - "practices": [ - "randomness", - "classes", - "sets" - ], - "prerequisites": [ - "randomness", - "strings", - "classes", - "generic-types" - ], - "difficulty": 3 - }, - { - "slug": "robot-simulator", - "name": "Robot Simulator", - "uuid": "99edb730-c79a-48b6-9bba-efc4b4882f44", - "practices": [ - "switch-statements", - "switch-expressions", - "constructors" - ], - "prerequisites": [ - "enums", - "classes", - "constructors", - "properties", - "chars", - "switch-statements" - ], - "difficulty": 3 - }, - { - "slug": "scrabble-score", - "name": "Scrabble Score", - "uuid": "2cdcf9b2-caa5-4116-bf38-e65138875112", - "practices": [ - "dictionaries" - ], - "prerequisites": [ - "numbers", - "strings" - ], - "difficulty": 3 - }, - { - "slug": "secret-handshake", - "name": "Secret Handshake", - "uuid": "61ea38ad-7600-42fc-aa6b-07188259689f", - "practices": [ - "bit-manipulation" - ], - "prerequisites": [ - "strings", - "bit-manipulation", - "arrays" - ], - "difficulty": 3 - }, - { - "slug": "sieve", - "name": "Sieve", - "uuid": "69846818-29ff-4293-84c2-49e62ee8dc34", - "practices": [ - "arrays" - ], - "prerequisites": [ - "arrays", - "numbers", - "exceptions" - ], - "difficulty": 3 - }, - { - "slug": "triangle", - "name": "Triangle", - "uuid": "78113af6-b1a4-40ab-86c6-3b26afdec75f", - "practices": [ - "floating-point-numbers", - "if-statements" - ], - "prerequisites": [ - "floating-point-numbers", - "if-statements", - "booleans" - ], - "difficulty": 3 - }, - { - "slug": "acronym", - "name": "Acronym", - "uuid": "5583fbaa-0d79-4069-a1c7-782659e737e4", - "practices": [ - "chars", - "strings", - "regular-expressions" - ], - "prerequisites": [ - "chars", - "strings", - "booleans" - ], - "difficulty": 4 + "difficulty": 5 }, { "slug": "affine-cipher", @@ -799,7 +756,7 @@ "numbers", "exceptions" ], - "difficulty": 4 + "difficulty": 5 }, { "slug": "all-your-base", @@ -807,13 +764,38 @@ "uuid": "016ea49c-036b-44f7-909b-4c38aa62d636", "practices": [], "prerequisites": [], - "difficulty": 4, + "difficulty": 5, "topics": [ "integers", "math", "transforming" ] }, + { + "slug": "anagram", + "name": "Anagram", + "uuid": "ff07d780-2531-4728-9432-bd786652ad51", + "practices": [], + "prerequisites": [], + "difficulty": 5, + "topics": [ + "filtering", + "strings" + ] + }, + { + "slug": "atbash-cipher", + "name": "Atbash Cipher", + "uuid": "cd829c1c-8e35-4cf7-a47e-3b394a036637", + "practices": [], + "prerequisites": [], + "difficulty": 5, + "topics": [ + "algorithms", + "strings", + "transforming" + ] + }, { "slug": "bank-account", "name": "Bank Account", @@ -830,274 +812,119 @@ "properties", "exceptions" ], - "difficulty": 4 - }, - { - "slug": "circular-buffer", - "name": "Circular Buffer", - "uuid": "cb6a61c6-16fa-4caa-8727-2f50341861e5", - "practices": [ - "queues", - "generic-types", - "exceptions" - ], - "prerequisites": [ - "queues", - "classes", - "generic-types", - "numbers", - "exceptions" - ], - "difficulty": 4 + "difficulty": 5 }, { - "slug": "clock", - "name": "Clock", - "uuid": "12ce6363-d4dd-4ef0-82a6-388218aa71b7", + "slug": "bob", + "name": "Bob", + "uuid": "c26876c4-060e-4870-b20c-a4a3ebbfcf7c", "practices": [], "prerequisites": [], - "difficulty": 4, + "difficulty": 5, "topics": [ - "classes", - "equality" + "conditionals", + "strings" ] }, { - "slug": "house", - "name": "House", - "uuid": "e191cff0-b845-48f0-9ac9-daae63af9e8a", - "practices": [ - "string-formatting" - ], - "prerequisites": [ - "strings", - "string-formatting", - "numbers" - ], - "difficulty": 4 - }, - { - "slug": "isbn-verifier", - "name": "ISBN Verifier", - "uuid": "c9151160-d2e8-4c54-9191-04644d913cd6", - "practices": [ - "chars", - "regular-expressions" - ], - "prerequisites": [ - "strings", - "chars", - "booleans" - ], - "difficulty": 4 - }, - { - "slug": "largest-series-product", - "name": "Largest Series Product", - "uuid": "19675f15-ff61-41e9-8610-c27edaefde04", + "slug": "book-store", + "name": "Book Store", + "uuid": "4555cf8b-e800-494e-bc23-61f9428c900b", "practices": [ - "integral-numbers", - "math-operators" - ], - "prerequisites": [ - "integral-numbers", - "math-operators", - "strings", - "chars", + "linq", "for-loops", - "exceptions" - ], - "difficulty": 4 - }, - { - "slug": "matrix", - "name": "Matrix", - "uuid": "2d9a1b92-9315-49cb-9e47-cff0caffe8a4", - "practices": [ - "properties", - "classes", - "arrays" - ], - "prerequisites": [ - "arrays", - "classes", - "numbers", - "properties" - ], - "difficulty": 4 - }, - { - "slug": "meetup", - "name": "Meetup", - "uuid": "2a099206-450b-4ef8-a282-66ec460aa286", - "practices": [ - "datetimes" - ], - "prerequisites": [ - "datetimes" - ], - "difficulty": 4 - }, - { - "slug": "prime-factors", - "name": "Prime Factors", - "uuid": "551510bc-817d-4145-b974-f9149f7e1c5e", - "practices": [ - "integral-numbers", - "while-loops" - ], - "prerequisites": [ - "integral-numbers", - "arrays", - "while-loops" - ], - "difficulty": 4 - }, - { - "slug": "pythagorean-triplet", - "name": "Pythagorean Triplet", - "uuid": "ceb811d0-3aae-4517-9e37-1eca5ba07c39", - "practices": [ - "tuples", - "generic-methods" - ], - "prerequisites": [ - "tuples", - "numbers", - "enumerables", - "generic-methods" - ], - "difficulty": 4 - }, - { - "slug": "rotational-cipher", - "name": "Rotational Cipher", - "uuid": "bced4d03-740d-4d71-8e08-7a47f6f0d6af", - "practices": [ - "chars", - "strings" - ], - "prerequisites": [ - "chars", - "strings", - "numbers" - ], - "difficulty": 4 - }, - { - "slug": "saddle-points", - "name": "Saddle Points", - "uuid": "cbdb6929-d1cb-416a-b38a-8eda20401deb", - "practices": [ - "multi-dimensional-arrays", - "tuples" - ], - "prerequisites": [ - "multi-dimensional-arrays", - "tuples", - "enumerables", - "generic-methods", - "numbers" - ], - "difficulty": 4 - }, - { - "slug": "simple-linked-list", - "name": "Simple Linked List", - "uuid": "ed632f85-3488-4cec-bbbb-19582a380c1f", - "practices": [ - "interfaces", - "generic-types", - "properties", - "enumerables" + "floating-point-numbers", + "recursion" ], "prerequisites": [ - "interfaces", - "generic-types", - "properties", - "numbers" + "floating-point-numbers", + "numbers", + "enumerables", + "for-loops" ], - "difficulty": 4 + "difficulty": 5 }, { - "slug": "twelve-days", - "name": "Twelve Days", - "uuid": "a3845cd0-061c-4c1b-a687-45a28a9504a0", + "slug": "bowling", + "name": "Bowling", + "uuid": "7d306a39-c748-4372-8ad6-eb9ff1d42a8b", "practices": [ - "string-formatting" + "nullability", + "classes" ], "prerequisites": [ - "strings", "numbers", - "for-loops", - "string-formatting" + "classes", + "nullability", + "exceptions" ], - "difficulty": 4 + "difficulty": 5 }, { - "slug": "word-count", - "name": "Word Count", - "uuid": "af99f598-996e-4a03-ba5d-5cea5de96e0c", + "slug": "change", + "name": "Change", + "uuid": "4b4197d2-8123-4474-8c32-1191c1f9b5cd", "practices": [ - "dictionaries", - "regular-expressions" + "exceptions", + "linq" ], "prerequisites": [ - "strings", - "dictionaries", "numbers", + "arrays", "exceptions" ], - "difficulty": 4 + "difficulty": 5 }, { - "slug": "accumulate", - "name": "Accumulate", - "uuid": "b2e12f15-5cae-4848-9ee8-2e1b0992b69c", + "slug": "circular-buffer", + "name": "Circular Buffer", + "uuid": "cb6a61c6-16fa-4caa-8727-2f50341861e5", "practices": [ - "lambdas", - "foreach", - "yield" + "queues", + "generic-types", + "exceptions" ], "prerequisites": [ - "lambdas", + "queues", + "classes", "generic-types", - "foreach", - "enumerables", - "extension-methods" + "numbers", + "exceptions" ], + "difficulty": 5 + }, + { + "slug": "clock", + "name": "Clock", + "uuid": "12ce6363-d4dd-4ef0-82a6-388218aa71b7", + "practices": [], + "prerequisites": [], "difficulty": 5, "topics": [ - "extension_methods", - "sequences", - "transforming" + "classes", + "equality" ] }, { - "slug": "book-store", - "name": "Book Store", - "uuid": "4555cf8b-e800-494e-bc23-61f9428c900b", - "practices": [ - "linq", - "for-loops", - "floating-point-numbers", - "recursion" - ], - "prerequisites": [ - "floating-point-numbers", - "numbers", - "enumerables", - "for-loops" - ], + "slug": "game-of-life", + "name": "Conway's Game of Life", + "uuid": "c867b7c0-3810-40c5-9d71-5763f2e28505", + "practices": [], + "prerequisites": [], "difficulty": 5 }, { - "slug": "diamond", - "name": "Diamond", - "uuid": "6ea6e17c-9dbb-45c5-ab70-362791e5dd60", + "slug": "crypto-square", + "name": "Crypto Square", + "uuid": "5f6ed6d3-fd66-406a-9a92-544745a5e4ee", "practices": [], "prerequisites": [], - "difficulty": 5 + "difficulty": 5, + "topics": [ + "algorithms", + "strings", + "transforming" + ] }, { "slug": "flatten-array", @@ -1166,6 +993,53 @@ ], "difficulty": 5 }, + { + "slug": "house", + "name": "House", + "uuid": "e191cff0-b845-48f0-9ac9-daae63af9e8a", + "practices": [ + "string-formatting" + ], + "prerequisites": [ + "strings", + "string-formatting", + "numbers" + ], + "difficulty": 5 + }, + { + "slug": "isbn-verifier", + "name": "ISBN Verifier", + "uuid": "c9151160-d2e8-4c54-9191-04644d913cd6", + "practices": [ + "chars", + "regular-expressions" + ], + "prerequisites": [ + "strings", + "chars", + "booleans" + ], + "difficulty": 5 + }, + { + "slug": "largest-series-product", + "name": "Largest Series Product", + "uuid": "19675f15-ff61-41e9-8610-c27edaefde04", + "practices": [ + "integral-numbers", + "math-operators" + ], + "prerequisites": [ + "integral-numbers", + "math-operators", + "strings", + "chars", + "for-loops", + "exceptions" + ], + "difficulty": 5 + }, { "slug": "ledger", "name": "Ledger", @@ -1245,6 +1119,35 @@ ], "difficulty": 5 }, + { + "slug": "matrix", + "name": "Matrix", + "uuid": "2d9a1b92-9315-49cb-9e47-cff0caffe8a4", + "practices": [ + "properties", + "classes", + "arrays" + ], + "prerequisites": [ + "arrays", + "classes", + "numbers", + "properties" + ], + "difficulty": 5 + }, + { + "slug": "meetup", + "name": "Meetup", + "uuid": "2a099206-450b-4ef8-a282-66ec460aa286", + "practices": [ + "datetimes" + ], + "prerequisites": [ + "datetimes" + ], + "difficulty": 5 + }, { "slug": "minesweeper", "name": "Minesweeper", @@ -1254,6 +1157,14 @@ "difficulty": 5, "status": "deprecated" }, + { + "slug": "nth-prime", + "name": "Nth Prime", + "uuid": "5734890a-67af-4eaf-8c78-7d7580b8db70", + "practices": [], + "prerequisites": [], + "difficulty": 5 + }, { "slug": "ocr-numbers", "name": "OCR Numbers", @@ -1288,6 +1199,64 @@ ], "difficulty": 5 }, + { + "slug": "pig-latin", + "name": "Pig Latin", + "uuid": "65780c09-7730-447d-ae61-43f19283be85", + "practices": [ + "regular-expressions" + ], + "prerequisites": [ + "strings" + ], + "difficulty": 5 + }, + { + "slug": "prime-factors", + "name": "Prime Factors", + "uuid": "551510bc-817d-4145-b974-f9149f7e1c5e", + "practices": [ + "integral-numbers", + "while-loops" + ], + "prerequisites": [ + "integral-numbers", + "arrays", + "while-loops" + ], + "difficulty": 5 + }, + { + "slug": "pythagorean-triplet", + "name": "Pythagorean Triplet", + "uuid": "ceb811d0-3aae-4517-9e37-1eca5ba07c39", + "practices": [ + "tuples", + "generic-methods" + ], + "prerequisites": [ + "tuples", + "numbers", + "enumerables", + "generic-methods" + ], + "difficulty": 5 + }, + { + "slug": "rail-fence-cipher", + "name": "Rail Fence Cipher", + "uuid": "b8645a9c-bd7e-4e57-81b4-079b5e0c3bb0", + "practices": [ + "constructors" + ], + "prerequisites": [ + "classes", + "constructors", + "numbers", + "strings" + ], + "difficulty": 5 + }, { "slug": "relative-distance", "name": "Relative Distance", @@ -1296,6 +1265,20 @@ "prerequisites": [], "difficulty": 5 }, + { + "slug": "rest-api", + "name": "REST API", + "uuid": "31b40119-cb73-420c-aec9-d920450966df", + "practices": [ + "optional-parameters" + ], + "prerequisites": [ + "strings", + "optional-parameters", + "constructors" + ], + "difficulty": 5 + }, { "slug": "roman-numerals", "name": "Roman Numerals", @@ -1313,6 +1296,21 @@ ], "difficulty": 5 }, + { + "slug": "rotational-cipher", + "name": "Rotational Cipher", + "uuid": "bced4d03-740d-4d71-8e08-7a47f6f0d6af", + "practices": [ + "chars", + "strings" + ], + "prerequisites": [ + "chars", + "strings", + "numbers" + ], + "difficulty": 5 + }, { "slug": "run-length-encoding", "name": "Run-Length Encoding", @@ -1328,6 +1326,23 @@ ], "difficulty": 5 }, + { + "slug": "saddle-points", + "name": "Saddle Points", + "uuid": "cbdb6929-d1cb-416a-b38a-8eda20401deb", + "practices": [ + "multi-dimensional-arrays", + "tuples" + ], + "prerequisites": [ + "multi-dimensional-arrays", + "tuples", + "enumerables", + "generic-methods", + "numbers" + ], + "difficulty": 5 + }, { "slug": "scale-generator", "name": "Scale Generator", @@ -1355,6 +1370,24 @@ ], "difficulty": 5 }, + { + "slug": "simple-linked-list", + "name": "Simple Linked List", + "uuid": "ed632f85-3488-4cec-bbbb-19582a380c1f", + "practices": [ + "interfaces", + "generic-types", + "properties", + "enumerables" + ], + "prerequisites": [ + "interfaces", + "generic-types", + "properties", + "numbers" + ], + "difficulty": 5 + }, { "slug": "spiral-matrix", "name": "Spiral Matrix", @@ -1391,6 +1424,34 @@ ], "difficulty": 5 }, + { + "slug": "tournament", + "name": "Tournament", + "uuid": "a15aad1a-b578-46f9-b720-7d448da0459c", + "practices": [ + "streams", + "string-formatting" + ], + "prerequisites": [ + "streams", + "strings", + "string-formatting" + ], + "difficulty": 5 + }, + { + "slug": "transpose", + "name": "Transpose", + "uuid": "729499b6-c3bb-4b53-9a9c-ab3567f527bc", + "practices": [ + "for-loops" + ], + "prerequisites": [ + "strings", + "for-loops" + ], + "difficulty": 5 + }, { "slug": "tree-building", "name": "Tree Building", @@ -1413,119 +1474,58 @@ "difficulty": 5 }, { - "slug": "yacht", - "name": "Yacht", - "uuid": "043776f5-cc8a-4b34-9701-c1569610a995", + "slug": "twelve-days", + "name": "Twelve Days", + "uuid": "a3845cd0-061c-4c1b-a687-45a28a9504a0", "practices": [ - "enums", - "linq" + "string-formatting" ], "prerequisites": [ - "enums", - "arrays", - "numbers" + "strings", + "numbers", + "for-loops", + "string-formatting" ], "difficulty": 5 }, { - "slug": "bowling", - "name": "Bowling", - "uuid": "7d306a39-c748-4372-8ad6-eb9ff1d42a8b", + "slug": "word-count", + "name": "Word Count", + "uuid": "af99f598-996e-4a03-ba5d-5cea5de96e0c", "practices": [ - "nullability", - "classes" + "dictionaries", + "regular-expressions" ], "prerequisites": [ + "strings", + "dictionaries", "numbers", - "classes", - "nullability", "exceptions" ], - "difficulty": 6 + "difficulty": 5 }, { - "slug": "change", - "name": "Change", - "uuid": "4b4197d2-8123-4474-8c32-1191c1f9b5cd", + "slug": "yacht", + "name": "Yacht", + "uuid": "043776f5-cc8a-4b34-9701-c1569610a995", "practices": [ - "exceptions", + "enums", "linq" ], "prerequisites": [ - "numbers", + "enums", "arrays", - "exceptions" - ], - "difficulty": 6 - }, - { - "slug": "pig-latin", - "name": "Pig Latin", - "uuid": "65780c09-7730-447d-ae61-43f19283be85", - "practices": [ - "regular-expressions" - ], - "prerequisites": [ - "strings" - ], - "difficulty": 6 - }, - { - "slug": "rail-fence-cipher", - "name": "Rail Fence Cipher", - "uuid": "b8645a9c-bd7e-4e57-81b4-079b5e0c3bb0", - "practices": [ - "constructors" - ], - "prerequisites": [ - "classes", - "constructors", - "numbers", - "strings" - ], - "difficulty": 6 - }, - { - "slug": "rest-api", - "name": "REST API", - "uuid": "31b40119-cb73-420c-aec9-d920450966df", - "practices": [ - "optional-parameters" - ], - "prerequisites": [ - "strings", - "optional-parameters", - "constructors" - ], - "difficulty": 6 - }, - { - "slug": "tournament", - "name": "Tournament", - "uuid": "a15aad1a-b578-46f9-b720-7d448da0459c", - "practices": [ - "streams", - "string-formatting" - ], - "prerequisites": [ - "streams", - "strings", - "string-formatting" + "numbers" ], - "difficulty": 6 + "difficulty": 5 }, { - "slug": "transpose", - "name": "Transpose", - "uuid": "729499b6-c3bb-4b53-9a9c-ab3567f527bc", - "practices": [ - "for-loops" - ], - "prerequisites": [ - "strings", - "for-loops" - ], - "difficulty": 6 + "slug": "diamond", + "name": "Diamond", + "uuid": "6ea6e17c-9dbb-45c5-ab70-362791e5dd60", + "practices": [], + "prerequisites": [], + "difficulty": 8 }, { "slug": "diffie-hellman", @@ -1541,7 +1541,7 @@ "big-integers", "math-operators" ], - "difficulty": 7 + "difficulty": 8 }, { "slug": "poker", @@ -1557,7 +1557,7 @@ "ordering", "if-statements" ], - "difficulty": 7 + "difficulty": 8 }, { "slug": "rectangles", @@ -1574,39 +1574,7 @@ "for-loops", "if-statements" ], - "difficulty": 7 - }, - { - "slug": "variable-length-quantity", - "name": "Variable Length Quantity", - "uuid": "428f8080-f804-4433-b0c9-9cc1e7f82fa1", - "practices": [ - "integral-numbers", - "bit-manipulation" - ], - "prerequisites": [ - "integral-numbers", - "arrays", - "bit-manipulation", - "while-loops", - "exceptions" - ], - "difficulty": 7 - }, - { - "slug": "wordy", - "name": "Wordy", - "uuid": "542820e5-43a9-4c05-93c2-e3e07329f380", - "practices": [ - "switch-statements", - "regular-expressions" - ], - "prerequisites": [ - "strings", - "numbers", - "exceptions" - ], - "difficulty": 7 + "difficulty": 8 }, { "slug": "say", @@ -1642,6 +1610,38 @@ ], "difficulty": 8 }, + { + "slug": "variable-length-quantity", + "name": "Variable Length Quantity", + "uuid": "428f8080-f804-4433-b0c9-9cc1e7f82fa1", + "practices": [ + "integral-numbers", + "bit-manipulation" + ], + "prerequisites": [ + "integral-numbers", + "arrays", + "bit-manipulation", + "while-loops", + "exceptions" + ], + "difficulty": 8 + }, + { + "slug": "wordy", + "name": "Wordy", + "uuid": "542820e5-43a9-4c05-93c2-e3e07329f380", + "practices": [ + "switch-statements", + "regular-expressions" + ], + "prerequisites": [ + "strings", + "numbers", + "exceptions" + ], + "difficulty": 8 + }, { "slug": "zebra-puzzle", "name": "Zebra Puzzle", @@ -1669,7 +1669,7 @@ "classes", "equality" ], - "difficulty": 10 + "difficulty": 8 } ] },