Normalized exercise output, answers (#41)

1. All exercises should print a trailing \n
2. The build script should always show you _exactly_ what it's looking
   for when you get it wrong. Therefore, .output should be set to the
   exact expected output.
This commit is contained in:
Dave Gauer 2021-04-04 16:23:27 -04:00
parent 8bb916d7de
commit cc01013921
8 changed files with 17 additions and 16 deletions

View file

@ -73,12 +73,12 @@ const exercises = [_]Exercise{
},
.{
.main_file = "007_strings2.zig",
.output = "Ziggy",
.output = "Ziggy played guitar\nJamming good with Andrew Kelley\nAnd the Spiders from Mars",
.hint = "Please fix the lyrics!",
},
.{
.main_file = "008_quiz.zig",
.output = "Program in Zig",
.output = "Program in Zig!",
.hint = "See if you can fix the program!",
},
.{
@ -87,16 +87,16 @@ const exercises = [_]Exercise{
},
.{
.main_file = "010_if2.zig",
.output = "price is $17",
.output = "With the discount, the price is $17.",
},
.{
.main_file = "011_while.zig",
.output = "n=1024",
.output = "2 4 8 16 32 64 128 256 512 n=1024",
.hint = "You probably want a 'less than' condition.",
},
.{
.main_file = "012_while2.zig",
.output = "n=1024",
.output = "2 4 8 16 32 64 128 256 512 n=1024",
.hint = "It might help to look back at the previous exercise.",
},
.{
@ -117,12 +117,12 @@ const exercises = [_]Exercise{
},
.{
.main_file = "017_quiz2.zig",
.output = "8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16",
.output = "1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16,",
.hint = "This is a famous game!",
},
.{
.main_file = "018_functions.zig",
.output = "Question: 42",
.output = "Answer to the Ultimate Question: 42",
.hint = "Can you help write the function?",
},
.{
@ -158,7 +158,7 @@ const exercises = [_]Exercise{
},
.{
.main_file = "026_hello2.zig",
.output = "Hello world",
.output = "Hello world!",
.hint = "Try using a try!",
.check_stdout = true,
},
@ -204,7 +204,7 @@ const exercises = [_]Exercise{
},
.{
.main_file = "036_enums2.zig",
.output = "#0000ff",
.output = "<p>\n <span style=\"color: #ff0000\">Red</span>\n <span style=\"color: #00ff00\">Green</span>\n <span style=\"color: #0000ff\">Blue</span>\n</p>",
.hint = "I'm feeling blue about this.",
},
.{
@ -213,7 +213,7 @@ const exercises = [_]Exercise{
},
.{
.main_file = "038_structs2.zig",
.output = "Character 2 - G:10 H:100 XP:20",
.output = "Character 1 - G:20 H:100 XP:10\nCharacter 2 - G:10 H:100 XP:20",
},
.{
.main_file = "039_pointers.zig",

View file

@ -25,5 +25,5 @@ pub fn main() void {
// an error. Can you set the type correctly above?
my_number = MyNumberError.TooSmall;
std.debug.print("I compiled!", .{});
std.debug.print("I compiled!\n", .{});
}

View file

@ -14,7 +14,7 @@ pub fn main() void {
var a: u32 = addTwenty(44) catch 22;
var b: u32 = addTwenty(4) ??? 22;
std.debug.print("a={}, b={}", .{ a, b });
std.debug.print("a={}, b={}\n", .{ a, b });
}
// Please provide the return type from this function.

View file

@ -25,7 +25,7 @@ pub fn main() void {
var b: u32 = makeJustRight(14) catch 0;
var c: u32 = makeJustRight(4) catch 0;
std.debug.print("a={}, b={}, c={}", .{ a, b, c });
std.debug.print("a={}, b={}, c={}\n", .{ a, b, c });
}
// In this silly example we've split the responsibility of making

View file

@ -19,7 +19,7 @@ pub fn main() void {
var b: u32 = addFive(14) catch 0;
var c: u32 = addFive(4) catch 0;
std.debug.print("a={}, b={}, c={}", .{ a, b, c });
std.debug.print("a={}, b={}, c={}\n", .{ a, b, c });
}
fn addFive(n: u32) MyNumberError!u32 {

View file

@ -53,6 +53,7 @@ pub fn main() void {
\\ <span style="color: #{x:0>6}">Green</span>
\\ <span style="color: #{}">Blue</span>
\\</p>
\\
, .{
@enumToInt(Color.red),
@enumToInt(Color.green),

View file

@ -52,7 +52,7 @@ pub fn main() void {
// Ouch! Glorp takes a punch!
glorp_the_wise.health -= 10;
std.debug.print("Your wizard has {} health and {} gold.", .{
std.debug.print("Your wizard has {} health and {} gold.\n", .{
glorp_the_wise.health,
glorp_the_wise.gold,
});

View file

@ -73,7 +73,7 @@ fn printCharacter(c: *Character) void {
.warrior => "Warrior",
};
std.debug.print("{s} (G:{} H:{} XP:{})", .{
std.debug.print("{s} (G:{} H:{} XP:{})\n", .{
class_name,
c.gold,
c.health,