Question
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
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
//* 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
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
// 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
// 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
// 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
// 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
//* 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) { } }
This is the GUI }
Tic Tac Toe New Game ExitStep by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started