programming-challenges

Programming exercises and challenges to improve your algorithmic logic.

CONTRIBUTING Licence MIT Contributor Covenant
CLI Challenges Conventional Commits
Gitpod ready-to-code

programming-challenges Logo

## 📜 About **programming-challenges** brings programming exercises and challenges to improve your algorithmic logic. Each challenge has its **solutions**, its **instructions** and **input/output examples** so you can try to solve them on your own. See [challenges](./challenges) folder. [🧠 Programming Challenges - Blog Post](https://theoludwig.fr/blog/programming-challenges/). ### ✅ Programming languages available - [C/C++ (gcc)](https://gcc.gnu.org/) - [C# (Mono)](https://www.mono-project.com/) - [Dart](https://dart.dev/) - [Java (OpenJDK)](https://openjdk.java.net/) - [JavaScript/TypeScript (Node.js)](https://nodejs.org/) - [Python (PyPy)](https://www.pypy.org/) - [Rust](https://www.rust-lang.org/) ## 🚀 Getting Started ### ☁️ Try with a Single-Click Gitpod will automatically setup an environment for you. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/theoludwig/programming-challenges) ### Locally #### Prerequisites - [Node.js](https://nodejs.org/) >= 20.0.0 - [npm](https://npmjs.com/) >= 10.0.0 - [Docker](https://www.docker.com/) #### Installation ```sh # Clone the repository git clone git@github.com:theoludwig/programming-challenges.git # Go to the project root cd programming-challenges # Install dependencies npm clean-install # Build the Command Line Interface (CLI) npm run build # Install the `programming-challenges` Command Line Interface (CLI) npm install --global ``` ### Usage ```sh # Discover all the commands availables programming-challenges --help # Generate a new challenge programming-challenges generate challenge --github-user="YourGitHubName" --challenge="hello-world" # Generate a new solution programming-challenges generate solution --github-user="YourGitHubName" --challenge="hello-world" --solution="function" --language="python" # Test a solution programming-challenges run test --challenge="hello-world" --solution="function" --language="python" # Run a solution with specific `input.txt` file programming-challenges run solution --challenge="hello-world" --solution="function" --language="python" --input-path="./challenges/hello-world/test/1/input.txt" --output # Search for a challenge not yet solved in a specific programming language programming-challenges search --language="rust" ``` ## 💡 Contributing Anyone can help to improve the project, submit a challenge, a solution or even correct a simple spelling mistake. The steps to contribute can be found in the [CONTRIBUTING.md](./CONTRIBUTING.md) file. ## 📄 License [MIT](./LICENSE)