AI Tic-Tac-Toe
Desktop-based Tic-Tac-Toe game built to explore AI decision-making, algorithm optimization, and gameplay design through a more engaging computer opponent.

Project Overview
This project is a desktop-based Tic-Tac-Toe game featuring an intelligent AI opponent. It was built to explore algorithm design, search optimization, and the balance between technical correctness and player experience in simple games.
Key Highlights
Built a desktop application in C using GTK, focusing on responsive UI and interactive gameplay.
Implemented the MinMax algorithm with alpha-beta pruning for efficient AI decision-making.
Designed controlled AI imperfections to create more varied and human-like gameplay behaviour.
Added adjustable difficulty levels to improve replayability and overall user experience.
Structured the project with modular C code and explicit memory management.
Problem
Many Tic-Tac-Toe implementations are either too simplistic or rely on perfect-play AI, which makes gameplay repetitive and predictable. This reduces challenge, replayability, and overall user engagement.
Solution
The game combines MinMax with alpha-beta pruning to produce strong AI decisions while introducing controlled imperfections to avoid overly predictable outcomes. This creates a more balanced opponent that remains challenging without making every match feel identical.
Outcome
The project resulted in a fully functional desktop game with adjustable AI behaviour and a responsive interface. It also strengthened my understanding of algorithm optimization, AI trade-offs, and low-level programming concepts such as modular C design and memory management.