private void label1_Click(object sender, EventArgs e) { if (!(Ready && enemyReady)) { if (!Ready) { label1.ForeColor = Color.Green; connection.SendRawData("Ready", RawDataConverter.GetBytes(true)); Ready = true; } else { label1.ForeColor = Color.Red; connection.SendRawData("Ready", RawDataConverter.GetBytes(false)); Ready = false; } } }
private void connectionEstablished(Connection con, ConnectionType conType) { int turn = r.Next(2); richTextBox1.Text += $"Connected{con.IPRemoteEndPoint}" + Environment.NewLine; if (p1 == null) { p1 = new Player(con); p1.ready = false; } else { p2 = new Player(con); p2.ready = false; } con.RegisterRawDataHandler("Image", (RawData, connection) => { if (connection == p1.con) { p1.pic = ImageConvert.bytes2Image(RawData.Data); } else { p2.pic = ImageConvert.bytes2Image(RawData.Data); p1.con.SendRawData("image", ImageConvert.image2Bytes(p2.pic)); p2.con.SendRawData("image", ImageConvert.image2Bytes(p1.pic)); if (turn == 1) { p1.FirstTurn = true; p1.con.SendRawData("firstTurn", RawDataConverter.GetBytes(true)); p1.turn = true; } else { p2.FirstTurn = true; p2.con.SendRawData("firstTurn", RawDataConverter.GetBytes(true)); p2.turn = false; } } }); con.RegisterRawDataHandler("Nick", (RawData, connection) => { if (connection == p1.con) { p1.nick = RawData.ToUTF8String(); } else { p2.nick = RawData.ToUTF8String(); p1.con.SendRawData("nick", Encoding.UTF8.GetBytes(p2.nick)); p2.con.SendRawData("nick", Encoding.UTF8.GetBytes(p1.nick)); } }); con.RegisterRawDataHandler("Ready", (RawData, connection) => { if (connection == p1.con) { p1.ready = RawData.ToBoolean(); if (p2 != null) { p1.con.SendRawData("ready", RawDataConverter.GetBytes(p2.ready)); } p2.con.SendRawData("ready", RawDataConverter.GetBytes(p1.ready)); } else { p2.ready = RawData.ToBoolean(); p1.con.SendRawData("ready", RawDataConverter.GetBytes(p2.ready)); p2.con.SendRawData("ready", RawDataConverter.GetBytes(p1.ready)); } }); con.RegisterRawDataHandler("mapUpdate", (RawData, connection) => { char[] newmap = RawData.ToUTF8String().ToArray(); for (int i = 0; i < 9; i++) { map[i] = int.Parse(newmap[i].ToString()); } string mapString = ""; for (int i = 0; i < 9; i++) { mapString += map[i].ToString(); } if (connection == p1.con) { p1.turn = false; p2.turn = true; p1.con.SendRawData("Turn", RawDataConverter.GetBytes(p1.turn)); p2.con.SendRawData("Turn", RawDataConverter.GetBytes(p2.turn)); p2.con.SendRawData("MapUpdate", Encoding.UTF8.GetBytes(mapString)); } else { p2.turn = false; p1.turn = true; p1.con.SendRawData("Turn", RawDataConverter.GetBytes(p1.turn)); p2.con.SendRawData("Turn", RawDataConverter.GetBytes(p2.turn)); p1.con.SendRawData("MapUpdate", Encoding.UTF8.GetBytes(mapString)); } if (checkGameWin() == 1 && p1.FirstTurn) { p1.con.SendRawData("win", RawDataConverter.GetBytes(true)); p2.con.SendRawData("lose", RawDataConverter.GetBytes(true)); map = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; } else if (checkGameWin() == 2 && p2.FirstTurn) { p1.con.SendRawData("win", RawDataConverter.GetBytes(true)); p2.con.SendRawData("lose", RawDataConverter.GetBytes(true)); map = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; } else if (checkGameWin() == 1 && p2.FirstTurn) { p2.con.SendRawData("win", RawDataConverter.GetBytes(true)); p1.con.SendRawData("lose", RawDataConverter.GetBytes(true)); map = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; } else if (checkGameWin() == 2 && p1.FirstTurn) { p2.con.SendRawData("win", RawDataConverter.GetBytes(true)); p1.con.SendRawData("lose", RawDataConverter.GetBytes(true)); map = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; } } ); }