Skip to content

This project has been created with the main goal to provide a easy-to-use development platform to solve Advent of code puzzles in C++..

License

Notifications You must be signed in to change notification settings

Hekkfern/advent-of-code

Repository files navigation

Contributors Forks Stargazers Issues MIT License


Logo

Advent Of Code C++ Challenge

Advent Of Code solutions made in C++ language
Discuss · Report Bug

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. FAQ
  5. Roadmap
  6. Contributing
  7. License
  8. Contact

About The Project

This project has been created with the main goal to provide a easy-to-use development platform to solve Advent of code puzzles in C++.

Features:

  • C++ 20 standard
  • Parsing of the input files, so you can use your own data to solve the puzzles.
  • CMake-based project: feel free to split your logic into several files and classes as you wish.
  • Fast compilation with ccache
  • Use of native CPU instructions to minimize the execution times.
  • Quality tools: clang-tidy, cppcheck, sanitizers, compiler warnings, ...
  • vcpkg already integrated: import and use any C++ library very easily from the vcpkg catalog.
  • CI/CD multi-platform pipelines to validate that everything works as it should in every platform available.
  • Unit-testing with Catch2 library: create unit tests to validate the example inputs, or to validate that your future changes don't break your code.
  • Multi-platform: designed to be usable in Windows, Linux and MacOs.
  • Dockerization: if you don't want to pollute your computer with all the required development tools, there is a Docker image available to start developing in a matter of seconds.

(back to top)

Tested on:

Platform OS Generator Cmake version Compiler
Windows Windows 10 VIsual Studio 17 X.X.X MSVC v143
Linux Ubuntu 22.04 Ninja X.X.X GCC X.X.X
Linux Manjaro 22 Ninja X.X.X GCC X.X.X
Apple macOS Monterey 12.6.1 (Intel processor) Ninja 3.25.1 AppleClang 13.1.6.13160021

Getting Started

This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.

Prerequisites

First read SETUP_DEV_ENVIRONMENT.md page to install the necessary tools in your computer to be able to use this project.

Installation

Clone the repository and all its submodules:

git clone --recursive https://github.com/Hekkfern/advent-of-code.git

(back to top)

Usage

How to use

Read HOW_TO_USE.md page.

How to add a new Advent of Code puzzle

Read HOW_TO_ADD_NEW_PUZZLE.md page.

(back to top)

In-deep explanation of how this framework/project works

If you are curious to know how this project has been designed and build, it is suggested to read HOW_THE_FRAMEWORK_WORKS.md page.

FAQ

Read FAQ.md page.

(back to top)

Roadmap

All the pending tasks (and their status) are shown in @Hekkfern's pending tasks board.

See the open issues for a list of proposed features (and known issues).

(back to top)

Contributing

Read CONTRIBUTING.md page.

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

If you want to suggest anything or discuss some ideas about this project, feel free to open a topic in Discussions

(back to top)

About

This project has been created with the main goal to provide a easy-to-use development platform to solve Advent of code puzzles in C++..

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published