Tik Tak Toe Game USE Thread
Tik
Tak Toe Game
Server Side Code
using System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
using
System.Runtime.Serialization.Formatters.Binary;
using
System.Net.Sockets;
namespace UmarLab11
{
class server
{
}
class Program
{
static TcpClient p1, p2;
static void Main(string[] args)
{
Console.WriteLine("Server Start by M.Muzamil Hafeez");
TcpListener server = new TcpListener(9234);
server.Start();
for(int i = 1;
i <=2; i++)
{
TcpClient c =
server.AcceptTcpClient();
if (i == 1)
p1 = c;
else
p2 = c;
Console.WriteLine("connect player "+i);
}
BinaryFormatter Fobj = new BinaryFormatter();
Fobj.Serialize(p1.GetStream(), "1");
Fobj.Serialize(p2.GetStream(), "0");
String pmsg;
while (true)
{
pmsg = (String)Fobj.Deserialize(p1.GetStream());
Fobj.Serialize(p2.GetStream(),pmsg);
pmsg =
(String)Fobj.Deserialize(p2.GetStream());
Fobj.Serialize(p1.GetStream(),
pmsg);
Console.WriteLine("player click " + pmsg);
}
}
}
|
|
Client Side Code
using System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
using
System.Runtime.Serialization.Formatters.Binary;
using
System.Net.Sockets;
namespace playGame
{
class Program
{
static TcpClient p1, p2;
static void Main(string[] args)
{
TcpListener server = new TcpListener(9234);
server.Start();
Console.WriteLine("Server Start by M.Muzamil
Hafeez");
for(int i = 1; i
<=2; i++)
{
TcpClient c =
server.AcceptTcpClient();
if (i == 1)
p1 = c;
else
p2 = c;
Console.WriteLine("connect player "+i);
}
BinaryFormatter Fobj = new BinaryFormatter();
Fobj.Serialize(p1.GetStream(), "1");
Fobj.Serialize(p2.GetStream(), "0");
String pmsg;
while (true)
{
pmsg =
(String)Fobj.Deserialize(p1.GetStream());
Fobj.Serialize(p2.GetStream(),pmsg);
pmsg =
(String)Fobj.Deserialize(p2.GetStream());
Fobj.Serialize(p1.GetStream(),
pmsg);
Console.WriteLine("player click " + pmsg);
}s
}
|
|
}
Tik Tak Game Side Code
using System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
using
System.Windows.Forms;
using
System.Net;
using
System.Net.Sockets;
using
System.Runtime.Serialization.Formatters.Binary;
using
System.Threading;
namespace client
{
public partial class grid : Form
{
TcpClient c;
string symbol, opponent;
public grid(TcpClient
c,string s)
{
this.c = c;
symbol = s;
InitializeComponent();
}
private void
disablecontrol()
{
b00.Enabled = false;
b01.Enabled = false;
b02.Enabled = false;
b10.Enabled = false;
b11.Enabled = false;
b12.Enabled = false;
b20.Enabled = false;
b21.Enabled = false;
b22.Enabled = false;
}
private void enablecontrol()
{
if (b00.Text == string.Empty)
{
b00.Enabled = true;
}
if (b01.Text == string.Empty)
{
b01.Enabled = true;
}
if (b02.Text == string.Empty)
{
b02.Enabled = true;
}
if (b10.Text == string.Empty)
{
b10.Enabled = true;
}
if (b11.Text == string.Empty)
{
b11.Enabled = true;
}
if (b12.Text == string.Empty)
{
b12.Enabled = true;
}
if (b20.Text == string.Empty)
{
b20.Enabled = true;
}
if (b21.Text == string.Empty)
{
b21.Enabled = true;
}
if (b22.Text == string.Empty)
{
b22.Enabled = true;
}
}
private void
grid_Load(object sender, EventArgs e)
{
labelplay.Text = symbol;
if (symbol == "0")
{
opponent = "1";
disablecontrol();
new Thread(() => Read()).Start();
}
else
{
opponent = "0";
}
CheckForIllegalCrossThreadCalls = false;
}
private void Read()
{
BinaryFormatter fobj = new BinaryFormatter();
string msg = (string)fobj.Deserialize(c.GetStream());
Mark(msg);
enablecontrol();
}
private void
ClickButton(Button b ,String s)
{
b.Enabled = false;
b.Text = symbol;
isWinner();
disablecontrol();
BinaryFormatter Fobj = new BinaryFormatter();
Fobj.Serialize(c.GetStream(), s);
Read();
}
private void
b00_Click(object sender, EventArgs e)
{
ClickButton(b00,"0,0");
}
private void
b01_Click(object sender, EventArgs e)
{
ClickButton(b01,"0,1");
}
private void
b02_Click(object sender, EventArgs e)
{
ClickButton(b02,"0,2");
}
private void
b10_Click(object sender, EventArgs e)
{
ClickButton(b10,"1,0");
}
private void
b11_Click(object sender, EventArgs e)
{
ClickButton(b11,"1,1");
}
private void
b12_Click(object sender, EventArgs e)
{
ClickButton(b12,"1,2");
}
private void
b20_Click(object sender, EventArgs e)
{
ClickButton(b20,"2,0");
}
private void
b21_Click(object sender, EventArgs e)
{
ClickButton(b21,"2,1");
}
private void
b22_Click(object sender, EventArgs e)
{
ClickButton(b22,"2,2");
}
private void Mark(String msg)
{
string[] m = msg.Split(',');
labelplay.Text = "Player " + symbol + " click " + msg;
int r = int.Parse(m[0]);
int c = int.Parse(m[1]);
if (r == 0 && c == 0 && m.Length==2)
{
b00.Enabled = false;
b00.Text = opponent;
}
else if (r == 0
&& c == 1)
{
b01.Enabled = false;
b01.Text = opponent;
}
else if (r == 0
&& c == 2)
{
b02.Enabled = false;
b02.Text = opponent;
}
else if (r == 1
&& c == 0)
{
b10.Enabled = false;
b10.Text = opponent;
}
else if (r == 1
&& c == 1)
{
b11.Enabled = false;
b11.Text = opponent;
}
else if (r == 1
&& c == 2)
{
b12.Enabled = false;
b12.Text = opponent;
}
else if (r == 2
&& c == 0)
{
b20.Enabled = false;
b20.Text = opponent;
}
else if (r == 2
&& c == 1)
{
b21.Enabled = false;
b21.Text = opponent;
}
else if (r == 2
&& c == 2)
{
b22.Enabled = false;
b22.Text = opponent;
}
}
private void
isWinner()
{
bool iswinner = false;
if (b00.Text == b01.Text && b00.Text == b02.Text &&
b00.Enabled == false
&& b01.Enabled == false
&& b02.Enabled == false)
{
iswinner = true;
}
else if (b10.Text ==
b11.Text && b10.Text == b12.Text && b10.Enabled == false && b11.Enabled == false && b12.Enabled == false)
{
iswinner = true;
}
else if (b20.Text ==
b21.Text && b20.Text == b22.Text && b20.Enabled == false && b21.Enabled == false && b22.Enabled == false)
{
iswinner = true;
}
else if (b00.Text ==
b11.Text && b00.Text == b22.Text && b00.Enabled == false && b11.Enabled == false && b22.Enabled == false)
{
iswinner = true;
}
else if (b02.Text ==
b11.Text && b02.Text == b20.Text && b02.Enabled == false && b11.Enabled == false && b02.Enabled == false)
{
iswinner = true;
}
else if (b00.Text ==
b10.Text && b00.Text == b20.Text && b00.Enabled == false && b10.Enabled == false && b20.Enabled == false)
{
iswinner = true;
}
else if (b01.Text ==
b11.Text && b01.Text == b21.Text && b01.Enabled == false && b11.Enabled == false && b21.Enabled == false)
{
iswinner = true;
}
else if (b02.Text ==
b12.Text && b02.Text == b22.Text && b02.Enabled == false && b12.Enabled == false && b22.Enabled == false)
{
iswinner = true;
}
else if (b00.Enabled
== false && b01.Enabled == false && b02.Enabled == false && b10.Enabled == false && b11.Enabled == false && b12.Enabled == false && b20.Enabled == false && b21.Enabled == false && b22.Enabled == false)
{
MessageBox.Show("Game Draw");
Reset();
}
if (iswinner == true)
{
if (symbol == "0")
{
MessageBox.Show("Winner player 0 ");
iswinner = false;
Reset();
resetGame = true;
}
else
{
MessageBox.Show("Winner player 1");
iswinner = false;
Reset();
resetGame = true;
}
}
}
static bool
resetGame = false;
private void
btnexit_Click(object sender,
EventArgs e)
{
Application.Exit();
}
private void Reset()
{
b00.Invoke((MethodInvoker)(() =>
b00.Enabled = true));
b01.Invoke((MethodInvoker)(() =>
b01.Enabled = true));
b02.Invoke((MethodInvoker)(() =>
b02.Enabled = true));
b10.Invoke((MethodInvoker)(() =>
b10.Enabled = true));
b11.Invoke((MethodInvoker)(() =>
b11.Enabled = true));
b12.Invoke((MethodInvoker)(() =>
b12.Enabled = true));
b20.Invoke((MethodInvoker)(() =>
b20.Enabled = true));
b21.Invoke((MethodInvoker)(() =>
b21.Enabled = true));
b22.Invoke((MethodInvoker)(() =>
b22.Enabled = true));
b00.Invoke((MethodInvoker)(() =>
b00.Text = ""));
b01.Invoke((MethodInvoker)(() =>
b01.Text = ""));
b02.Invoke((MethodInvoker)(() =>
b02.Text = ""));
b10.Invoke((MethodInvoker)(() =>
b10.Text = ""));
b11.Invoke((MethodInvoker)(() =>
b11.Text = ""));
b12.Invoke((MethodInvoker)(() =>
b12.Text = ""));
b20.Invoke((MethodInvoker)(() =>
b20.Text = ""));
b21.Invoke((MethodInvoker)(() =>
b21.Text = ""));
b22.Invoke((MethodInvoker)(() =>
b22.Text = ""));
}
|
|
}
Comments
Post a Comment