1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//! # Day 13: Care Package
//!
//! As you ponder the solitude of space and the ever-increasing three-hour roundtrip for messages
//! between you and Earth, you notice that the Space Mail Indicator Light is blinking. To help keep
//! you sane, the Elves have sent you a care package.
//!
//! It's a new game for the ship's [arcade cabinet]! Unfortunately, the arcade is **all the way** on
//! the other end of the ship. Surely, it won't be hard to build your own - the care package even
//! comes with schematics.
//!
//! The arcade cabinet runs [Intcode] software like the game the Elves sent (your puzzle input). It
//! has a primitive screen capable of drawing square **tiles** on a grid. The software draws tiles
//! to the screen with output instructions: every three output instructions specify the `x` position
//! (distance from the left), `y` position (distance from the top), and `tile id`. The `tile id` is
//! interpreted as follows:
//!
//! - `0` is an **empty** tile. No game object appears in this tile.
//! - `1` is a **wall** tile. Walls are indestructible barriers.
//! - `2` is a **block** tile. Blocks can be broken by the ball.
//! - `3` is a **horizontal paddle** tile. The paddle is indestructible.
//! - `4` is a **ball** tile. The ball moves diagonally and bounces off objects.
//!
//! For example, a sequence of output values like `1,2,3,6,5,4` would draw a **horizontal paddle**
//! tile (`1` tile from the left and `2` tiles from the top) and a **ball** tile (`6` tiles from the
//! left and `5` tiles from the top).
//!
//! Start the game. **How many block tiles are on the screen when the game exits?**
//!
//! [arcade cabinet]: https://en.wikipedia.org/wiki/Arcade_cabinet
//! [Intcode]: super::d09

use anyhow::Result;

pub const INPUT: &str = include_str!("d13.txt");

pub fn solve_part_one(input: &str) -> Result<i64> {
    Ok(0)
}

pub fn solve_part_two(input: &str) -> Result<i64> {
    Ok(0)
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn part_one() {}

    #[test]
    fn part_two() {}
}