Implement safe cracking logic and setup development environment

- Added a new `main.cpp` file with logic to parse dial rotations from a file and execute safe cracking based on the parsed data.
- Introduced a `DialRotation` struct to represent the direction and distance of dial rotations.
- Implemented `parseRotations` function to read and parse input from a specified file, returning a vector of `DialRotation` or an error message.
- Created `executeSafeCrack` function to process the dial rotations and print the current state of the dial.
- Added `.clang-format` and `.clang-tidy` configuration files for code formatting and linting.
- Set up a Dockerfile for a development container with necessary tools and dependencies.
- Configured VS Code settings and tasks for building, formatting, and running clang-tidy.
- Added a script to run clang-tidy on the source files, ensuring code quality.
This commit is contained in:
Feiko Wielsma 2025-12-01 21:01:09 +00:00
parent c093e8a4bf
commit 38eca3b747
11 changed files with 4654 additions and 3 deletions

23
.devcontainer/Dockerfile Normal file
View file

@ -0,0 +1,23 @@
FROM xianpengshen/clang-tools:21
# Install development tools (cmake, ninja, build essentials)
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
cmake \
ninja-build \
build-essential \
git \
python3 \
python3-pip \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Create workspace folder (VS Code devcontainer convention)
ARG WORKSPACE_FOLDER=/workspaces/aoc25
RUN mkdir -p ${WORKSPACE_FOLDER} && chown -R root:root ${WORKSPACE_FOLDER}
WORKDIR ${WORKSPACE_FOLDER}
ENV SHELL=/bin/bash
CMD ["bash"]