Пример #1
0
        private void NewGame(PegGameType gameType)
        {
            gameBoard = GameBoards[gameType].Clone() as PegBoard;

            controller = PegControllerFactory.CreateForGameType(gameType, gameBoard);

            controller.LoadView(MainView);
        }
Пример #2
0
    void Update()
    {
        if (boardManager != null)
        {
            if (boardManager.state != GameState.Playing)
            {
                return;
            }
        }

        if (boardManagerSquare != null)
        {
            if (boardManagerSquare.state != GameState.Playing)
            {
                return;
            }
        }


        if (Input.GetMouseButtonDown(0))           // if left button pressed...
        // and some object is under the mouse pointer...
        {
            if (Physics.Raycast(cam.ScreenPointToRay(Input.mousePosition), out hit, 500))
            {
                // and it has the right tag...
                if (hit.transform.tag == "peg")
                {
                    heldPeg = hit.transform.GetComponent <PegController>();
                    // raise the peg above the board if not already done
                    if (!lifted)
                    {
                        objTr = hit.transform;
                        Vector3 newPos = originalPosition = objTr.position;
                        newPos        += objTr.up * 3.0f;
                        objTr.position = newPos;

                        AudioSource.PlayClipAtPoint(pickUp, objTr.position);
                        lifted = true;
                    }
                    // starts dragging it
                    StartCoroutine("DragObject");
                }
            }
        }
    }
Пример #3
0
    bool CheckValidMoves(GameObject peg)
    {
        PegController  pegCont = peg.GetComponent <PegController>();
        HoleController hole    = pegCont.originalHole;
        HoleController nextRow = getNextRow(hole);
        HoleController prevRow = getPrevRow(hole);
        HoleController nextCol = getNextCol(hole);
        HoleController prevCol = getPrevCol(hole);


        if (nextRow && nextRow.currentPeg)
        {
            HoleController nextNextRow = getNextRow(nextRow);
            if (nextNextRow && !nextNextRow.currentPeg)
            {
                return(true);
            }
        }
        if (prevRow && prevRow.currentPeg)
        {
            HoleController prevPrevRow = getPrevRow(prevRow);
            if (prevPrevRow && !prevPrevRow.currentPeg)
            {
                return(true);
            }
        }
        if (nextCol && nextCol.currentPeg)
        {
            HoleController nextNextCol = getNextCol(nextCol);
            if (nextNextCol && !nextNextCol.currentPeg)
            {
                return(true);
            }
        }
        if (prevCol && prevCol.currentPeg)
        {
            HoleController prevPrevCol = getPrevCol(prevCol);
            if (prevPrevCol && !prevPrevCol.currentPeg)
            {
                return(true);
            }
        }

        return(false);
    }
Пример #4
0
    bool CheckValidMoves(GameObject peg)
    {
        PegController  pegCont   = peg.GetComponent <PegController>();
        HoleController hole      = pegCont.originalHole;
        HoleController leftHole  = getLeft(hole);
        HoleController rightHole = getRight(hole);
        HoleController nextRow   = getNextRow(hole);
        HoleController prevRow   = getPrevRow(hole);
        HoleController nextCol   = getNextCol(hole);
        HoleController prevCol   = getPrevCol(hole);

        if (leftHole && leftHole.currentPeg)
        {
            HoleController leftLeft = getLeft(leftHole);
            if (leftLeft && !leftLeft.currentPeg)
            {
                return(true);
            }
        }
        if (rightHole && rightHole.currentPeg)
        {
            HoleController rightRight = getRight(rightHole);
            if (rightRight && !rightRight.currentPeg)
            {
                return(true);
            }
        }
        if (nextRow && nextRow.currentPeg)
        {
            HoleController nextNextRow = getNextRow(nextRow);
            if (nextNextRow && !nextNextRow.currentPeg)
            {
                return(true);
            }
        }
        if (prevRow && prevRow.currentPeg)
        {
            HoleController prevPrevRow = getPrevRow(prevRow);
            if (prevPrevRow && !prevPrevRow.currentPeg)
            {
                return(true);
            }
        }
        if (nextCol && nextCol.currentPeg)
        {
            HoleController nextNextCol = getNextCol(nextCol);
            if (nextNextCol && !nextNextCol.currentPeg)
            {
                return(true);
            }
        }
        if (prevCol && prevCol.currentPeg)
        {
            HoleController prevPrevCol = getPrevCol(prevCol);
            if (prevPrevCol && !prevPrevCol.currentPeg)
            {
                return(true);
            }
        }

        return(false);
    }