I'm fairly new to C++ and to game programming itself. Today I decided to build a multiplayer Tic Tac Toe program using only elemental C++ syntax/data structures. I also implemented a text interface for the game instead of real graphics.

Any suggestions or tips for the code?

    #include <iostream>
    #include <string>

    #define GRID_SIZE 9

    using namespace std;

    void printGame(char gameGrid[]);
    void inputToSlot(char gameGrid[], int slot, char choice);
    void initialiseGame(char gameGrid[]);
    bool isFull(char gameGrid[]);
    bool isEmpty(char input);
    bool checkWon(char gameGrid[]);
    bool rowWon(char gameGrid[]);
    bool columnWon(char gameGrid[]);
    bool diagonalWon(char gameGrid[]);

    int main(int argc, const char * argv[])
    {
        char gameGrid[GRID_SIZE];
        initialiseGame(gameGrid);
        int currentTurn = 0;
        
        cout << "Tic Tac Toe by Bryan Lean" << endl << endl;
        printGame(gameGrid);
        cout << endl;
        
        while (!isFull(gameGrid)) {
            int slotChoice;
            currentTurn += 1;
            bool isP2 (currentTurn % 2 == 0);
            
            // Prompt
            if (isP2) {
                cout << "Player 2 turn..." << endl << "Insert to slot > ";
            } else {
                cout << "Player 1 turn..." << endl << "Insert to slot > ";
            }
            cin >> slotChoice;
            
            while (!isEmpty(gameGrid[slotChoice])) {
                cout << "Slot occupied. Please select another slot > ";
                cin >> slotChoice;
            }
            
            // Insert
            if (isP2) {
                gameGrid[slotChoice] = 'o';
            } else {
                gameGrid[slotChoice] = 'x';
            }
            
            // Print
            printGame(gameGrid);
            cout << endl;
            
            // Check Winner
            if (checkWon(gameGrid)) {
                if (isP2) {
                    cout << "Player 2 won the game.";
                } else {
                    cout << "Player 1 won the game.";
                }
                
                break;
            } 
        
        }
        
        if (!checkWon(gameGrid)) {
            cout << "Draw.";
        }
        
        
    }

    void initialiseGame(char gameGrid[]) {
        for (int i = 0; i < GRID_SIZE; ++i) {
            gameGrid[i] = ' ';
        }
    }

    void printGame(char gameGrid[]) {
        cout << "+---+---+---+" << endl;
        for (int i = 0; i < GRID_SIZE; ++i) {
            cout << "| " << gameGrid[i] << " ";
            if ((i+1) % 3 == 0 && i != 0) {
                cout << "|" << endl;
                cout << "+---+---+---+" << endl;
            }
        }
    }

    void inputToSlot(char gameGrid[], int slot, char choice) {
        gameGrid[slot] = choice;
        
    }

    bool isFull(char gameGrid[]) {
        for (int i = 0; i < GRID_SIZE; ++i) {
            if (gameGrid[i] == ' ') {
                return false;
            }
        }
        
        return true;
    }

    bool isEmpty(char input) {
        if (input == ' '){
            return true;
        }
        return false;
    }

    bool checkWon(char gameGrid[]) {
        if (rowWon(gameGrid)) {
            return true;
        } else if (columnWon(gameGrid)) {
            return true;
        } else if (diagonalWon(gameGrid)) {
            return true;
        }
        
        return false;
    }

    bool rowWon(char gameGrid[]) {
        for (int i = 0; i < GRID_SIZE; i += 3) {
            char firstInRow = gameGrid[i];
            char secondInRow = gameGrid[i + 1];
            char thirdInRow = gameGrid[i + 2];
            
            if (!isEmpty(firstInRow) && !isEmpty(secondInRow) && !isEmpty(thirdInRow)) {
                if (firstInRow == secondInRow && firstInRow == thirdInRow) {
                    return true;
                }
            }
        }
        
        return false;
    }

    bool columnWon(char gameGrid[]) {
        for (int i = 0; i < 3; ++i) {
            char firstInColumn = gameGrid[i];
            char secondInColumn = gameGrid[i + 3];
            char thirdInColumn = gameGrid[i + 6];
            
            if (!isEmpty(firstInColumn) && !isEmpty(secondInColumn) && !isEmpty(thirdInColumn)) {
                if (firstInColumn == secondInColumn && firstInColumn == thirdInColumn) {
                    return true;
                }
            }
            
        }
        
        return false;
    }

    bool diagonalWon(char gameGrid[]) {
        char center = gameGrid[4];
        if (!isEmpty(center) && !isEmpty(gameGrid[0]) && !isEmpty(gameGrid[8])) {
            if (center == gameGrid[0] && center == gameGrid[8]) {
                return true;
            }
        } else if (!isEmpty(center) && !isEmpty(gameGrid[2]) && !isEmpty(gameGrid[6])) {
            if (center == gameGrid[2] && center == gameGrid[6]) {
                return true;
            }
        }
        
        return false;
        
    }


    /************************

     Tic Tac Toe
    Text Graphics
     
     +---+---+---+
     | x | o | x |
     +---+---+---+
     | x | o | x |
     +---+---+---+
     | o | o | x |
     +---+---+---+
     
    *************************/