From 0956f1839fcaaa273353148da9e157a8f9690d2f Mon Sep 17 00:00:00 2001 From: Dave Gauer Date: Fri, 12 Mar 2021 18:59:46 -0500 Subject: [PATCH] "999 is enough for anybody" triple-zero padding (#18) When I hit 999 exercises, I will finally have reached the ultimate state of soteriological release and no more exercises will be needed. The cycle will be complete. All that will be left is perfect quietude, freedom, and highest happiness. --- build.zig | 132 ++++++++++-------- exercises/{01_hello.zig => 001_hello.zig} | 0 exercises/{02_std.zig => 002_std.zig} | 0 .../{03_assignment.zig => 003_assignment.zig} | 0 exercises/{04_arrays.zig => 004_arrays.zig} | 0 exercises/{05_arrays2.zig => 005_arrays2.zig} | 0 exercises/{06_strings.zig => 006_strings.zig} | 0 .../{07_strings2.zig => 007_strings2.zig} | 0 exercises/{08_quiz.zig => 008_quiz.zig} | 0 exercises/{09_if.zig => 009_if.zig} | 0 exercises/{10_if2.zig => 010_if2.zig} | 0 exercises/{11_while.zig => 011_while.zig} | 0 exercises/{12_while2.zig => 012_while2.zig} | 0 exercises/{13_while3.zig => 013_while3.zig} | 0 exercises/{14_while4.zig => 014_while4.zig} | 0 exercises/{15_for.zig => 015_for.zig} | 0 exercises/{16_for2.zig => 016_for2.zig} | 0 exercises/{17_quiz2.zig => 017_quiz2.zig} | 0 .../{18_functions.zig => 018_functions.zig} | 0 .../{19_functions2.zig => 019_functions2.zig} | 0 exercises/{20_quiz3.zig => 020_quiz3.zig} | 0 exercises/{21_errors.zig => 021_errors.zig} | 0 exercises/{22_errors2.zig => 022_errors2.zig} | 0 exercises/{23_errors3.zig => 023_errors3.zig} | 0 exercises/{24_errors4.zig => 024_errors4.zig} | 0 exercises/{25_errors5.zig => 025_errors5.zig} | 0 exercises/{26_hello2.zig => 026_hello2.zig} | 0 exercises/{27_defer.zig => 027_defer.zig} | 0 exercises/{28_defer2.zig => 028_defer2.zig} | 0 .../{29_errdefer.zig => 029_errdefer.zig} | 0 exercises/{30_switch.zig => 030_switch.zig} | 0 exercises/{31_switch2.zig => 031_switch2.zig} | 0 ...32_unreachable.zig => 032_unreachable.zig} | 0 exercises/{33_iferror.zig => 033_iferror.zig} | 0 exercises/{34_quiz4.zig => 034_quiz4.zig} | 0 exercises/{35_enums.zig => 035_enums.zig} | 0 exercises/{36_enums2.zig => 036_enums2.zig} | 0 exercises/{37_structs.zig => 037_structs.zig} | 0 .../{38_structs2.zig => 038_structs2.zig} | 0 .../{39_pointers.zig => 039_pointers.zig} | 0 .../{40_pointers2.zig => 040_pointers2.zig} | 0 .../{41_pointers3.zig => 041_pointers3.zig} | 0 .../{42_pointers4.zig => 042_pointers4.zig} | 0 .../{43_pointers5.zig => 043_pointers5.zig} | 0 exercises/{44_quiz5.zig => 044_quiz5.zig} | 0 .../{45_optionals.zig => 045_optionals.zig} | 0 .../{46_optionals2.zig => 046_optionals2.zig} | 0 exercises/{47_methods.zig => 047_methods.zig} | 0 .../{48_methods2.zig => 048_methods2.zig} | 0 exercises/{49_quiz6.zig => 049_quiz6.zig} | 0 .../{50_no_value.zig => 050_no_value.zig} | 0 exercises/{51_values.zig => 051_values.zig} | 0 exercises/{52_slices.zig => 052_slices.zig} | 0 exercises/{53_slices2.zig => 053_slices2.zig} | 0 ..._manypointers.zig => 054_manypointers.zig} | 0 exercises/{55_unions.zig => 055_unions.zig} | 0 exercises/{56_unions2.zig => 056_unions2.zig} | 0 exercises/{57_unions3.zig => 057_unions3.zig} | 0 .../{01_hello.patch => 001_hello.patch} | 0 .../patches/{02_std.patch => 002_std.patch} | 0 ..._assignment.patch => 003_assignment.patch} | 0 .../{04_arrays.patch => 004_arrays.patch} | 0 .../{05_arrays2.patch => 005_arrays2.patch} | 0 .../{06_strings.patch => 006_strings.patch} | 0 .../{07_strings2.patch => 007_strings2.patch} | 0 .../patches/{08_quiz.patch => 008_quiz.patch} | 0 patches/patches/{09_if.patch => 009_if.patch} | 0 .../patches/{10_if2.patch => 010_if2.patch} | 0 .../{11_while.patch => 011_while.patch} | 0 .../{12_while2.patch => 012_while2.patch} | 0 .../{13_while3.patch => 013_while3.patch} | 0 .../{14_while4.patch => 014_while4.patch} | 0 .../patches/{15_for.patch => 015_for.patch} | 0 .../patches/{16_for2.patch => 016_for2.patch} | 0 .../{17_quiz2.patch => 017_quiz2.patch} | 0 ...18_functions.patch => 018_functions.patch} | 0 ..._functions2.patch => 019_functions2.patch} | 0 .../{20_quiz3.patch => 020_quiz3.patch} | 0 .../{21_errors.patch => 021_errors.patch} | 0 .../{22_errors2.patch => 022_errors2.patch} | 0 .../{23_errors3.patch => 023_errors3.patch} | 0 .../{24_errors4.patch => 024_errors4.patch} | 0 .../{25_errors5.patch => 025_errors5.patch} | 0 .../{26_hello2.patch => 026_hello2.patch} | 0 .../{27_defer.patch => 027_defer.patch} | 0 .../{28_defer2.patch => 028_defer2.patch} | 0 .../{29_errdefer.patch => 029_errdefer.patch} | 0 .../{30_switch.patch => 030_switch.patch} | 0 .../{31_switch2.patch => 031_switch2.patch} | 0 ...nreachable.patch => 032_unreachable.patch} | 0 .../{33_iferror.patch => 033_iferror.patch} | 0 .../{34_quiz4.patch => 034_quiz4.patch} | 0 .../{35_enums.patch => 035_enums.patch} | 0 .../{36_enums2.patch => 036_enums2.patch} | 0 .../{37_structs.patch => 037_structs.patch} | 0 .../{38_structs2.patch => 038_structs2.patch} | 0 .../{39_pointers.patch => 039_pointers.patch} | 0 ...40_pointers2.patch => 040_pointers2.patch} | 0 ...41_pointers3.patch => 041_pointers3.patch} | 0 ...42_pointers4.patch => 042_pointers4.patch} | 0 ...43_pointers5.patch => 043_pointers5.patch} | 0 .../{44_quiz5.patch => 044_quiz5.patch} | 0 ...45_optionals.patch => 045_optionals.patch} | 0 ..._optionals2.patch => 046_optionals2.patch} | 0 .../{47_methods.patch => 047_methods.patch} | 0 .../{48_methods2.patch => 048_methods2.patch} | 0 .../{49_quiz6.patch => 049_quiz6.patch} | 0 .../{50_no_value.patch => 050_no_value.patch} | 0 .../{51_values.patch => 051_values.patch} | 0 .../{52_slices.patch => 052_slices.patch} | 0 .../{53_slices2.patch => 053_slices2.patch} | 0 ...ypointers.patch => 054_manypointers.patch} | 0 .../{55_unions.patch => 055_unions.patch} | 0 .../{56_unions2.patch => 056_unions2.patch} | 0 .../{57_unions3.patch => 057_unions3.patch} | 0 115 files changed, 70 insertions(+), 62 deletions(-) rename exercises/{01_hello.zig => 001_hello.zig} (100%) rename exercises/{02_std.zig => 002_std.zig} (100%) rename exercises/{03_assignment.zig => 003_assignment.zig} (100%) rename exercises/{04_arrays.zig => 004_arrays.zig} (100%) rename exercises/{05_arrays2.zig => 005_arrays2.zig} (100%) rename exercises/{06_strings.zig => 006_strings.zig} (100%) rename exercises/{07_strings2.zig => 007_strings2.zig} (100%) rename exercises/{08_quiz.zig => 008_quiz.zig} (100%) rename exercises/{09_if.zig => 009_if.zig} (100%) rename exercises/{10_if2.zig => 010_if2.zig} (100%) rename exercises/{11_while.zig => 011_while.zig} (100%) rename exercises/{12_while2.zig => 012_while2.zig} (100%) rename exercises/{13_while3.zig => 013_while3.zig} (100%) rename exercises/{14_while4.zig => 014_while4.zig} (100%) rename exercises/{15_for.zig => 015_for.zig} (100%) rename exercises/{16_for2.zig => 016_for2.zig} (100%) rename exercises/{17_quiz2.zig => 017_quiz2.zig} (100%) rename exercises/{18_functions.zig => 018_functions.zig} (100%) rename exercises/{19_functions2.zig => 019_functions2.zig} (100%) rename exercises/{20_quiz3.zig => 020_quiz3.zig} (100%) rename exercises/{21_errors.zig => 021_errors.zig} (100%) rename exercises/{22_errors2.zig => 022_errors2.zig} (100%) rename exercises/{23_errors3.zig => 023_errors3.zig} (100%) rename exercises/{24_errors4.zig => 024_errors4.zig} (100%) rename exercises/{25_errors5.zig => 025_errors5.zig} (100%) rename exercises/{26_hello2.zig => 026_hello2.zig} (100%) rename exercises/{27_defer.zig => 027_defer.zig} (100%) rename exercises/{28_defer2.zig => 028_defer2.zig} (100%) rename exercises/{29_errdefer.zig => 029_errdefer.zig} (100%) rename exercises/{30_switch.zig => 030_switch.zig} (100%) rename exercises/{31_switch2.zig => 031_switch2.zig} (100%) rename exercises/{32_unreachable.zig => 032_unreachable.zig} (100%) rename exercises/{33_iferror.zig => 033_iferror.zig} (100%) rename exercises/{34_quiz4.zig => 034_quiz4.zig} (100%) rename exercises/{35_enums.zig => 035_enums.zig} (100%) rename exercises/{36_enums2.zig => 036_enums2.zig} (100%) rename exercises/{37_structs.zig => 037_structs.zig} (100%) rename exercises/{38_structs2.zig => 038_structs2.zig} (100%) rename exercises/{39_pointers.zig => 039_pointers.zig} (100%) rename exercises/{40_pointers2.zig => 040_pointers2.zig} (100%) rename exercises/{41_pointers3.zig => 041_pointers3.zig} (100%) rename exercises/{42_pointers4.zig => 042_pointers4.zig} (100%) rename exercises/{43_pointers5.zig => 043_pointers5.zig} (100%) rename exercises/{44_quiz5.zig => 044_quiz5.zig} (100%) rename exercises/{45_optionals.zig => 045_optionals.zig} (100%) rename exercises/{46_optionals2.zig => 046_optionals2.zig} (100%) rename exercises/{47_methods.zig => 047_methods.zig} (100%) rename exercises/{48_methods2.zig => 048_methods2.zig} (100%) rename exercises/{49_quiz6.zig => 049_quiz6.zig} (100%) rename exercises/{50_no_value.zig => 050_no_value.zig} (100%) rename exercises/{51_values.zig => 051_values.zig} (100%) rename exercises/{52_slices.zig => 052_slices.zig} (100%) rename exercises/{53_slices2.zig => 053_slices2.zig} (100%) rename exercises/{54_manypointers.zig => 054_manypointers.zig} (100%) rename exercises/{55_unions.zig => 055_unions.zig} (100%) rename exercises/{56_unions2.zig => 056_unions2.zig} (100%) rename exercises/{57_unions3.zig => 057_unions3.zig} (100%) rename patches/patches/{01_hello.patch => 001_hello.patch} (100%) rename patches/patches/{02_std.patch => 002_std.patch} (100%) rename patches/patches/{03_assignment.patch => 003_assignment.patch} (100%) rename patches/patches/{04_arrays.patch => 004_arrays.patch} (100%) rename patches/patches/{05_arrays2.patch => 005_arrays2.patch} (100%) rename patches/patches/{06_strings.patch => 006_strings.patch} (100%) rename patches/patches/{07_strings2.patch => 007_strings2.patch} (100%) rename patches/patches/{08_quiz.patch => 008_quiz.patch} (100%) rename patches/patches/{09_if.patch => 009_if.patch} (100%) rename patches/patches/{10_if2.patch => 010_if2.patch} (100%) rename patches/patches/{11_while.patch => 011_while.patch} (100%) rename patches/patches/{12_while2.patch => 012_while2.patch} (100%) rename patches/patches/{13_while3.patch => 013_while3.patch} (100%) rename patches/patches/{14_while4.patch => 014_while4.patch} (100%) rename patches/patches/{15_for.patch => 015_for.patch} (100%) rename patches/patches/{16_for2.patch => 016_for2.patch} (100%) rename patches/patches/{17_quiz2.patch => 017_quiz2.patch} (100%) rename patches/patches/{18_functions.patch => 018_functions.patch} (100%) rename patches/patches/{19_functions2.patch => 019_functions2.patch} (100%) rename patches/patches/{20_quiz3.patch => 020_quiz3.patch} (100%) rename patches/patches/{21_errors.patch => 021_errors.patch} (100%) rename patches/patches/{22_errors2.patch => 022_errors2.patch} (100%) rename patches/patches/{23_errors3.patch => 023_errors3.patch} (100%) rename patches/patches/{24_errors4.patch => 024_errors4.patch} (100%) rename patches/patches/{25_errors5.patch => 025_errors5.patch} (100%) rename patches/patches/{26_hello2.patch => 026_hello2.patch} (100%) rename patches/patches/{27_defer.patch => 027_defer.patch} (100%) rename patches/patches/{28_defer2.patch => 028_defer2.patch} (100%) rename patches/patches/{29_errdefer.patch => 029_errdefer.patch} (100%) rename patches/patches/{30_switch.patch => 030_switch.patch} (100%) rename patches/patches/{31_switch2.patch => 031_switch2.patch} (100%) rename patches/patches/{32_unreachable.patch => 032_unreachable.patch} (100%) rename patches/patches/{33_iferror.patch => 033_iferror.patch} (100%) rename patches/patches/{34_quiz4.patch => 034_quiz4.patch} (100%) rename patches/patches/{35_enums.patch => 035_enums.patch} (100%) rename patches/patches/{36_enums2.patch => 036_enums2.patch} (100%) rename patches/patches/{37_structs.patch => 037_structs.patch} (100%) rename patches/patches/{38_structs2.patch => 038_structs2.patch} (100%) rename patches/patches/{39_pointers.patch => 039_pointers.patch} (100%) rename patches/patches/{40_pointers2.patch => 040_pointers2.patch} (100%) rename patches/patches/{41_pointers3.patch => 041_pointers3.patch} (100%) rename patches/patches/{42_pointers4.patch => 042_pointers4.patch} (100%) rename patches/patches/{43_pointers5.patch => 043_pointers5.patch} (100%) rename patches/patches/{44_quiz5.patch => 044_quiz5.patch} (100%) rename patches/patches/{45_optionals.patch => 045_optionals.patch} (100%) rename patches/patches/{46_optionals2.patch => 046_optionals2.patch} (100%) rename patches/patches/{47_methods.patch => 047_methods.patch} (100%) rename patches/patches/{48_methods2.patch => 048_methods2.patch} (100%) rename patches/patches/{49_quiz6.patch => 049_quiz6.patch} (100%) rename patches/patches/{50_no_value.patch => 050_no_value.patch} (100%) rename patches/patches/{51_values.patch => 051_values.patch} (100%) rename patches/patches/{52_slices.patch => 052_slices.patch} (100%) rename patches/patches/{53_slices2.patch => 053_slices2.patch} (100%) rename patches/patches/{54_manypointers.patch => 054_manypointers.patch} (100%) rename patches/patches/{55_unions.patch => 055_unions.patch} (100%) rename patches/patches/{56_unions2.patch => 056_unions2.patch} (100%) rename patches/patches/{57_unions3.patch => 057_unions3.patch} (100%) diff --git a/build.zig b/build.zig index 82a5786..1467fe7 100644 --- a/build.zig +++ b/build.zig @@ -27,269 +27,278 @@ const Exercise = struct { return self.main_file[0 .. self.main_file.len - 4]; } - /// Returns the key of the main file, which is the text before the _. - /// For example, "01_hello.zig" has the key "01". + /// Returns the key of the main file, the string before the '_' with + /// "zero padding" removed. + /// For example, "001_hello.zig" has the key "1". pub fn key(self: Exercise) []const u8 { const end_index = std.mem.indexOfScalar(u8, self.main_file, '_'); assert(end_index != null); // main file must be key_description.zig - return self.main_file[0..end_index.?]; + + // remove zero padding by advancing index past '0's + var start_index: usize = 0; + while (self.main_file[start_index] == '0') start_index += 1; + return self.main_file[start_index..end_index.?]; } }; const exercises = [_]Exercise{ .{ - .main_file = "01_hello.zig", + .main_file = "001_hello.zig", .output = "Hello world", .hint = "DON'T PANIC!\nRead the error above.\nSee how it has something to do with 'main'?\nOpen up the source file as noted and read the comments.\nYou can do this!", }, .{ - .main_file = "02_std.zig", + .main_file = "002_std.zig", .output = "Standard Library", }, .{ - .main_file = "03_assignment.zig", + .main_file = "003_assignment.zig", .output = "55 314159 -11", .hint = "There are three mistakes in this one!", }, .{ - .main_file = "04_arrays.zig", + .main_file = "004_arrays.zig", .output = "Fourth: 7, Length: 8", .hint = "There are two things to complete here.", }, .{ - .main_file = "05_arrays2.zig", + .main_file = "005_arrays2.zig", .output = "LEET: 1337, Bits: 100110011001", .hint = "Fill in the two arrays.", }, .{ - .main_file = "06_strings.zig", + .main_file = "006_strings.zig", .output = "d=d ha ha ha Major Tom", .hint = "Each '???' needs something filled in.", }, .{ - .main_file = "07_strings2.zig", + .main_file = "007_strings2.zig", .output = "Ziggy", .hint = "Please fix the lyrics!", }, .{ - .main_file = "08_quiz.zig", + .main_file = "008_quiz.zig", .output = "Program in Zig", .hint = "See if you can fix the program!", }, .{ - .main_file = "09_if.zig", + .main_file = "009_if.zig", .output = "Foo is 1!", }, .{ - .main_file = "10_if2.zig", + .main_file = "010_if2.zig", .output = "price is $17", }, .{ - .main_file = "11_while.zig", + .main_file = "011_while.zig", .output = "n=1024", .hint = "You probably want a 'less than' condition.", }, .{ - .main_file = "12_while2.zig", + .main_file = "012_while2.zig", .output = "n=1024", .hint = "It might help to look back at the previous exercise.", }, .{ - .main_file = "13_while3.zig", + .main_file = "013_while3.zig", .output = "1 2 4 7 8 11 13 14 16 17 19", }, .{ - .main_file = "14_while4.zig", + .main_file = "014_while4.zig", .output = "n=4", }, .{ - .main_file = "15_for.zig", + .main_file = "015_for.zig", .output = "A Dramatic Story: :-) :-) :-( :-| :-) The End.", }, .{ - .main_file = "16_for2.zig", + .main_file = "016_for2.zig", .output = "13", }, .{ - .main_file = "17_quiz2.zig", + .main_file = "017_quiz2.zig", .output = "8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16", .hint = "This is a famous game!", }, .{ - .main_file = "18_functions.zig", + .main_file = "018_functions.zig", .output = "Question: 42", .hint = "Can you help write the function?", }, .{ - .main_file = "19_functions2.zig", + .main_file = "019_functions2.zig", .output = "2 4 8 16", }, .{ - .main_file = "20_quiz3.zig", + .main_file = "020_quiz3.zig", .output = "32 64 128 256", .hint = "Unexpected pop quiz! Help!", }, .{ - .main_file = "21_errors.zig", + .main_file = "021_errors.zig", .output = "2<4. 3<4. 4=4. 5>4. 6>4.", .hint = "What's the deal with fours?", }, .{ - .main_file = "22_errors2.zig", + .main_file = "022_errors2.zig", .output = "I compiled", .hint = "Get the error union type right to allow this to compile.", }, .{ - .main_file = "23_errors3.zig", + .main_file = "023_errors3.zig", .output = "a=64, b=22", }, .{ - .main_file = "24_errors4.zig", + .main_file = "024_errors4.zig", .output = "a=20, b=14, c=10", }, .{ - .main_file = "25_errors5.zig", + .main_file = "025_errors5.zig", .output = "a=0, b=19, c=0", }, .{ - .main_file = "26_hello2.zig", + .main_file = "026_hello2.zig", .output = "Hello world", .hint = "Try using a try!", .check_stdout = true, }, .{ - .main_file = "27_defer.zig", + .main_file = "027_defer.zig", .output = "One Two", }, .{ - .main_file = "28_defer2.zig", + .main_file = "028_defer2.zig", .output = "(Goat) (Cat) (Dog) (Dog) (Goat) (Unknown) done.", }, .{ - .main_file = "29_errdefer.zig", + .main_file = "029_errdefer.zig", .output = "Getting number...got 5. Getting number...failed!", }, .{ - .main_file = "30_switch.zig", + .main_file = "030_switch.zig", .output = "ZIG?", }, .{ - .main_file = "31_switch2.zig", + .main_file = "031_switch2.zig", .output = "ZIG!", }, .{ - .main_file = "32_unreachable.zig", + .main_file = "032_unreachable.zig", .output = "1 2 3 9 8 7", }, .{ - .main_file = "33_iferror.zig", + .main_file = "033_iferror.zig", .output = "2<4. 3<4. 4=4. 5>4. 6>4.", .hint = "Seriously, what's the deal with fours?", }, .{ - .main_file = "34_quiz4.zig", + .main_file = "034_quiz4.zig", .output = "my_num=42", .hint = "Can you make this work?", .check_stdout = true, }, .{ - .main_file = "35_enums.zig", + .main_file = "035_enums.zig", .output = "1 2 3 9 8 7", .hint = "This problem seems familiar...", }, .{ - .main_file = "36_enums2.zig", + .main_file = "036_enums2.zig", .output = "#0000ff", .hint = "I'm feeling blue about this.", }, .{ - .main_file = "37_structs.zig", + .main_file = "037_structs.zig", .output = "Your wizard has 90 health and 25 gold.", }, .{ - .main_file = "38_structs2.zig", + .main_file = "038_structs2.zig", .output = "Character 2 - G:10 H:100 XP:20", }, .{ - .main_file = "39_pointers.zig", + .main_file = "039_pointers.zig", .output = "num1: 5, num2: 5", .hint = "Pointers aren't so bad.", }, .{ - .main_file = "40_pointers2.zig", + .main_file = "040_pointers2.zig", .output = "a: 12, b: 12", }, .{ - .main_file = "41_pointers3.zig", + .main_file = "041_pointers3.zig", .output = "foo=6, bar=11", }, .{ - .main_file = "42_pointers4.zig", + .main_file = "042_pointers4.zig", .output = "num: 5, more_nums: 1 1 5 1", }, .{ - .main_file = "43_pointers5.zig", + .main_file = "043_pointers5.zig", .output = "Wizard (G:10 H:100 XP:20)", }, .{ - .main_file = "44_quiz5.zig", + .main_file = "044_quiz5.zig", .output = "Elephant A. Elephant B. Elephant C.", .hint = "Oh no! We forgot Elephant B!", }, .{ - .main_file = "45_optionals.zig", + .main_file = "045_optionals.zig", .output = "The Ultimate Answer: 42.", }, .{ - .main_file = "46_optionals2.zig", + .main_file = "046_optionals2.zig", .output = "Elephant A. Elephant B. Elephant C.", .hint = "Elephants again!", }, .{ - .main_file = "47_methods.zig", + .main_file = "047_methods.zig", .output = "5 aliens. 4 aliens. 1 aliens. 0 aliens. Earth is saved!", .hint = "Use the heat ray. And the method!", }, .{ - .main_file = "48_methods2.zig", + .main_file = "048_methods2.zig", .output = "A B C", .hint = "This just needs one little fix.", }, .{ - .main_file = "49_quiz6.zig", + .main_file = "049_quiz6.zig", .output = "A B C Cv Bv Av", .hint = "Now you're writting Zig!", }, .{ - .main_file = "50_no_value.zig", + .main_file = "050_no_value.zig", .output = "That is not dead which can eternal lie / And with strange aeons even death may die.", }, .{ - .main_file = "51_values.zig", + .main_file = "051_values.zig", .output = "1:false!. 2:true!. 3:true!. XP before:0, after:200.", }, .{ - .main_file = "52_slices.zig", + .main_file = "052_slices.zig", .output = "Hand1: A 4 K 8 Hand2: 5 2 Q J", }, .{ - .main_file = "53_slices2.zig", + .main_file = "053_slices2.zig", .output = "'all your base are belong to us.' 'for great justice.'", }, .{ - .main_file = "54_manypointers.zig", + .main_file = "054_manypointers.zig", .output = "Memory is a resource.", }, .{ - .main_file = "55_unions.zig", + .main_file = "055_unions.zig", .output = "Insect report! Ant alive is: true. Bee visited 15 flowers.", }, .{ - .main_file = "56_unions2.zig", + .main_file = "056_unions2.zig", .output = "Insect report! Ant alive is: true. Bee visited 16 flowers.", }, .{ - .main_file = "57_unions3.zig", + .main_file = "057_unions3.zig", + .output = "Insect report! Ant alive is: true. Bee visited 17 flowers.", + }, + .{ + .main_file = "057_unions3.zig", .output = "Insect report! Ant alive is: true. Bee visited 17 flowers.", }, }; @@ -548,8 +557,7 @@ const ZiglingStep = struct { zig_args.append(@tagName(builder.color)) catch unreachable; } - const zig_file = std.fs.path.join(builder.allocator, &[_][]const u8{ - if (self.use_healed) "patches/healed" else "exercises", self.exercise.main_file }) catch unreachable; + const zig_file = std.fs.path.join(builder.allocator, &[_][]const u8{ if (self.use_healed) "patches/healed" else "exercises", self.exercise.main_file }) catch unreachable; zig_args.append(builder.pathFromRoot(zig_file)) catch unreachable; zig_args.append("--cache-dir") catch unreachable; diff --git a/exercises/01_hello.zig b/exercises/001_hello.zig similarity index 100% rename from exercises/01_hello.zig rename to exercises/001_hello.zig diff --git a/exercises/02_std.zig b/exercises/002_std.zig similarity index 100% rename from exercises/02_std.zig rename to exercises/002_std.zig diff --git a/exercises/03_assignment.zig b/exercises/003_assignment.zig similarity index 100% rename from exercises/03_assignment.zig rename to exercises/003_assignment.zig diff --git a/exercises/04_arrays.zig b/exercises/004_arrays.zig similarity index 100% rename from exercises/04_arrays.zig rename to exercises/004_arrays.zig diff --git a/exercises/05_arrays2.zig b/exercises/005_arrays2.zig similarity index 100% rename from exercises/05_arrays2.zig rename to exercises/005_arrays2.zig diff --git a/exercises/06_strings.zig b/exercises/006_strings.zig similarity index 100% rename from exercises/06_strings.zig rename to exercises/006_strings.zig diff --git a/exercises/07_strings2.zig b/exercises/007_strings2.zig similarity index 100% rename from exercises/07_strings2.zig rename to exercises/007_strings2.zig diff --git a/exercises/08_quiz.zig b/exercises/008_quiz.zig similarity index 100% rename from exercises/08_quiz.zig rename to exercises/008_quiz.zig diff --git a/exercises/09_if.zig b/exercises/009_if.zig similarity index 100% rename from exercises/09_if.zig rename to exercises/009_if.zig diff --git a/exercises/10_if2.zig b/exercises/010_if2.zig similarity index 100% rename from exercises/10_if2.zig rename to exercises/010_if2.zig diff --git a/exercises/11_while.zig b/exercises/011_while.zig similarity index 100% rename from exercises/11_while.zig rename to exercises/011_while.zig diff --git a/exercises/12_while2.zig b/exercises/012_while2.zig similarity index 100% rename from exercises/12_while2.zig rename to exercises/012_while2.zig diff --git a/exercises/13_while3.zig b/exercises/013_while3.zig similarity index 100% rename from exercises/13_while3.zig rename to exercises/013_while3.zig diff --git a/exercises/14_while4.zig b/exercises/014_while4.zig similarity index 100% rename from exercises/14_while4.zig rename to exercises/014_while4.zig diff --git a/exercises/15_for.zig b/exercises/015_for.zig similarity index 100% rename from exercises/15_for.zig rename to exercises/015_for.zig diff --git a/exercises/16_for2.zig b/exercises/016_for2.zig similarity index 100% rename from exercises/16_for2.zig rename to exercises/016_for2.zig diff --git a/exercises/17_quiz2.zig b/exercises/017_quiz2.zig similarity index 100% rename from exercises/17_quiz2.zig rename to exercises/017_quiz2.zig diff --git a/exercises/18_functions.zig b/exercises/018_functions.zig similarity index 100% rename from exercises/18_functions.zig rename to exercises/018_functions.zig diff --git a/exercises/19_functions2.zig b/exercises/019_functions2.zig similarity index 100% rename from exercises/19_functions2.zig rename to exercises/019_functions2.zig diff --git a/exercises/20_quiz3.zig b/exercises/020_quiz3.zig similarity index 100% rename from exercises/20_quiz3.zig rename to exercises/020_quiz3.zig diff --git a/exercises/21_errors.zig b/exercises/021_errors.zig similarity index 100% rename from exercises/21_errors.zig rename to exercises/021_errors.zig diff --git a/exercises/22_errors2.zig b/exercises/022_errors2.zig similarity index 100% rename from exercises/22_errors2.zig rename to exercises/022_errors2.zig diff --git a/exercises/23_errors3.zig b/exercises/023_errors3.zig similarity index 100% rename from exercises/23_errors3.zig rename to exercises/023_errors3.zig diff --git a/exercises/24_errors4.zig b/exercises/024_errors4.zig similarity index 100% rename from exercises/24_errors4.zig rename to exercises/024_errors4.zig diff --git a/exercises/25_errors5.zig b/exercises/025_errors5.zig similarity index 100% rename from exercises/25_errors5.zig rename to exercises/025_errors5.zig diff --git a/exercises/26_hello2.zig b/exercises/026_hello2.zig similarity index 100% rename from exercises/26_hello2.zig rename to exercises/026_hello2.zig diff --git a/exercises/27_defer.zig b/exercises/027_defer.zig similarity index 100% rename from exercises/27_defer.zig rename to exercises/027_defer.zig diff --git a/exercises/28_defer2.zig b/exercises/028_defer2.zig similarity index 100% rename from exercises/28_defer2.zig rename to exercises/028_defer2.zig diff --git a/exercises/29_errdefer.zig b/exercises/029_errdefer.zig similarity index 100% rename from exercises/29_errdefer.zig rename to exercises/029_errdefer.zig diff --git a/exercises/30_switch.zig b/exercises/030_switch.zig similarity index 100% rename from exercises/30_switch.zig rename to exercises/030_switch.zig diff --git a/exercises/31_switch2.zig b/exercises/031_switch2.zig similarity index 100% rename from exercises/31_switch2.zig rename to exercises/031_switch2.zig diff --git a/exercises/32_unreachable.zig b/exercises/032_unreachable.zig similarity index 100% rename from exercises/32_unreachable.zig rename to exercises/032_unreachable.zig diff --git a/exercises/33_iferror.zig b/exercises/033_iferror.zig similarity index 100% rename from exercises/33_iferror.zig rename to exercises/033_iferror.zig diff --git a/exercises/34_quiz4.zig b/exercises/034_quiz4.zig similarity index 100% rename from exercises/34_quiz4.zig rename to exercises/034_quiz4.zig diff --git a/exercises/35_enums.zig b/exercises/035_enums.zig similarity index 100% rename from exercises/35_enums.zig rename to exercises/035_enums.zig diff --git a/exercises/36_enums2.zig b/exercises/036_enums2.zig similarity index 100% rename from exercises/36_enums2.zig rename to exercises/036_enums2.zig diff --git a/exercises/37_structs.zig b/exercises/037_structs.zig similarity index 100% rename from exercises/37_structs.zig rename to exercises/037_structs.zig diff --git a/exercises/38_structs2.zig b/exercises/038_structs2.zig similarity index 100% rename from exercises/38_structs2.zig rename to exercises/038_structs2.zig diff --git a/exercises/39_pointers.zig b/exercises/039_pointers.zig similarity index 100% rename from exercises/39_pointers.zig rename to exercises/039_pointers.zig diff --git a/exercises/40_pointers2.zig b/exercises/040_pointers2.zig similarity index 100% rename from exercises/40_pointers2.zig rename to exercises/040_pointers2.zig diff --git a/exercises/41_pointers3.zig b/exercises/041_pointers3.zig similarity index 100% rename from exercises/41_pointers3.zig rename to exercises/041_pointers3.zig diff --git a/exercises/42_pointers4.zig b/exercises/042_pointers4.zig similarity index 100% rename from exercises/42_pointers4.zig rename to exercises/042_pointers4.zig diff --git a/exercises/43_pointers5.zig b/exercises/043_pointers5.zig similarity index 100% rename from exercises/43_pointers5.zig rename to exercises/043_pointers5.zig diff --git a/exercises/44_quiz5.zig b/exercises/044_quiz5.zig similarity index 100% rename from exercises/44_quiz5.zig rename to exercises/044_quiz5.zig diff --git a/exercises/45_optionals.zig b/exercises/045_optionals.zig similarity index 100% rename from exercises/45_optionals.zig rename to exercises/045_optionals.zig diff --git a/exercises/46_optionals2.zig b/exercises/046_optionals2.zig similarity index 100% rename from exercises/46_optionals2.zig rename to exercises/046_optionals2.zig diff --git a/exercises/47_methods.zig b/exercises/047_methods.zig similarity index 100% rename from exercises/47_methods.zig rename to exercises/047_methods.zig diff --git a/exercises/48_methods2.zig b/exercises/048_methods2.zig similarity index 100% rename from exercises/48_methods2.zig rename to exercises/048_methods2.zig diff --git a/exercises/49_quiz6.zig b/exercises/049_quiz6.zig similarity index 100% rename from exercises/49_quiz6.zig rename to exercises/049_quiz6.zig diff --git a/exercises/50_no_value.zig b/exercises/050_no_value.zig similarity index 100% rename from exercises/50_no_value.zig rename to exercises/050_no_value.zig diff --git a/exercises/51_values.zig b/exercises/051_values.zig similarity index 100% rename from exercises/51_values.zig rename to exercises/051_values.zig diff --git a/exercises/52_slices.zig b/exercises/052_slices.zig similarity index 100% rename from exercises/52_slices.zig rename to exercises/052_slices.zig diff --git a/exercises/53_slices2.zig b/exercises/053_slices2.zig similarity index 100% rename from exercises/53_slices2.zig rename to exercises/053_slices2.zig diff --git a/exercises/54_manypointers.zig b/exercises/054_manypointers.zig similarity index 100% rename from exercises/54_manypointers.zig rename to exercises/054_manypointers.zig diff --git a/exercises/55_unions.zig b/exercises/055_unions.zig similarity index 100% rename from exercises/55_unions.zig rename to exercises/055_unions.zig diff --git a/exercises/56_unions2.zig b/exercises/056_unions2.zig similarity index 100% rename from exercises/56_unions2.zig rename to exercises/056_unions2.zig diff --git a/exercises/57_unions3.zig b/exercises/057_unions3.zig similarity index 100% rename from exercises/57_unions3.zig rename to exercises/057_unions3.zig diff --git a/patches/patches/01_hello.patch b/patches/patches/001_hello.patch similarity index 100% rename from patches/patches/01_hello.patch rename to patches/patches/001_hello.patch diff --git a/patches/patches/02_std.patch b/patches/patches/002_std.patch similarity index 100% rename from patches/patches/02_std.patch rename to patches/patches/002_std.patch diff --git a/patches/patches/03_assignment.patch b/patches/patches/003_assignment.patch similarity index 100% rename from patches/patches/03_assignment.patch rename to patches/patches/003_assignment.patch diff --git a/patches/patches/04_arrays.patch b/patches/patches/004_arrays.patch similarity index 100% rename from patches/patches/04_arrays.patch rename to patches/patches/004_arrays.patch diff --git a/patches/patches/05_arrays2.patch b/patches/patches/005_arrays2.patch similarity index 100% rename from patches/patches/05_arrays2.patch rename to patches/patches/005_arrays2.patch diff --git a/patches/patches/06_strings.patch b/patches/patches/006_strings.patch similarity index 100% rename from patches/patches/06_strings.patch rename to patches/patches/006_strings.patch diff --git a/patches/patches/07_strings2.patch b/patches/patches/007_strings2.patch similarity index 100% rename from patches/patches/07_strings2.patch rename to patches/patches/007_strings2.patch diff --git a/patches/patches/08_quiz.patch b/patches/patches/008_quiz.patch similarity index 100% rename from patches/patches/08_quiz.patch rename to patches/patches/008_quiz.patch diff --git a/patches/patches/09_if.patch b/patches/patches/009_if.patch similarity index 100% rename from patches/patches/09_if.patch rename to patches/patches/009_if.patch diff --git a/patches/patches/10_if2.patch b/patches/patches/010_if2.patch similarity index 100% rename from patches/patches/10_if2.patch rename to patches/patches/010_if2.patch diff --git a/patches/patches/11_while.patch b/patches/patches/011_while.patch similarity index 100% rename from patches/patches/11_while.patch rename to patches/patches/011_while.patch diff --git a/patches/patches/12_while2.patch b/patches/patches/012_while2.patch similarity index 100% rename from patches/patches/12_while2.patch rename to patches/patches/012_while2.patch diff --git a/patches/patches/13_while3.patch b/patches/patches/013_while3.patch similarity index 100% rename from patches/patches/13_while3.patch rename to patches/patches/013_while3.patch diff --git a/patches/patches/14_while4.patch b/patches/patches/014_while4.patch similarity index 100% rename from patches/patches/14_while4.patch rename to patches/patches/014_while4.patch diff --git a/patches/patches/15_for.patch b/patches/patches/015_for.patch similarity index 100% rename from patches/patches/15_for.patch rename to patches/patches/015_for.patch diff --git a/patches/patches/16_for2.patch b/patches/patches/016_for2.patch similarity index 100% rename from patches/patches/16_for2.patch rename to patches/patches/016_for2.patch diff --git a/patches/patches/17_quiz2.patch b/patches/patches/017_quiz2.patch similarity index 100% rename from patches/patches/17_quiz2.patch rename to patches/patches/017_quiz2.patch diff --git a/patches/patches/18_functions.patch b/patches/patches/018_functions.patch similarity index 100% rename from patches/patches/18_functions.patch rename to patches/patches/018_functions.patch diff --git a/patches/patches/19_functions2.patch b/patches/patches/019_functions2.patch similarity index 100% rename from patches/patches/19_functions2.patch rename to patches/patches/019_functions2.patch diff --git a/patches/patches/20_quiz3.patch b/patches/patches/020_quiz3.patch similarity index 100% rename from patches/patches/20_quiz3.patch rename to patches/patches/020_quiz3.patch diff --git a/patches/patches/21_errors.patch b/patches/patches/021_errors.patch similarity index 100% rename from patches/patches/21_errors.patch rename to patches/patches/021_errors.patch diff --git a/patches/patches/22_errors2.patch b/patches/patches/022_errors2.patch similarity index 100% rename from patches/patches/22_errors2.patch rename to patches/patches/022_errors2.patch diff --git a/patches/patches/23_errors3.patch b/patches/patches/023_errors3.patch similarity index 100% rename from patches/patches/23_errors3.patch rename to patches/patches/023_errors3.patch diff --git a/patches/patches/24_errors4.patch b/patches/patches/024_errors4.patch similarity index 100% rename from patches/patches/24_errors4.patch rename to patches/patches/024_errors4.patch diff --git a/patches/patches/25_errors5.patch b/patches/patches/025_errors5.patch similarity index 100% rename from patches/patches/25_errors5.patch rename to patches/patches/025_errors5.patch diff --git a/patches/patches/26_hello2.patch b/patches/patches/026_hello2.patch similarity index 100% rename from patches/patches/26_hello2.patch rename to patches/patches/026_hello2.patch diff --git a/patches/patches/27_defer.patch b/patches/patches/027_defer.patch similarity index 100% rename from patches/patches/27_defer.patch rename to patches/patches/027_defer.patch diff --git a/patches/patches/28_defer2.patch b/patches/patches/028_defer2.patch similarity index 100% rename from patches/patches/28_defer2.patch rename to patches/patches/028_defer2.patch diff --git a/patches/patches/29_errdefer.patch b/patches/patches/029_errdefer.patch similarity index 100% rename from patches/patches/29_errdefer.patch rename to patches/patches/029_errdefer.patch diff --git a/patches/patches/30_switch.patch b/patches/patches/030_switch.patch similarity index 100% rename from patches/patches/30_switch.patch rename to patches/patches/030_switch.patch diff --git a/patches/patches/31_switch2.patch b/patches/patches/031_switch2.patch similarity index 100% rename from patches/patches/31_switch2.patch rename to patches/patches/031_switch2.patch diff --git a/patches/patches/32_unreachable.patch b/patches/patches/032_unreachable.patch similarity index 100% rename from patches/patches/32_unreachable.patch rename to patches/patches/032_unreachable.patch diff --git a/patches/patches/33_iferror.patch b/patches/patches/033_iferror.patch similarity index 100% rename from patches/patches/33_iferror.patch rename to patches/patches/033_iferror.patch diff --git a/patches/patches/34_quiz4.patch b/patches/patches/034_quiz4.patch similarity index 100% rename from patches/patches/34_quiz4.patch rename to patches/patches/034_quiz4.patch diff --git a/patches/patches/35_enums.patch b/patches/patches/035_enums.patch similarity index 100% rename from patches/patches/35_enums.patch rename to patches/patches/035_enums.patch diff --git a/patches/patches/36_enums2.patch b/patches/patches/036_enums2.patch similarity index 100% rename from patches/patches/36_enums2.patch rename to patches/patches/036_enums2.patch diff --git a/patches/patches/37_structs.patch b/patches/patches/037_structs.patch similarity index 100% rename from patches/patches/37_structs.patch rename to patches/patches/037_structs.patch diff --git a/patches/patches/38_structs2.patch b/patches/patches/038_structs2.patch similarity index 100% rename from patches/patches/38_structs2.patch rename to patches/patches/038_structs2.patch diff --git a/patches/patches/39_pointers.patch b/patches/patches/039_pointers.patch similarity index 100% rename from patches/patches/39_pointers.patch rename to patches/patches/039_pointers.patch diff --git a/patches/patches/40_pointers2.patch b/patches/patches/040_pointers2.patch similarity index 100% rename from patches/patches/40_pointers2.patch rename to patches/patches/040_pointers2.patch diff --git a/patches/patches/41_pointers3.patch b/patches/patches/041_pointers3.patch similarity index 100% rename from patches/patches/41_pointers3.patch rename to patches/patches/041_pointers3.patch diff --git a/patches/patches/42_pointers4.patch b/patches/patches/042_pointers4.patch similarity index 100% rename from patches/patches/42_pointers4.patch rename to patches/patches/042_pointers4.patch diff --git a/patches/patches/43_pointers5.patch b/patches/patches/043_pointers5.patch similarity index 100% rename from patches/patches/43_pointers5.patch rename to patches/patches/043_pointers5.patch diff --git a/patches/patches/44_quiz5.patch b/patches/patches/044_quiz5.patch similarity index 100% rename from patches/patches/44_quiz5.patch rename to patches/patches/044_quiz5.patch diff --git a/patches/patches/45_optionals.patch b/patches/patches/045_optionals.patch similarity index 100% rename from patches/patches/45_optionals.patch rename to patches/patches/045_optionals.patch diff --git a/patches/patches/46_optionals2.patch b/patches/patches/046_optionals2.patch similarity index 100% rename from patches/patches/46_optionals2.patch rename to patches/patches/046_optionals2.patch diff --git a/patches/patches/47_methods.patch b/patches/patches/047_methods.patch similarity index 100% rename from patches/patches/47_methods.patch rename to patches/patches/047_methods.patch diff --git a/patches/patches/48_methods2.patch b/patches/patches/048_methods2.patch similarity index 100% rename from patches/patches/48_methods2.patch rename to patches/patches/048_methods2.patch diff --git a/patches/patches/49_quiz6.patch b/patches/patches/049_quiz6.patch similarity index 100% rename from patches/patches/49_quiz6.patch rename to patches/patches/049_quiz6.patch diff --git a/patches/patches/50_no_value.patch b/patches/patches/050_no_value.patch similarity index 100% rename from patches/patches/50_no_value.patch rename to patches/patches/050_no_value.patch diff --git a/patches/patches/51_values.patch b/patches/patches/051_values.patch similarity index 100% rename from patches/patches/51_values.patch rename to patches/patches/051_values.patch diff --git a/patches/patches/52_slices.patch b/patches/patches/052_slices.patch similarity index 100% rename from patches/patches/52_slices.patch rename to patches/patches/052_slices.patch diff --git a/patches/patches/53_slices2.patch b/patches/patches/053_slices2.patch similarity index 100% rename from patches/patches/53_slices2.patch rename to patches/patches/053_slices2.patch diff --git a/patches/patches/54_manypointers.patch b/patches/patches/054_manypointers.patch similarity index 100% rename from patches/patches/54_manypointers.patch rename to patches/patches/054_manypointers.patch diff --git a/patches/patches/55_unions.patch b/patches/patches/055_unions.patch similarity index 100% rename from patches/patches/55_unions.patch rename to patches/patches/055_unions.patch diff --git a/patches/patches/56_unions2.patch b/patches/patches/056_unions2.patch similarity index 100% rename from patches/patches/56_unions2.patch rename to patches/patches/056_unions2.patch diff --git a/patches/patches/57_unions3.patch b/patches/patches/057_unions3.patch similarity index 100% rename from patches/patches/57_unions3.patch rename to patches/patches/057_unions3.patch