top of page

University Projects

wxWidgets GUI and
Conway Game of Life

This is my university project to learn the fundamentals of GUI application and creating the Conway Game of Life. I learned how to handle event and how user inputs will trigger responses and flow control to button clicks or window resizing. I also understand layout and rendering logic of designing windows and placing controls. I also understand separating UI logic from simulation logic and keeping track of simulation states (i.e. running, paused, or reset) and making sure the GUI reflects the changes accurately. 

​

When making the Conway Game of Life, I learned how a grid update based on specific rules and step into cellular automata theory. I am implementing the logic in a way that does not slow down the performance. I understand and seeing how simple rules can lead to complex and beautiful pattern. I learn more about debugging code in this project.

GitHub
conway-game-of-life.png

wxWidgets Calculator

What I learned when I was creating the wxWidgets Calculator? I learned how to design and structure a desktop GUI application using object-oriented programming in C++. I gained hands-on experience working with event-driven programming, managing button clicks, and updating the display dynamically. Through this project, I deepened my understanding of design patterns, particularly the Singleton pattern, which I used for the CalculatorProcessor to manage calculations globally. I also learned how to handle mathematical expressions, implement trigonometric functions, and integrate user input smoothly into a responsive interface.

​

One of the biggest challenges I faced was parsing and evaluating complex mathematical expressions while maintaining a clean and user-friendly interface. I initially struggled with managing the correct order of operations and handling input errors, such as dividing by zero or dealing with invalid syntax. I resolved these challenges by refining my parsing logic, directly manage and access elements within a data structure, and introducing a safety check for each case of calculation.

 

Debugging layout issues in wxWidgets and ensuring the UI was responsive also required patience, but I overcame them by studying documentation, reviewing examples, and using consistent testing to verify functionality. This project strengthened both my problem-solving and software development skills.

GitHub
wxWidget-Calculator.png

FPS  Team Project

What I learned from working with a team? I learned the fundamentals and deep understanding of what Git is and why version control is essential for collaborative software development, especially in game dev where large assets are common.​

​

Working in a team inevitably brings disagreements. I learned how to professionally navigate creative differences, technical hurdles, and interpersonal conflicts to keep the project moving forward.

​

Building that FPS game with my team was a deep dive into the realities of game development. Beyond just coding, I learned the critical art of team collaboration, mastering how to integrate individual efforts into a cohesive whole, communicate effectively under pressure, and navigate creative differences to reach a shared goal. Simultaneously, I became adept at managing Git repositories, not just for tracking code, but for orchestrating complex team contributions, resolving merge conflicts, and maintaining a clean, functional codebase—essential skills for any collaborative software project.

​

I have tasted and experienced crunch time working on this game and experienced sleep deprived for a week. 

GitHub
FPS-Team-Project.png
bottom of page