Inspiration
Our team was inspired to create a classic game like TicTacToe as it has been a popular game for generations. We wanted to challenge ourselves to create a functioning game in assembly language and improve our skills in low-level programming.
What it does
Our TicTacToe game allows two players to take turns placing X's and O's on a 3x3 grid until one player wins or the game ends in a tie.
How we built it
We built the TicTacToe game using the MIPS (Microprocessor without Interlocked Pipeline Stages) instruction set architecture. We used QtSim, test our code. Our team used a combination of assembly instructions, conditionals, and loops to create the game's functionality. We also implemented a text-based interface for the game, which allowed us to focus on the game's logic without worrying about graphics or user input.
Challenges we ran into
One of the main challenges we faced was figuring out how to represent the game board in assembly language. It was also challenging to implement the logic for checking the win conditions as we had to check all possible combinations of three in a row. Debugging the code was also challenging as the errors were not always clear and required a lot of time to track down since we managed all the memory ourselves.
Accomplishments that we're proud of
We are proud that we were able to complete the game and create a functioning TicTacToe game in assembly language. We were able to overcome many challenges and learned a lot about low-level programming.
What we learned
Our team learned a lot about assembly language and the low-level details of programming. We gained a better understanding of how to work with registers and how to optimize code for performance. We also learned how to work effectively in a team and how to tackle complex problems together. Overall, this experience helped us improve our programming skills and deepen our understanding of computer architecture.
What's next
Implement minimax algorithm to play vs. computer and add more robust GUI.
Built With
- assembly
- mips
Log in or sign up for Devpost to join the conversation.