示例#1
0
    // Tra ve ID nguoi thang
    public int isGameOver()
    {
        int  size            = GameObject.Find("Hexagon Background").GetComponent <HexagonContainerGenerator>().size;
        int  maxColumnLength = size * 2 - 1;
        bool hasAvalaibleMoveVioletPlayer = false;
        bool hasAvalaibleMoveBlackPlayer  = false;
        int  playerID = gameObject.GetComponent <Player>().playerID;

        for (int col = 1 - size; col <= size - 1; col++)
        {
            for (int row = 0; row < maxColumnLength - Mathf.Abs(col); row++)
            {
                GameObject ctn = GameObject.Find("ctn[" + col + "," + row + "]");
                if (ctn == null)
                {
                    return(0);
                }
                HexagonController controller = ctn.GetComponent <HexagonController>();
                GameObject        hexagon    = controller.getHexagon();

                if (hasAvalaibleMoveBlackPlayer && hasAvalaibleMoveVioletPlayer)
                {
                    break;
                }

                //Neu o do khong co hexagon thi bo qua
                if (hexagon == null)
                {
                    continue;
                }
                else
                {
                    if (hexagon.name.Contains("HexagonViolet"))
                    {
                        if (hasAvalaibleMoveVioletPlayer)
                        {
                            continue;
                        }
                        if (controller.getListRelativeHexagonLevel1(ctn).Count > 0)
                        {
                            hasAvalaibleMoveVioletPlayer = true;
                            continue;
                        }
                        if (controller.getListRelativeHexagonLevel2(ctn).Count > 0)
                        {
                            hasAvalaibleMoveVioletPlayer = true;
                            continue;
                        }
                    }

                    if (hexagon.name.Contains("HexagonBlack"))
                    {
                        if (hasAvalaibleMoveBlackPlayer)
                        {
                            continue;
                        }
                        if (controller.getListRelativeHexagonLevel1(ctn).Count > 0)
                        {
                            hasAvalaibleMoveBlackPlayer = true;
                            continue;
                        }
                        if (controller.getListRelativeHexagonLevel2(ctn).Count > 0)
                        {
                            hasAvalaibleMoveBlackPlayer = true;
                            continue;
                        }
                    }
                }
            }
        }


        if ((!hasAvalaibleMoveVioletPlayer && playerID == 1) || (!hasAvalaibleMoveBlackPlayer && playerID == 2))
        {
            //Tinh diem
            if (violetPointNow > blackPointNow)
            {
                return(1);
            }
            else if (violetPointNow == blackPointNow)
            {
                return(3);
            }
            else if (blackPointNow > violetPointNow)
            {
                return(2);
            }
        }

        return(0);
    }