Example #1
0
    private void AssignSides()
    {
        int result = RNGsus();

        if (result == 1)
        {
            p1Side = Space.Side.O;
            p2Side = Space.Side.X;
        }
        else
        {
            p1Side = Space.Side.X;
            p2Side = Space.Side.O;
        }
    }
Example #2
0
    /* Even handler for clicking on a 'space'*/
    private void SetupButtonClickHandler(Space space)
    {
        Button btn = space.button;

        btn.onClick.AddListener(delegate {
            Space.Side side = model.GetSide(int.Parse(space.name));

            // TODO: change text to button images
            string sideToDisplay;
            switch (side)
            {
            case Space.Side.UD:
                sideToDisplay = "?";
                checkWinState(sideToDisplay);
                break;

            case Space.Side.O:
                sideToDisplay = "O";
                space.SetInteractable(false);
                checkWinState(sideToDisplay);
                break;

            case Space.Side.X:
                sideToDisplay = "X";
                space.SetInteractable(false);
                checkWinState(sideToDisplay);
                break;

            default:
                return;
            }

            btn.GetComponentInChildren <Text> ().text = sideToDisplay;

            /* Deselect button (to prevent it from being highlighted) */
            EventSystem.current.SetSelectedGameObject(null);

            model.EndTurn();
            turn.text = ((model.p1sTurn)? model.playerOne : model.playerTwo) + "'s Turn";
        });
    }
Example #3
0
    public bool checkOWins()
    {
        Space.Side Sym   = Space.Side.X;
        Space.Side Empty = Space.Side.NONE;
        int        j     = 0;

        //Check row 1
        for (int i = 0; i < 5; i++)
        {
            if (!grid[i].Equals(Sym))
            {
                if (!grid[i].Equals(Empty))
                {
                    if (grid[i].Equals(Space.Side.UD))
                    {
                        j++;
                    }
                    else
                    {
                        j += 100;
                    }
                }
            }
        }
        if (j == 104 || j == 203 || j == 302 || j == 401 || j == 500)
        {
            return(true);
        }

        j = 0;
        //Check row 2
        for (int i = 0; i < 5; i++)
        {
            if (!grid[i].Equals(Sym))
            {
                if (!grid[i].Equals(Empty))
                {
                    if (grid[i].Equals(Space.Side.UD))
                    {
                        j++;
                    }
                    else
                    {
                        j += 100;
                    }
                }
            }
        }
        if (j == 104 || j == 203 || j == 302 || j == 401 || j == 500)
        {
            return(true);
        }

        j = 0;
        //Check row 3
        for (int i = 0; i < 5; i++)
        {
            if (!grid[i].Equals(Sym))
            {
                if (!grid[i].Equals(Empty))
                {
                    if (grid[i].Equals(Space.Side.UD))
                    {
                        j++;
                    }
                    else
                    {
                        j += 100;
                    }
                }
            }
        }
        if (j == 104 || j == 203 || j == 302 || j == 401 || j == 500)
        {
            return(true);
        }

        j = 0;
        //Check row 4
        for (int i = 0; i < 5; i++)
        {
            if (!grid[i].Equals(Sym))
            {
                if (!grid[i].Equals(Empty))
                {
                    if (grid[i].Equals(Space.Side.UD))
                    {
                        j++;
                    }
                    else
                    {
                        j += 100;
                    }
                }
            }
        }
        if (j == 104 || j == 203 || j == 302 || j == 401 || j == 500)
        {
            return(true);
        }

        j = 0;
        //Check row 5
        for (int i = 0; i < 5; i++)
        {
            if (!grid[i].Equals(Sym))
            {
                if (!grid[i].Equals(Empty))
                {
                    if (grid[i].Equals(Space.Side.UD))
                    {
                        j++;
                    }
                    else
                    {
                        j += 100;
                    }
                }
            }
        }
        if (j == 104 || j == 203 || j == 302 || j == 401 || j == 500)
        {
            return(true);
        }

        //Check Columns
        //Check col 1
        j = 0;
        for (int i = 0; i < 25; i += 5)
        {
            if (!grid[i].Equals(Sym))
            {
                if (!grid[i].Equals(Empty))
                {
                    if (grid[i].Equals(Space.Side.UD))
                    {
                        j++;
                    }
                    else
                    {
                        j += 100;
                    }
                }
            }
        }
        if (j == 104 || j == 203 || j == 302 || j == 401 || j == 500)
        {
            return(true);
        }

        //Check col 2
        j = 0;
        for (int i = 1; i < 25; i += 5)
        {
            if (!grid[i].Equals(Sym))
            {
                if (!grid[i].Equals(Empty))
                {
                    if (grid[i].Equals(Space.Side.UD))
                    {
                        j++;
                    }
                    else
                    {
                        j += 100;
                    }
                }
            }
        }
        if (j == 104 || j == 203 || j == 302 || j == 401 || j == 500)
        {
            return(true);
        }

        //Check col 3
        j = 0;
        for (int i = 2; i < 25; i += 5)
        {
            if (!grid[i].Equals(Sym))
            {
                if (!grid[i].Equals(Empty))
                {
                    if (grid[i].Equals(Space.Side.UD))
                    {
                        j++;
                    }
                    else
                    {
                        j += 100;
                    }
                }
            }
        }
        if (j == 104 || j == 203 || j == 302 || j == 401 || j == 500)
        {
            return(true);
        }

        //Check col 4
        j = 0;
        for (int i = 3; i < 25; i += 5)
        {
            if (!grid[i].Equals(Sym))
            {
                if (!grid[i].Equals(Empty))
                {
                    if (grid[i].Equals(Space.Side.UD))
                    {
                        j++;
                    }
                    else
                    {
                        j += 100;
                    }
                }
            }
        }
        if (j == 104 || j == 203 || j == 302 || j == 401 || j == 500)
        {
            return(true);
        }

        //Check col 5
        j = 0;
        for (int i = 4; i < 25; i += 5)
        {
            if (!grid[i].Equals(Sym))
            {
                if (!grid[i].Equals(Empty))
                {
                    if (grid[i].Equals(Space.Side.UD))
                    {
                        j++;
                    }
                    else
                    {
                        j += 100;
                    }
                }
            }
        }
        if (j == 104 || j == 203 || j == 302 || j == 401 || j == 500)
        {
            return(true);
        }

        //Check diagonal \
        j = 0;
        for (int i = 0; i < 25; i += 6)
        {
            if (!grid[i].Equals(Sym))
            {
                if (!grid[i].Equals(Empty))
                {
                    if (grid[i].Equals(Space.Side.UD))
                    {
                        j++;
                    }
                    else
                    {
                        j += 100;
                    }
                }
            }
        }
        if (j == 104 || j == 203 || j == 302 || j == 401 || j == 500)
        {
            return(true);
        }

        //Check diagonal /
        j = 0;
        for (int i = 0; i < 21; i += 4)
        {
            if (!grid[i].Equals(Sym))
            {
                if (!grid[i].Equals(Empty))
                {
                    if (grid[i].Equals(Space.Side.UD))
                    {
                        j++;
                    }
                    else
                    {
                        j += 100;
                    }
                }
            }
        }
        if (j == 104 || j == 203 || j == 302 || j == 401 || j == 500)
        {
            return(true);
        }


        return(false);
    }