puzzles

package
v0.11.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 6, 2021 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package puzzles declares common interface for puzzle solutions and functionality for register and run them.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrInvalidPzzlName means that such puzzle not exist.
	ErrInvalidPzzlName = errors.New("invalid puzzle name")
	// ErrInvalidYear means that such year not exist.
	ErrInvalidYear = errors.New("invalid year")
)
View Source
var ErrNotImplemented = errors.New("not implemented")

ErrNotImplemented signal that puzzle in not implemented yet.

Functions

func DaysByYear added in v0.11.0

func DaysByYear(year string) []string

DaysByYear returns a sorted list of the days of the registered puzzle solvers for passed year.

func GetYears

func GetYears() []string

GetYears returns list of available years for solvers.

func MakeName

func MakeName(year, puzzle string) (string, error)

MakeName builds puzzle name according to year and puzzle passed.

func Register

func Register(solver Solver)

Register makes a puzzle solver available by the provided name. If Register is called twice with the same name or if solver is nil, it panics.

func UnregisterAllSolvers

func UnregisterAllSolvers(tb testing.TB)

UnregisterAllSolvers cleans up registered solvers. Use for testing only.

Types

type Day added in v0.11.0

type Day int

Day presents here for purpose of documentation.

const (
	Day01 Day // day01
	Day02     // day02
	Day03     // day03
	Day04     // day04
	Day05     // day05
	Day06     // day06
	Day07     // day07
	Day08     // day08
	Day09     // day09
	Day10     // day10
	Day11     // day11
	Day12     // day12
	Day13     // day13
	Day14     // day14
	Day15     // day15
	Day16     // day16
	Day17     // day17
	Day18     // day18
	Day19     // day19
	Day20     // day20
	Day21     // day21
	Day22     // day22
	Day23     // day23
	Day24     // day24
	Day25     // day25

)

func (Day) String added in v0.11.0

func (i Day) String() string

type Result

type Result struct {
	Year  string
	Name  string
	Part1 string
	Part2 string
}

Result represents puzzle solution result.

func Run

func Run(solver Solver, input io.Reader) (Result, error)

Run uses solver of puzzle and path to input.

func (Result) String added in v0.9.0

func (r Result) String() string

type Solver

type Solver interface {
	Part1(input io.Reader) (string, error)
	Part2(input io.Reader) (string, error)
	Day() string
	Year() string
}

Solver represents solutions for puzzles methods.

func GetSolver

func GetSolver(year, day string) (Solver, error)

GetSolver returns registered solver by passed puzzle day.

type Year added in v0.11.0

type Year int

Year presents here for purpose of documentation.

const (
	Year2015 Year // 2015
	Year2016      // 2016
	Year2017      // 2017
	Year2018      // 2018
	Year2019      // 2019
	Year2020      // 2020

)

func (Year) String added in v0.11.0

func (i Year) String() string

Directories

Path Synopsis
Package input provides access to embedded puzzles input files.
Package input provides access to embedded puzzles input files.
Package solutions registers solutions of puzzles.
Package solutions registers solutions of puzzles.
2015/day01
Package day01 contains solution for https://adventofcode.com/2015/day/1 puzzle.
Package day01 contains solution for https://adventofcode.com/2015/day/1 puzzle.
2016/day01
Package day01 contains solution for https://adventofcode.com/2016/day/1 puzzle.
Package day01 contains solution for https://adventofcode.com/2016/day/1 puzzle.
2017/day01
Package day01 contains solution for https://adventofcode.com/2017/day/1 puzzle.
Package day01 contains solution for https://adventofcode.com/2017/day/1 puzzle.
2018/day01
Package day01 contains solution for https://adventofcode.com/2018/day/1 puzzle.
Package day01 contains solution for https://adventofcode.com/2018/day/1 puzzle.
2019/day01
Package day01 contains solution for https://adventofcode.com/2019/day/1 puzzle.
Package day01 contains solution for https://adventofcode.com/2019/day/1 puzzle.
2019/day02
Package day02 contains solution for https://adventofcode.com/2019/day/2 puzzle.
Package day02 contains solution for https://adventofcode.com/2019/day/2 puzzle.
2019/day03
Package day03 contains solution for https://adventofcode.com/2019/day/3 puzzle.
Package day03 contains solution for https://adventofcode.com/2019/day/3 puzzle.
2019/day04
Package day04 contains solution for https://adventofcode.com/2019/day/4 puzzle.
Package day04 contains solution for https://adventofcode.com/2019/day/4 puzzle.
2020/day01
Package day01 contains solution for https://adventofcode.com/2020/day/1 puzzle.
Package day01 contains solution for https://adventofcode.com/2020/day/1 puzzle.
2020/day02
Package day02 contains solution for https://adventofcode.com/2020/day/2 puzzle.
Package day02 contains solution for https://adventofcode.com/2020/day/2 puzzle.
utils
intcomputer
Package intcomputer provides functionality for Intcode programs calculation Intcode programs are given as a list of integers; these values are used as the initial state for the computer's memory.
Package intcomputer provides functionality for Intcode programs calculation Intcode programs are given as a list of integers; these values are used as the initial state for the computer's memory.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL