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 }