コード例 #1
0
    public void OnPress(Button Bnt)//,,like end of turn''
    {
        PrevState = GetBoard();

        if (GameHeader.Dirty)//are we OnEdit1
        {
            SetBoard();
            GameHeader.Dirty = false;
        }
        if (GameHeader.OnEditWin)//are we OnEdit2
        {
            Bnt.GetComponentInChildren <Text>().text = GameHeader.CurrentToken;
            return;
        }

        /*	if(computer)
         *      get put index=>the random function*/



        if (!GameHeader.CurrentToken.Equals("X"))//if not human player
        {
            //set btn by random ....
            Bnt = cpuPlayer.PlayTurn();
            if (Bnt == null)
            {
                goto ENDGAME;
            }
        }

        if (AutoPlay)//if not human player
        {
            //set btn by random ....
            Bnt = cpuPlayer2.PlayTurn();
            if (Bnt == null)
            {
                goto ENDGAME;
            }
        }

        //GameHeader.SetNextPlayerToken
        /*	put in index*/

        string currentEdgeID = edgeController.MakeEdgeId(Bnt.name.Replace("Button-", ""));
        Edge   currentEdge   = edgeController.GetEdgeInLayer(currentEdgeID, GameHeader.CurrentTurn);

        if (currentEdge == null)//if not exists, add new
        {
            //Debug.Log("edge " + currentEdgeID + " is f****n null!!!");
            currentEdge = edgeController.AddNewEdge(currentEdgeID, PrevState, GameHeader.CurrentTurn);
        }
        edgeController.CheckEdges.Add(currentEdge);//add to checked list


        Bnt.GetComponentInChildren <Text>().text = GameHeader.CurrentToken;//place the token

        Bnt.interactable = false;

        GameHeader.Borad = GetBoard(); //get board
                                       /*	check win */
ENDGAME:
        {
            if (CheckWin())//if someone wins, end it, else, continue play
            {
                GameHeader.Borad = GetBoard();
                Tt.text          = "player " + GameHeader.CurrentToken + " has won";
                DisableAllButtons();
                stateController.AddWinStateToDB();
                edgeController.UpdateAllCheckedEdges();

                return;
            }
        }
        /*  go to other player -set other player flag ==> player   */
        GameHeader.SetNextPlayerToken();
        //Debug.Log("GameHeader.CurrentTurn1=====" + GameHeader.CurrentTurn);



        /* if (computer)
         *  put token */


        //end nadav
    }