Projects

Chess Engine

This is by far the most challenging project I have worked on. I dislike losing in chess so I wrote a chess engine that could play better than me. It finds chess moves that I would never be able to find, especially in a game situation. It has a playing strength of ~1500elo and has beaten 2000 rated chess bots on chess.com. A demo of this chess engine can be seen in the readme.

I used C/C++ to write this chess engine. What impressed me while researching this project is the amount of dedication that the chess programming community has put into finding optimization techniques. The explainations on Chess Programming Wiki as well as posts about world's fastest chess move generator on code project helped me understand many of these optimization techniques for tree prunning and bit manipulation.

Pathfinding Visualizer

When I first started programming, I was introduced to competitive programming by my friends and started doing problems on DMOJ. While solving these problems, I learned many algorithms. After writing Dijkstra for the nth time, I thought it would be cool to create a visualizer for this algorithm.

My favorite part about this project is watching the pathfinding algorithm(Dijkstra or A*) find their way from a starting point to an ending point in a maze. A demo of this project can be found in my github's readme.

Sorting Visualizer

After seeing this video about different sorting algorithm, I knew I needed to create my own version.

Researching for this project not only taught me about time complexity and space complexity of different sorting algorithms but also that different algorithms may run faster or slower on "specific data", like almost sorted data or reverse sorted data. A demo of this project can be found in my github's readme.

Chip8 Emulator

I always wondered how computers worked so I wrote a chip8 emulator to help better my understanding. This project was very enjoyable to write and helped me improve my C++ skills.

Sudoku Solver

I wrote a sudoku solver so I can solve sudoku as fast as the pros. What makes this sudoku solver faster than other sudoku solver using the normal backtracking algorithm was that it greedily chooses the 3x3 square with the least number of options to reduce possible tree branching to search.