Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Please help with this. program must be written in C# .. All of the game logic mu

ID: 3798724 • Letter: P

Question

Please help with this. program must be written in C# .. All of the game logic must be written in a seperate class using using an array that is passed in through a prperty that represents the game board.   The class needs to have methods to determine of someone won, or if there was a tie, make sure all business logic is in a seperate class anot behind the UI..

***** These are the complete in instructions for the game assignment design

Create a Tic-Tac-Toe game that can be played by two players. The form will consist of a Tic-Tac-Toe board in which the users’ click on to choose their space. As the game is being played the Game Status section will tell whose turn it is. When someone wins or there is a tie, a message will be displayed in the Game status section telling the users the status. When someone wins the game the winning move needs to be indicated. There also needs to be a section that keeps track of the number of wins for each player, and the number of ties. When the game is finished the user may click the “Start Game” button to start a new game.

This program will consist of the main form and at least one class that will define the rules of the game. This class will have an array that is passed in through a property that represents the game board. The class will then have methods within it that determines if someone won, if there is a tie, or if neither has occurred yet. Make sure all business logic is in a separate class and not behind the UI.

EXTRA CREDIT (10 Points)

Create a computer player that can be played against. The computer player will need to be smart enough to make a winning move or to block a winning move.

Explanation / Answer


