From 26c3e48b3e4a131cc727ed9deb46d8316c536326 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 6 Dec 2020 16:35:38 -0600 Subject: [PATCH] updated to Onyx package changes --- day1.onyx | 18 +++++++++++------- day2.onyx | 17 ++++++++--------- day3.onyx | 11 +++++------ day4.onyx | 12 +++++------- day5.onyx | 15 +++++++-------- day6.onyx | 9 ++++----- out.wasm | Bin 8094 -> 8060 bytes 7 files changed, 40 insertions(+), 42 deletions(-) diff --git a/day1.onyx b/day1.onyx index e02d40c..8c7f56f 100644 --- a/day1.onyx +++ b/day1.onyx @@ -3,24 +3,28 @@ package main #include_file "core/std/wasi" use package core -use package core_file main :: proc (args: [] cstring) { - contents := file_get_contents("input/day1.txt"); + contents := file.get_contents("input/day1.txt"); contents_orig := contents; defer cfree(contents_orig.data); nums: [..] u32; - array_init(^nums, 128); - defer array_free(^nums); + array.init(^nums, 128); + defer array.free(^nums); while num := 1; num > 0 { // This sets num to be 0 if there is no number - string_read_u32(^contents, ^num); - if num != 0 do array_push(^nums, num); + str.read_u32(^contents, ^num); + if num != 0 do array.push(^nums, num); } for i: nums do for j: nums do for k: nums { - if j + i + k == 2020 do printf("Answer: %i\n", i * j * k); + if j + i + k == 2020 { + printf("Answer: %i\n", i * j * k); + + // Break out of all of the loops + break break break; + } } } diff --git a/day2.onyx b/day2.onyx index 75e24ca..daa3e80 100644 --- a/day2.onyx +++ b/day2.onyx @@ -3,10 +3,9 @@ package main #include_file "core/std/wasi" use package core -use package core_file main :: proc (args: [] cstring) { - contents := file_get_contents("input/day2.txt"); + contents := file.get_contents("input/day2.txt"); contents_orig := contents; defer cfree(contents_orig.data); @@ -17,14 +16,14 @@ main :: proc (args: [] cstring) { pw : string = ""; while true { - string_read_u32(^contents, ^lo); + str.read_u32(^contents, ^lo); if lo == 0 do break; - string_discard_chars(^contents); - string_read_u32(^contents, ^hi); - string_discard_chars(^contents); - string_read_char(^contents, ^ch); - string_discard_chars(^contents, 2); - string_read_line(^contents, ^pw); + str.discard_chars(^contents); + str.read_u32(^contents, ^hi); + str.discard_chars(^contents); + str.read_char(^contents, ^ch); + str.discard_chars(^contents, 2); + str.read_line(^contents, ^pw); // Part 1 // count := 0; diff --git a/day3.onyx b/day3.onyx index db07849..68418c8 100644 --- a/day3.onyx +++ b/day3.onyx @@ -1,7 +1,6 @@ #include_file "core/std/wasi" use package core -use package core_file Point :: struct { x : i32; @@ -20,25 +19,25 @@ line_interp_at :: proc (use li: LineInterp, t: i32) -> Point { } main :: proc (args: [] cstring) { - contents := file_get_contents("input/day3.txt"); + contents := file.get_contents("input/day3.txt"); contents_orig := contents; defer cfree(contents_orig.data); forest: [..] u8; - array_init(^forest, 1024); - defer array_free(^forest); + array.init(^forest, 1024); + defer array.free(^forest); width := 0; height := 0; while true { line: string = ""; - string_read_line(^contents, ^line); + str.read_line(^contents, ^line); if line.count == 0 do break; width = line.count; height = height + 1; - for ch: line do array_push(^forest, ch); + for ch: line do array.push(^forest, ch); } lis : [5] LineInterp; diff --git a/day4.onyx b/day4.onyx index 415f321..ba958eb 100644 --- a/day4.onyx +++ b/day4.onyx @@ -1,7 +1,6 @@ #include_file "core/std/wasi" use package core -use package core_file // Returns the number of fields process_passport :: proc (contents: ^string) -> u32 { @@ -9,18 +8,17 @@ process_passport :: proc (contents: ^string) -> u32 { while true { line: string; - string_read_line(contents, ^line); + str.read_line(contents, ^line); if line.count == 0 do break; - fields := string_split(line, #char " "); + fields := str.split(line, #char " "); defer cfree(fields.data); for field: fields { - data := string_split(field, #char ":"); + data := str.split(field, #char ":"); defer cfree(data.data); - printf("Field: %s\n", data[0]); - if !string_equal(data[0], "cid") { + if !str.equal(data[0], "cid") { field_count += 1; } } @@ -32,7 +30,7 @@ process_passport :: proc (contents: ^string) -> u32 { // This does not include part 2 because it is gross and // not worth the effort to implement it. main :: proc (args: [] cstring) { - contents := file_get_contents("input/day4.txt"); + contents := file.get_contents("input/day4.txt"); contents_data := contents.data; defer cfree(contents_data); diff --git a/day5.onyx b/day5.onyx index 8d962ca..21a913b 100644 --- a/day5.onyx +++ b/day5.onyx @@ -1,22 +1,21 @@ #include_file "core/std/wasi" use package core -use package core_file main :: proc (args: [] cstring) { - contents := file_get_contents("input/day5.txt"); + contents := file.get_contents("input/day5.txt"); contents_data := contents.data; defer cfree(contents_data); vals: [..] u32; - array_init(^vals); - defer array_free(^vals); + array.init(^vals); + defer array.free(^vals); max_val := 0; while true { line: string; - string_read_line(^contents, ^line); + str.read_line(^contents, ^line); if line.count == 0 do break; val := 0; @@ -25,12 +24,12 @@ main :: proc (args: [] cstring) { if ch == #char "B" || ch == #char "R" do val += 1; } - max_val = max_poly(max_val, val); - array_push(^vals, val); + max_val = math.max(max_val, val); + array.push(^vals, val); } missing := 0; - array_sort(^vals, cmp_asc); + array.sort(^vals, cmp_asc); for i: 0 .. vals.count - 1 { if vals[i + 1] - vals[i] != 1 do missing = vals[i] + 1; } diff --git a/day6.onyx b/day6.onyx index 3d374bf..cf50b1f 100644 --- a/day6.onyx +++ b/day6.onyx @@ -1,7 +1,6 @@ #include_file "core/std/wasi" use package core -use package core_file part_1 :: proc (contents: ^string) -> u32 { chars : [26] u8; @@ -9,7 +8,7 @@ part_1 :: proc (contents: ^string) -> u32 { while true { line: string; - string_read_line(contents, ^line); + str.read_line(contents, ^line); if line.count == 0 do break; for ch: line do chars[~~ch - cast(u32) #char "a"] = ~~1; @@ -28,7 +27,7 @@ part_2 :: proc (contents: ^string) -> u32 { person_count := 0; while true { line: string; - string_read_line(contents, ^line); + str.read_line(contents, ^line); if line.count == 0 do break; person_count += 1; @@ -42,7 +41,7 @@ part_2 :: proc (contents: ^string) -> u32 { } main :: proc (args: [] cstring) { - contents := file_get_contents("input/day6.txt"); + contents := file.get_contents("input/day6.txt"); contents_data := contents.data; defer cfree(contents_data); @@ -50,7 +49,7 @@ main :: proc (args: [] cstring) { while true { if contents.count == 0 do break; - unique := part_2(^contents); + unique := part_1(^contents); unique_sum += unique; } diff --git a/out.wasm b/out.wasm index 0532d5dfe81d9102e252eb56b27b8d6aab199df7..8e103011ab31e5fd660323ff49c99e7b17d82039 100644 GIT binary patch delta 2156 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