Skip to content

Commit

Permalink
feat: Prepare project for other years
Browse files Browse the repository at this point in the history
  • Loading branch information
cdalvaro committed Dec 17, 2023
1 parent d0f4750 commit 8bf5670
Show file tree
Hide file tree
Showing 26 changed files with 351 additions and 334 deletions.
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
<a href="https://www.ruby-lang.org"><img src="https://s3.cdalvaro.io/github.com/cdalvaro/advent-of-code-2023/RubyLang.png" alt="Ruby" width="64px" margin="5px" align="right"/></a>

# Advent of Code 2023
# Advent of Code

This repo contains my solutions to the [Advent of Code 2023](https://adventofcode.com/2023) challenges, written in the [Ruby](https://www.ruby-lang.org) programming language.
This repo contains my solutions to the [Advent of Code](https://adventofcode.com) challenges, written in
the [Ruby](https://www.ruby-lang.org) programming language.

The project is compose of two main parts:

Expand All @@ -20,6 +21,8 @@ bundle exec rake test

## Puzzles

### 2023

| Day | Solution | Rank |
|------------------:|:----------------------------------------------:|:-----:|
| [1️⃣][day01_link] | [`lib/puzzles/day01.rb`](lib/puzzles/day01.rb) | ⭐🌟✴️ |
Expand Down
2 changes: 1 addition & 1 deletion lib/puzzles/day01.rb → lib/puzzles/2023/day01.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

module AdventOfCode
module Puzzles
module Puzzles2023
##
# Advent of Code 2023 - Day 1
# https://adventofcode.com/2023/day/1
Expand Down
2 changes: 1 addition & 1 deletion lib/puzzles/day02.rb → lib/puzzles/2023/day02.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

module AdventOfCode
module Puzzles
module Puzzles2023
##
# Advent of Code 2023 - Day 2
# https://adventofcode.com/2023/day/2
Expand Down
2 changes: 1 addition & 1 deletion lib/puzzles/day03.rb → lib/puzzles/2023/day03.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

module AdventOfCode
module Puzzles
module Puzzles2023
##
# Advent of Code 2023 - Day 3
# https://adventofcode.com/2023/day/3
Expand Down
5 changes: 1 addition & 4 deletions sig/puzzles/day01.rbs → sig/puzzles/2023/day01.rbs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
module AdventOfCode
module Puzzles
module Puzzles2023
module Day01

class Part1

@calibration_values: [Integer]

attr_reader file_contents: [String]
Expand All @@ -20,7 +18,6 @@ module AdventOfCode
end

class Part2

TRANSLATIONS: { String: Integer }

def find_first_number: (String) -> Integer
Expand Down
12 changes: 3 additions & 9 deletions sig/puzzles/day02.rbs → sig/puzzles/2023/day02.rbs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
module AdventOfCode
module Puzzles
module Puzzles2023
module Day02

class Set

@power: Integer

attr_reader blue: Integer
Expand All @@ -14,15 +12,13 @@ module AdventOfCode
end

class Game

attr_reader id: Integer
attr_reader sets: [Set]

def valid?: (Integer, Integer, Integer) -> bool
end

class Part1

attr_reader games: [Game]

def answer: (Integer, Integer, Integer) -> Integer
Expand All @@ -37,16 +33,14 @@ module AdventOfCode
end

class Part2

@minimum_valid_sets: {Game: Set}
@minimum_valid_sets: { Game: Set }

def answer: () -> Integer

def minimum_valid_sets: () -> {Game: Set}
def minimum_valid_sets: () -> { Game: Set }

def minimum_valid_set_for: (Game) -> Set
end

end
end
end
19 changes: 9 additions & 10 deletions sig/puzzles/day03.rbs → sig/puzzles/2023/day03.rbs
Original file line number Diff line number Diff line change
@@ -1,38 +1,37 @@
module AdventOfCode
module Puzzles
module Puzzles2023
module Day03

class Gear
@ratio: Integer

attr_reader symbol: String
attr_reader index: String
attr_reader numbers: [Integer]

@ratio: Integer

def ratio: () -> Integer
end

class Part1
@part_numbers: [Integer]

attr_reader numbers: [{Integer: String}]
attr_reader symbols: [{Integer: Integer}]
attr_reader numbers: [{ Integer: String }]
attr_reader symbols: [{ Integer: Integer }]

def adjacent_rows_range: (Integer, Integer) -> Range[Integer]

def adjacent_rows_symbols: ([[Integer]], Integer) -> [Integer]

def answer: () -> Integer

def find_elements_in_line: (String, Regexp | String) -> {Integer: String}
def find_elements_in_line: (String, Regexp | String) -> { Integer: String }

def extract_numbers: ([String]) -> [{Integer: String}]
def extract_numbers: ([String]) -> [{ Integer: String }]

def extract_symbols: ([String]) -> [{Integer: String}]
def extract_symbols: ([String]) -> [{ Integer: String }]

def part_numbers: () -> [Integer]

def select_numbers: ([{Integer: String}]) -> [Integer]
def select_numbers: ([{ Integer: String }]) -> [Integer]
end

class Part2
Expand Down
31 changes: 31 additions & 0 deletions sig/test/puzzles/2023/day01_test.rbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
module AdventOfCode
module Test
module Puzzles2023
module Day01
class Part1Test
def setup: -> untyped

def teardown: -> untyped

def test_answer_real_set: -> untyped

def test_answer_test_set: -> untyped

def test_calibration_values_test_set: -> untyped
end

class Part2Test
def setup: -> untyped

def teardown: -> untyped

def test_answer_real_set: -> untyped

def test_answer_test_set: -> untyped

def test_calibration_values_test_set: -> untyped
end
end
end
end
end
31 changes: 31 additions & 0 deletions sig/test/puzzles/2023/day02_test.rbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
module AdventOfCode
module Test
module Puzzles2023
module Day02
class Part1Test
def setup: -> untyped

def teardown: -> untyped

def test_answer_input_set: -> untyped

def test_answer_test_data_set: -> untyped

def test_valid_games_test_data_set: -> untyped
end

class Part2Test
def setup: -> untyped

def teardown: -> untyped

def test_answer_input_set: -> untyped

def test_answer_test_data_set: -> untyped

def test_valid_games_test_data_set: -> untyped
end
end
end
end
end
31 changes: 31 additions & 0 deletions sig/test/puzzles/2023/day03_test.rbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
module AdventOfCode
module Test
module Puzzles2023
module Day03
class Part1Test
def setup: -> untyped

def teardown: -> untyped

def test_answer_input_set: -> untyped

def test_answer_test_data_set: -> untyped

def test_part_numbers_test_set: -> untyped
end

class Part2Test
def setup: -> untyped

def teardown: -> untyped

def test_answer_input_set: -> untyped

def test_answer_test_data_set: -> untyped

def test_gears_test_set: -> untyped
end
end
end
end
end
27 changes: 0 additions & 27 deletions sig/test/puzzles/day01_test.rbs

This file was deleted.

27 changes: 0 additions & 27 deletions sig/test/puzzles/day02_test.rbs

This file was deleted.

27 changes: 0 additions & 27 deletions sig/test/puzzles/day03_test.rbs

This file was deleted.

Loading

0 comments on commit 8bf5670

Please sign in to comment.