Ultimate Tic Tac Toe

Ultimate Tic Tac Toe is a prototype Game made in 3 weeks. The Game is a version of Tic Tac Toe made to have a very low chance to get a draw. This is done by having 9 smaller boards of Tic Tac Toe on one large board of Tic Tac Toe. Every time you win on of the smaller boards you will gain your circle or cross on the right corresponding square. But sins playing 9 games would not solve the problem. So If you place a circle or cross on the rightmost bottom square the next player must place a play on the bottom right game of the large game.

What I did

Since this is a solo project I have made including the models. I made the models with Maya which was my first time making 3d models. Also, this was the first time I ever used a shader that I made with shader graph. With, I used to make the Hologram effect you can see in the game.

Date Engine Programers Artist
May 25th 2022 Unity just me just me
3 Weeks

CODE

This is the code I use for both the checking to the smaller gamebord and the overall big gameboard. I started by writing down all the possible winning conditions in a list of strings. After that, I loop true all those winning conditions and see if there are any wins with the team that just placed a symbol.

                    
    private readonly int[,] _winStats = new int[,]
    {
        {1, 2, 3},  // Game bord
        {3, 4, 5},  // 0  1  2
        {6, 7, 8},  // 3  4  5
        {0, 3, 6},  // 6  7  8
        {1, 4, 7},
        {2, 5, 8},
        {0, 4, 8},
        {2, 4, 6}
    };

    /// 
    /// Loops through all the possible win stats to see if the given team has won that bord
    /// 
    ///  The team you want to check
                        /// 
    ///     True if some one get a win
    ///     False if no wins ar found
    /// 
    private bool CheckWinNew(int team)
    {
        for (int i = 0; i < _winStats.Length; i++)
        {
            if (gameBord[_winStats[i, 0]].team == team &&
                gameBord[_winStats[i, 1]].team == team &&
                gameBord[_winStats[i, 2]].team == team)
            {
                this.team = team;
                return true;
            }
        }
        return false;
    }
                    
                

Here you can see the shader that I ended up making to give the game that futuristic look.

Home