using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace Tic_Tac_Toe
{
   /// <summary>
   /// Description of MainForm.
   /// </summary>
   public partial class MainForm : Form
   {
Logic logicObj = new Logic();
       public MainForm()
       {
           //
           // The InitializeComponent() call is required for Windows Forms designer support.
           //
           InitializeComponent();
          
           //
           // TODO: Add constructor code after the InitializeComponent() call.
           //
       }
       int turn=1;
       int click1=0,click2=0,click3=0,click4=0,click5=0,click6=0,click7=0,click8=0,click9=0;
       int player1=0,player2=0;
      
       void Button1Click(object sender, EventArgs e)
       {
           if(click1==0)
           {
               if(turn%2!=0)
               {
                   button1.Text="X";
                   click1++;
               }
               else
               {
                   button1.Text="O";
                   click1++;
               }
               turn++;
           }
           else
           {
               button1.Text=button1.Text;
           }
           display();
int a = logicObj.winLossFunc(button1.Text, button2.Text, button3.Text, button4.Text, button5.Text, button6.Text, button7.Text, button8.Text, button9.Text);
if (a==1)
{
player1++;
player1score.Text = player1.ToString();
cleargame();
}
else if(a==2)
{
player2++;
player2score.Text = player2.ToString();
cleargame();
}
          
          
       }
      
       void Button2Click(object sender, EventArgs e)
       {
           if(click2==0)
           {
               if(turn%2!=0)
               {
                   button2.Text="X";
                   click2++;
               }
               else
               {
                   button2.Text="O";
                   click2++;
               }
               turn++;
           }
           else
           {
               button2.Text=button2.Text;
           }
           display();
int a = logicObj.winLossFunc(button1.Text, button2.Text, button3.Text, button4.Text, button5.Text, button6.Text, button7.Text, button8.Text, button9.Text);
if (a == 1)
{
player1++;
player1score.Text = player1.ToString();
cleargame();
}
else if (a == 2)
{
player2++;
player2score.Text = player2.ToString();
cleargame();
}

}

void Button3Click(object sender, EventArgs e)
       {
           if(click3==0)
           {
               if(turn%2!=0)
               {
                   button3.Text="X";
                   click3++;
               }
               else
               {
                   button3.Text="O";
                   click3++;
               }
               turn++;
           }
           else
           {
               button3.Text=button3.Text;
           }
           display();
int a = logicObj.winLossFunc(button1.Text, button2.Text, button3.Text, button4.Text, button5.Text, button6.Text, button7.Text, button8.Text, button9.Text);
if (a == 1)
{
player1++;
player1score.Text = player1.ToString();
cleargame();
}
else if (a == 2)
{
player2++;
player2score.Text = player2.ToString();
cleargame();
}

}

void Button4Click(object sender, EventArgs e)
       {
           if(click4==0)
           {
               if(turn%2!=0)
               {
                   button4.Text="X";
                   click4++;
               }
               else
               {
                   button4.Text="O";
                   click4++;
               }
               turn++;
           }
           else
           {
               button4.Text=button4.Text;
           }
           display();
int a = logicObj.winLossFunc(button1.Text, button2.Text, button3.Text, button4.Text, button5.Text, button6.Text, button7.Text, button8.Text, button9.Text);
if (a == 1)
{
player1++;
player1score.Text = player1.ToString();
cleargame();
}
else if (a == 2)
{
player2++;
player2score.Text = player2.ToString();
cleargame();
}

}

void Button5Click(object sender, EventArgs e)
       {
           if(click5==0)
           {
               if(turn%2!=0)
               {
                   button5.Text="X";
                   click5++;
               }
               else
               {
                   button5.Text="O";
                   click5++;
               }
               turn++;
           }
           else
           {
               button5.Text=button5.Text;
           }
           display();
int a = logicObj.winLossFunc(button1.Text, button2.Text, button3.Text, button4.Text, button5.Text, button6.Text, button7.Text, button8.Text, button9.Text);
if (a == 1)
{
player1++;
player1score.Text = player1.ToString();
cleargame();
}
else if (a == 2)
{
player2++;
player2score.Text = player2.ToString();
cleargame();
}

}

void Button6Click(object sender, EventArgs e)
       {
           if(click6==0)
           {
               if(turn%2!=0)
               {
                   button6.Text="X";
                   click6++;
               }
               else
               {
                   button6.Text="O";
                   click6++;
               }
               turn++;
           }
           else
           {
               button6.Text=button6.Text;
           }
           display();
int a = logicObj.winLossFunc(button1.Text, button2.Text, button3.Text, button4.Text, button5.Text, button6.Text, button7.Text, button8.Text, button9.Text);
if (a == 1)
{
player1++;
player1score.Text = player1.ToString();
cleargame();
}
else if (a == 2)
{
player2++;
player2score.Text = player2.ToString();
cleargame();
}

}

void Button7Click(object sender, EventArgs e)
       {
           if(click7==0)
           {
               if(turn%2!=0)
               {
                   button7.Text="X";
                   click7++;
               }
               else
               {
                   button7.Text="O";
                   click7++;
               }
               turn++;
           }
           else
           {
               button7.Text=button7.Text;
           }
           display();
int a = logicObj.winLossFunc(button1.Text, button2.Text, button3.Text, button4.Text, button5.Text, button6.Text, button7.Text, button8.Text, button9.Text);
if (a == 1)
{
player1++;
player1score.Text = player1.ToString();
cleargame();
}
else if (a == 2)
{
player2++;
player2score.Text = player2.ToString();
cleargame();
}

}

void Button8Click(object sender, EventArgs e)
       {
           if(click8==0)
           {
               if(turn%2!=0)
               {
                   button8.Text="X";
                   click8++;
               }
               else
               {
                   button8.Text="O";
                   click8++;
               }
               turn++;
           }
           else
           {
               button8.Text=button8.Text;
           }
           display();
int a = logicObj.winLossFunc(button1.Text, button2.Text, button3.Text, button4.Text, button5.Text, button6.Text, button7.Text, button8.Text, button9.Text);
if (a == 1)
{
player1++;
player1score.Text = player1.ToString();
cleargame();
}
else if (a == 2)
{
player2++;
player2score.Text = player2.ToString();
cleargame();
}

}

void Button9Click(object sender, EventArgs e)
       {
           if(click9==0)
           {
               if(turn%2!=0)
               {
                   button9.Text="X";
                   click9++;
               }
               else
               {
                   button9.Text="O";
                   click9++;
               }
               turn++;
           }
           else
           {
               button9.Text=button9.Text;
           }
           display();
int a = logicObj.winLossFunc(button1.Text, button2.Text, button3.Text, button4.Text, button5.Text, button6.Text, button7.Text, button8.Text, button9.Text);
if (a == 1)
{
player1++;
player1score.Text = player1.ToString();
cleargame();
}
else if (a == 2)
{
player2++;
player2score.Text = player2.ToString();
cleargame();
}

}
public void display()
       {
           if(turn%2!=0)
           {
               displayturn.Text="Player 1";
           }
           else
           {
               displayturn.Text="Player 2";
           }
       }
      
       public void cleargame()
       {
           displayturn.Text="";
           turn=1;
           click1=0;click2=0;click3=0;click4=0;click5=0;click6=0;click7=0;click8=0;click9=0;
           button1.Text="";
           button2.Text="";
           button3.Text="";
           button4.Text="";
           button5.Text="";
           button6.Text="";
           button7.Text="";
           button8.Text="";
           button9.Text="";
           button1.BackColor=Color.Empty;
           button1.ForeColor=Color.Black;
           button1.UseVisualStyleBackColor=true;
           button2.BackColor=Color.Empty;
           button2.ForeColor=Color.Black;
           button2.UseVisualStyleBackColor=true;
           button3.BackColor=Color.Empty;
           button3.ForeColor=Color.Black;
           button3.UseVisualStyleBackColor=true;
           button4.BackColor=Color.Empty;
           button4.ForeColor=Color.Black;
           button4.UseVisualStyleBackColor=true;
           button5.BackColor=Color.Empty;
           button5.ForeColor=Color.Black;
           button5.UseVisualStyleBackColor=true;
           button6.BackColor=Color.Empty;
           button6.ForeColor=Color.Black;
           button6.UseVisualStyleBackColor=true;
           button7.BackColor=Color.Empty;
           button7.ForeColor=Color.Black;
           button7.UseVisualStyleBackColor=true;
           button8.BackColor=Color.Empty;
           button8.ForeColor=Color.Black;
           button8.UseVisualStyleBackColor=true;
           button9.BackColor=Color.Empty;
           button9.ForeColor=Color.Black;
           button9.UseVisualStyleBackColor=true;
       }
      
       void PlayagainClick(object sender, EventArgs e)
       {
           cleargame();
       }
      
       void ResetClick(object sender, EventArgs e)
       {
           player1score.Text="";
           player2score.Text="";
           player1=0;
           player2=0;
           cleargame();
       }
   }
}

