Hello Im needing help in completing this TicTacToe assignmen
Hello I\'m needing help in completing this Tic-Tac-Toe assignment in C# Windows Form Application. I\'m using Visual Studio 2015 Community edition. I need help finishing the coding part, everything left in the comments is what is needed, thanks!!! I have attached a picture of the GUI and below is the code that needs to be worked on.
namespace TicTacToe
 {
     public partial class TTTForm : Form
     {
         public TTTForm()
         {
             InitializeComponent();
         }
        const string USER_SYMBOL = \"X\";
         const string COMPUTER_SYMBOL = \"O\";
         const string EMPTY = \"\";
const int SIZE = 5;
        // constants for the 2 diagonals
         const int TOP_LEFT_TO_BOTTOM_RIGHT = 1;
         const int TOP_RIGHT_TO_BOTTOM_LEFT = 2;
        // constants for IsWinner
         const int NONE = -1;
         const int ROW = 1;
         const int COLUMN = 2;
         const int DIAGONAL = 3;
        // This method takes a row and column as parameters and
         // returns a reference to a label on the form in that position
         private Label GetSquare(int row, int column)
         {
             int labelNumber = row * SIZE + column + 1;
             return (Label)(this.Controls[\"label\" + labelNumber.ToString()]);
         }
        // This method does the \"reverse\" process of GetSquare
         // It takes a label on the form as it\'s parameter and
         // returns the row and column of that square as output parameters
         private void GetRowAndColumn(Label l, out int row, out int column)
         {
             int position = int.Parse(l.Name.Substring(5));
             row = (position - 1) / SIZE;
             column = (position - 1) % SIZE;
         }
        // This method takes a row (in the range of 0 - 4) and returns true if
         // the row on the form contains 5 Xs or 5 Os.
         // Use it as a model for writing IsColumnWinner
         private bool IsRowWinner(int row)
         {
             Label square = GetSquare(row, 0);
             string symbol = square.Text;
             for (int col = 1; col < SIZE; col++)
             {
                 square = GetSquare(row, col);
                 if (symbol == EMPTY || square.Text != symbol)
                     return false;
             }
             return true;
         }
        //* TODO: finish all of these that return true
         private bool IsAnyRowWinner()
         {
             return true;
         }
        private bool IsColumnWinner(int col)
         {
             return true;
         }
        private bool IsAnyColumnWinner()
         {
             return true;
         }
        private bool IsDiagonal1Winner()
         {
             return true;
         }
        private bool IsDiagonal2Winner()
         {
             Label square = GetSquare(0, (SIZE - 1));
             string symbol = square.Text;
             for (int row = 1, col = SIZE - 2; row < SIZE; row++, col--)
             {
                 square = GetSquare(row, col);
                 if (symbol == EMPTY || square.Text != symbol)
                     return false;
             }
             return true;
         }
        private bool IsAnyDiagonalWinner()
         {
             return true;
         }
        private bool IsFull()
         {
             return true;
         }
        // This method determines if any row, column or diagonal on the board is a winner.
         // It returns true or false and the output parameters will contain appropriate values
         // when the method returns true. See constant definitions at top of form.
         private bool IsWinner(out int whichDimension, out int whichOne)
         {
             // rows
             for (int row = 0; row < SIZE; row++)
             {
                 if (IsRowWinner(row))
                 {
                     whichDimension = ROW;
                     whichOne = row;
                     return true;
                 }
             }
             // columns
             for (int column = 0; column < SIZE; column++)
             {
                 if (IsColumnWinner(column))
                 {
                     whichDimension = COLUMN;
                     whichOne = column;
                     return true;
                 }
             }
             // diagonals
             if (IsDiagonal1Winner())
             {
                 whichDimension = DIAGONAL;
                 whichOne = TOP_LEFT_TO_BOTTOM_RIGHT;
                 return true;
             }
             if (IsDiagonal2Winner())
             {
                 whichDimension = DIAGONAL;
                 whichOne = TOP_RIGHT_TO_BOTTOM_LEFT;
                 return true;
             }
             whichDimension = NONE;
             whichOne = NONE;
             return false;
         }
        // I wrote this method to show you how to call IsWinner
         private bool IsTie()
         {
             int winningDimension, winningValue;
             return (IsFull() && !IsWinner(out winningDimension, out winningValue));
         }
        // This method takes an integer in the range 0 - 4 that represents a column
         // as it\'s parameter and changes the font color of that cell to red.
         private void HighlightColumn(int col)
         {
             for (int row = 0; row < SIZE; row++)
             {
                 Label square = GetSquare(row, col);
                 square.Enabled = true;
                 square.ForeColor = Color.Red;
             }
         }
        // This method changes the font color of the top right to bottom left diagonal to red
         // I did this diagonal because it\'s harder than the other one
         private void HighlightDiagonal2()
         {
             for (int row = 0, col = SIZE - 1; row < SIZE; row++, col--)
             {
                 Label square = GetSquare(row, col);
                 square.Enabled = true;
                 square.ForeColor = Color.Red;
             }
         }
        // This method will highlight either diagonal, depending on the parameter that you pass
         private void HighlightDiagonal(int whichDiagonal)
         {
             if (whichDiagonal == TOP_LEFT_TO_BOTTOM_RIGHT)
                 HighlightDiagonal1();
             else
                 HighlightDiagonal2();
}
        //* TODO: finish these 2
         private void HighlightRow(int row)
         {
         }
        private void HighlightDiagonal1()
         {
         }
        //* TODO: finish this
         private void HighlightWinner(string player, int winningDimension, int winningValue)
         {
             switch (winningDimension)
             {
                 case ROW:
                     break;
                 case COLUMN:
                     break;
                 case DIAGONAL:
                     HighlightDiagonal(winningValue);
                     resultLabel.Text = (player + \" wins!\");
                     break;
             }
         }
        //* TODO: finish these 2
         private void ResetSquares()
         {
         }
        private void MakeComputerMove()
         {
         }
        // Setting the enabled property changes the look and feel of the cell.
         // Instead, this code removes the event handler from each square.
         // Use it when someone wins or the board is full to prevent clicking a square.
         private void DisableAllSquares()
         {
             for (int row = 0; row < SIZE; row++)
             {
                 for (int col = 0; col < SIZE; col++)
                 {
                     Label square = GetSquare(row, col);
                     DisableSquare(square);
                 }
             }
         }
        // Inside the click event handler you have a reference to the label that was clicked
         // Use this method (and pass that label as a parameter) to disable just that one square
         private void DisableSquare(Label square)
         {
             square.Click -= new System.EventHandler(this.label_Click);
         }
        // You\'ll need this method to allow the user to start a new game
         private void EnableAllSquares()
         {
             for (int row = 0; row < SIZE; row++)
             {
                 for (int col = 0; col < SIZE; col++)
                 {
                     Label square = GetSquare(row, col);
                     square.Click += new System.EventHandler(this.label_Click);
                 }
             }
         }
        //* TODO: finish the event handlers
         private void label_Click(object sender, EventArgs e)
         {
             int winningDimension = NONE;
             int winningValue = NONE;
Label clickedLabel = (Label)sender;
}
        private void button1_Click(object sender, EventArgs e)
         {
         }
        private void button2_Click(object sender, EventArgs e)
         {
         }
     }
Solution
namespace TicTacToe
 {
 public partial class TTTForm : Form
 {
 public TTTForm()
 {
 InitializeComponent();
 }
 const string USER_SYMBOL = \"X\";
 const string COMPUTER_SYMBOL = \"O\";
 const string EMPTY = \"\";
 const int SIZE = 5;
 // constants for the 2 diagonals
 const int TOP_LEFT_TO_BOTTOM_RIGHT = 1;
 const int TOP_RIGHT_TO_BOTTOM_LEFT = 2;
 // constants for IsWinner
 const int NONE = -1;
 const int ROW = 1;
 const int COLUMN = 2;
 const int DIAGONAL = 3;
 // This method takes a row and column as parameters and
 // returns a reference to a label on the form in that position
 private Label GetSquare(int row, int column)
 {
 int labelNumber = row * SIZE + column + 1;
 return (Label)(this.Controls[\"label\" + labelNumber.ToString()]);
 }
 // This method does the \"reverse\" process of GetSquare
 // It takes a label on the form as it\'s parameter and
 // returns the row and column of that square as output parameters
 private void GetRowAndColumn(Label l, out int row, out int column)
 {
 int position = int.Parse(l.Name.Substring(5));
 row = (position - 1) / SIZE;
 column = (position - 1) % SIZE;
 }
 // This method takes a row (in the range of 0 - 4) and returns true if
 // the row on the form contains 5 Xs or 5 Os.
 // Use it as a model for writing IsColumnWinner
 private bool IsRowWinner(int row)
 {
 Label square = GetSquare(row, 0);
 string symbol = square.Text;
 for (int col = 1; col < SIZE; col++)
 {
 square = GetSquare(row, col);
 if (symbol == EMPTY || square.Text != symbol)
 return false;
 }
 return true;
 }
 //* TODO: finish all of these that return true
 private bool IsAnyRowWinner()
 {
        for (int row = 1; row < SIZE; row++)
 {
 if(IsRowWinner(row)){
                    return true;
                }
 }
 return false;
 }
 private bool IsColumnWinner(int col)
 {
 Label square = GetSquare(0,col);
 string symbol = square.Text;
 for (int row = 1; row < SIZE; row++)
 {
 square = GetSquare(col, row);
 if (symbol == EMPTY || square.Text != symbol)
 return false;
 }
 return true;
 }
 private bool IsAnyColumnWinner()
 {
 for (int col = 1; col < SIZE; col++)
 {
 if(IsColumnWinner(col)){
                    return true;
                }
 }
 return false;
 }
 private bool IsDiagonal1Winner()
 {
 Label square = GetSquare((SIZE - 1),0);
 string symbol = square.Text;
 for (int row = SIZE, row = SIZE - 2; col < SIZE; row--, col++)
 {
 square = GetSquare(row, col);
 if (symbol == EMPTY || square.Text != symbol)
 return false;
 }
 return true;
 }
 private bool IsDiagonal2Winner()
 {
 Label square = GetSquare(0, (SIZE - 1));
 string symbol = square.Text;
 for (int row = 1, col = SIZE - 2; row < SIZE; row++, col--)
 {
 square = GetSquare(row, col);
 if (symbol == EMPTY || square.Text != symbol)
 return false;
 }
 return true;
 }
 private bool IsAnyDiagonalWinner()
 {
            if(IsDiagonal1Winner){
                return true;
            }
            if(IsDiagonal2Winner){
                return true;
            }
 return false;
 }
 private bool IsFull()
 {
 return true;
 }
 // This method determines if any row, column or diagonal on the board is a winner.
 // It returns true or false and the output parameters will contain appropriate values
 // when the method returns true. See constant definitions at top of form.
 private bool IsWinner(out int whichDimension, out int whichOne)
 {
 // rows
 for (int row = 0; row < SIZE; row++)
 {
 if (IsRowWinner(row))
 {
 whichDimension = ROW;
 whichOne = row;
 return true;
 }
 }
 // columns
 for (int column = 0; column < SIZE; column++)
 {
 if (IsColumnWinner(column))
 {
 whichDimension = COLUMN;
 whichOne = column;
 return true;
 }
 }
 // diagonals
 if (IsDiagonal1Winner())
 {
 whichDimension = DIAGONAL;
 whichOne = TOP_LEFT_TO_BOTTOM_RIGHT;
 return true;
 }
 if (IsDiagonal2Winner())
 {
 whichDimension = DIAGONAL;
 whichOne = TOP_RIGHT_TO_BOTTOM_LEFT;
 return true;
 }
 whichDimension = NONE;
 whichOne = NONE;
 return false;
 }
 // I wrote this method to show you how to call IsWinner
 private bool IsTie()
 {
 int winningDimension, winningValue;
 return (IsFull() && !IsWinner(out winningDimension, out winningValue));
 }
 // This method takes an integer in the range 0 - 4 that represents a column
 // as it\'s parameter and changes the font color of that cell to red.
 private void HighlightColumn(int col)
 {
 for (int row = 0; row < SIZE; row++)
 {
 Label square = GetSquare(row, col);
 square.Enabled = true;
 square.ForeColor = Color.Red;
 }
 }
 // This method changes the font color of the top right to bottom left diagonal to red
 // I did this diagonal because it\'s harder than the other one
 private void HighlightDiagonal2()
 {
 for (int row = 0, col = SIZE - 1; row < SIZE; row++, col--)
 {
 Label square = GetSquare(row, col);
 square.Enabled = true;
 square.ForeColor = Color.Red;
 }
 }
 // This method will highlight either diagonal, depending on the parameter that you pass
 private void HighlightDiagonal(int whichDiagonal)
 {
 if (whichDiagonal == TOP_LEFT_TO_BOTTOM_RIGHT)
 HighlightDiagonal1();
 else
 HighlightDiagonal2();
 }
 //* TODO: finish these 2
 private void HighlightRow(int row)
 {
            for(int col=0;col<SIZE;col++){
                Label square = GetSquare(row, col);
 square.Enabled = true;
 square.ForeColor = Color.Red;
            }
 }
 private void HighlightDiagonal1()
 {
            for (int row = SIZE-1, col =0; row < SIZE; row++, col--)
 {
 Label square = GetSquare(row, col);
 square.Enabled = true;
 square.ForeColor = Color.Red;
 }
 }
 //* TODO: finish this
 private void HighlightWinner(string player, int winningDimension, int winningValue)
 {
 switch (winningDimension)
 {
 case ROW:
                HighlightRow(winningValue);
                    resultLabel.Text = (player + \" wins!\");
 break;
 case COLUMN:
                    HighlightColumn(winningValue);
                    resultLabel.Text = (player + \" wins!\");
 break;
 case DIAGONAL:
 HighlightDiagonal(winningValue);
 resultLabel.Text = (player + \" wins!\");
 break;
 }
 }
 //* TODO: finish these 2
 private void ResetSquares()
 {
            for(int row=0;row<SIZE;row++){
                for(int col=0;col<SIZE;col++){
                    Label square = GetSquare(row, col);
                    DisableSquare(square);
                    square.ForeColor = Color.White;
                }
            }
           
 }
 // Setting the enabled property changes the look and feel of the cell.
 // Instead, this code removes the event handler from each square.
 // Use it when someone wins or the board is full to prevent clicking a square.
 private void DisableAllSquares()
 {
 for (int row = 0; row < SIZE; row++)
 {
 for (int col = 0; col < SIZE; col++)
 {
 Label square = GetSquare(row, col);
 DisableSquare(square);
 }
 }
 }
 // Inside the click event handler you have a reference to the label that was clicked
 // Use this method (and pass that label as a parameter) to disable just that one square
 private void DisableSquare(Label square)
 {
 square.Click -= new System.EventHandler(this.label_Click);
 }
 // You\'ll need this method to allow the user to start a new game
 private void EnableAllSquares()
 {
 for (int row = 0; row < SIZE; row++)
 {
 for (int col = 0; col < SIZE; col++)
 {
 Label square = GetSquare(row, col);
 square.Click += new System.EventHandler(this.label_Click);
 }
 }
 }
 //* TODO: finish the event handlers
 private void label_Click(object sender, EventArgs e)
 {
 int winningDimension = NONE;
 int winningValue = NONE;
 Label clickedLabel = (Label)sender;
 }
 private void button1_Click(object sender, EventArgs e)
 {
            int winningDimension = NONE;
 int winningValue = NONE;
 Label clickedLabel = (Label)sender;
 }
 private void button2_Click(object sender, EventArgs e)
 {
 exit(1);
 }
 }
 }










