Tic-Tac-Toe

Tic-Tac-Toe is a console-based Java mini-project built using Core Java and OOP principles. It demonstrates abstraction and inheritance by defining a common Player class and extending it for HumanPlayer and AIPlayer. The program allows a user to play against the computer, displaying the board after each move and declaring the result (win or draw). This project shows a practical implementation of Java classes, methods, and logic flow β€” ideal for beginners and core Java learners.

πŸ’‘ Features

βœ… Two-player mode (Human vs AI) βœ… Intelligent input checking βœ… Displays current board after every move βœ… Declares winner or draw clearly βœ… Object-Oriented Design (OOP used properly)

🧠 Concepts Used

Abstraction (Player class)

Inheritance (HumanPlayer, AIPlayer)

Polymorphism (makeMove() implementation)

Encapsulation (board access via methods)

Loops and conditionals

Arrays

🧩 Project Structure (Linked Style)

Here’s how your Java files are connected:

TicTacToe/ β”‚ β”œβ”€β”€ LaunchGame.java β†’ Main class (starts the game) β”œβ”€β”€ TicTacToe.java β†’ Game board logic + win/draw checks β”œβ”€β”€ Player.java β†’ Abstract parent class for all players