Logic.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Tic_Tac_Toe
{
class Logic
{
public int winLossFunc(string b1, string b2, string b3, string b4, string b5, string b6, string b7, string b8, string b9 )
{
if (b1 != "" && b2 != "" && b3 != "")
{
if (b1 == b2 && b1 == b3)
{
if (b1 == "X")
{
return 1;

}
else
{

return 2;

}


}
}
if (b4 != "" && b5 != "" && b6 != "")
{
if (b4 == b5 && b4 == b6)
{

if (b4 == "X")
{
return 1;

}
else
{

return 2;

}
}
}
if (b7 != "" && b8 != "" && b8 != "")
{
if (b7 == b8 && b7 == b8)
{

if (b7 == "X")
{
return 1;

}
else
{

return 2;

}
}
}
if (b1 != "" && b4 != "" && b7 != "")
{
if (b1 == b4 && b1 == b7)
{

if (b1 == "X")
{
  
return 1;

}
else
{

return 2;

}
}
}
if (b2 != "" && b5 != "" && b8 != "")
{
if (b2 == b5 && b2 == b8)
{

if (b2 == "X")
{
  
return 1;

}
else
{

return 2;

}
}
}
if (b3 != "" && b6 != "" && b8 != "")
{
if (b3 == b6 && b3 == b8)
{

if (b3 == "X")
{
  
return 1;

}
else
{

return 2;

}
}
}
if (b1 != "" && b5 != "" && b8 != "")
{
if (b1 == b5 && b1 == b8)
{
if (b1 == "X")
{
  
return 1;

}
else
{

return 2;

}
}
}
if (b3 != "" && b5 != "" && b7 != "")
{
if (b3 == b5 && b3 == b7)
{

if (b3 == "X")
{
  
return 1;

}
else
{

return 2;

}
}
}
return 0;
}
}
}