void EndTurn() { mEndingTurn = true; // save current state of the blocks into our match data mMatchData.ClearBlockDescs(); foreach (GameObject o in GetAllGameBlocks()) { char mark = o.tag == "MarkX" ? MatchData.MarkX : MatchData.MarkO; mMatchData.AddBlockDesc(mark, o.transform.position, o.transform.rotation); } // recalculate who owns each mark RecalculateMarks(); UpdateLargeMarks(); // do we have a winner? if (mMatchData.HasWinner) { FinishMatch(); } else { TakeTurn(); } }