#aoc #puzzle #advent #string #letter #convert #advent-of-gcode

advent-of-code-ocr

Small crate to help convert AoC text screens to strings

2 releases

0.1.1 Dec 10, 2022
0.1.0 Dec 10, 2022

#36 in #aoc

MIT license

10KB
107 lines

OCR for Advent of Code puzzles

Crate to convert Advent of Code from ASCII letters to characters. This is required for several of the puzzle days through the years, including: 2016/09, 2019/08, 2019/11, 2021/13, and 2022/10.

This has been made to help automate parsing of those puzzles for my own AoC solutions, but are shared for others interest.

Installation

cargo install advent-of-code-ocr

Usage

The main function to parse a screen from AoC is the parse_string_to_letters.

use advent_of_code_ocr::parse_string_to_letters;

// Input is:
// ####.###....##.###..###..#..#..##..#..#.
// #....#..#....#.#..#.#..#.#.#..#..#.#..#.
// ###..#..#....#.###..#..#.##...#..#.####.
// #....###.....#.#..#.###..#.#..####.#..#.
// #....#....#..#.#..#.#.#..#.#..#..#.#..#.
// ####.#.....##..###..#..#.#..#.#..#.#..#.
let input = "####.###....##.###..###..#..#..##..#..#.\n#....#..#....#.#..#.#..#.#.#..#..#.#..#.\n###..#..#....#.###..#..#.##...#..#.####.\n#....###.....#.#..#.###..#.#..####.#..#.\n#....#....#..#.#..#.#.#..#.#..#..#.#..#.\n####.#.....##..###..#..#.#..#.#..#.#..#.";

assert_eq!(parse_string_to_letters(input), "EPJBRKAH");

Two other functions are exposed by this crate:

  • parse_letter which tries to convert a single AoC character to a Option<char>
  • split_screen which splits a full AoC screen to individual AoC characters.

Dependencies

~1–1.5MB
~31K SLoC