Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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 }image text in transcribed

Tic Tac Toe New Game Exit

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Processing Fundamentals Design

Authors: Marion Donnie Dutton Don F. Seaman

14th Edition Globel Edition

1292107634, 978-1292107639

Students also viewed these Databases questions

Question

How could assessment be used in an employee development program?

Answered: 1 week ago