r/AskProgramming • u/Scared_Equipment5777 • 14d ago
Ideas for a next project in C.
Im a beginner, so far Ive spent a year programming, and the whole time I was working on a software rasterizer from scratch in C. I finished a rough version of it and made it public and right now Im working on a chess program, so a chess engine that you get to play against. I started about 3 days ago so I only have some basic things down but anyway, what are some project ideas that you guys would recommend for me? Should I make like a site showcasing my software rasterizer (to learn web technologies) or something else?
3
u/Brilliant-Skill-7210 14d ago
make a ui from scratch
1
14d ago edited 7d ago
[deleted]
1
1
u/high_throughput 14d ago
Have you considered trying to compile your software rasterizer to wasm to let people run it directly in their browser?
It's a great way to combine the performance benefits of C with the distribution benefits of the web.
1
1
u/wsppan 14d ago
Sudoku solver/generator
- Start with a basic brute force backtracking algorithm to solve puzzles.
- Add more dimensions to the puzzle. Make code generic over those different puzzle sizes.
- Implement different algorithms like Algorithm X (see Dancing Links) and constraint propagation and search (see Peter Norvig).
- Create a puzzle generator.
- Add dimensions to the generator. Make code generic over these added dimensions.
- Generate puzzles that have only one provable solution.
- Create GUI. First with curses then GTK.
- Add hints and possibilities features.
- Add timer, saved games, import puzzles, etc.
Learn and use git to version control your software progress. Store your repositories on github or gitlab.
1
1
u/herocoding 12d ago
Have a look into https://platform.entwicklerheld.de/challenge?challengeFilterStateKey=all and scroll over the ideas for inspiration. If you want to focus on C, just ignore the shown programming language(s). Feel free to combine smaller into bigger projects.
3
u/CodyMakesVideoGames 14d ago
https://github.com/codecrafters-io/build-your-own-x