/// <summary> /// Determines if there is a winner. /// If there is a winner, adds winning tiles to a queue. /// </summary> /// <param name="row">Game grid row.</param> /// <param name="column">Game grid column.</param> /// <returns>Is there a winner?</returns> private bool IsWinner(int row, int column) { if (IsColumnWin(column)) { for (int i = 0; i < GridSize; i++) { WinningTiles.Enqueue(string.Format("{0}{1}", i, column)); } return(true); } if (IsRowWin(row)) { for (int i = 0; i < GridSize; i++) { WinningTiles.Enqueue(string.Format("{0}{1}", row, i)); } return(true); } if (row == column && IsMainDiagonalWin()) { for (int i = 0; i < GridSize; i++) { WinningTiles.Enqueue(string.Format("{0}{1}", i, i)); } return(true); } if (((row + column) == GridSize - 1) && IsAntiDiagonalWin()) { for (int i = 0; i < GridSize; i++) { WinningTiles.Enqueue(string.Format("{0}{1}", i, GridSize - 1 - i)); } return(true); } return(false); }