private void Temp_Click(object sender, EventArgs e) { int[] point = (int[])((Control)sender).Tag; send("!hit" + point[0] + " " + point[1] + " " + 1); TicTacToeController.hit(point[0], point[1], 1); isMoved = true; txtStatus.Invoke((MethodInvoker) delegate() { txtStatus.Text = "ĐẾN LƯỢT ĐỐI THỦ"; }); if (TicTacToeController.winnerNumber == 1) { send("!1win"); txtStatus.Invoke((MethodInvoker) delegate() { txtStatus.Text = "BẠN ĐÃ THẮNG!"; }); } if (aTimer.Enabled == false) { aTimer.Start(); } labelTime.Invoke((MethodInvoker) delegate() { labelTime.Text = TIME.ToString(); }); refresh(); }
private void Temp_Click(object sender, EventArgs e) { try { int[] point = (int[])((Control)sender).Tag; TicTacToeController.hit(point[0], point[1], 2); //SEND send("!hit" + point[0] + " " + point[1] + " " + 2); isMoved = true; txtStatus.Invoke((MethodInvoker) delegate() { txtStatus.Text = "ĐẾN LƯỢT ĐỐI THỦ"; }); if (TicTacToeController.winnerNumber == 2) { send("!2win"); txtStatus.Invoke((MethodInvoker) delegate() { txtStatus.Text = "BẠN ĐÃ THẮNG!"; }); } labelTime.Invoke((MethodInvoker) delegate() { labelTime.Text = TIME.ToString(); }); if (aTimer.Enabled == false) { aTimer.Start(); } refresh(); } catch (Exception e1) { MessageBox.Show("Đánh với ma à?", "Lỗi!", MessageBoxButtons.OK, MessageBoxIcon.Error); connected = false; } }
private void Form1_Load(object sender, EventArgs e) { //newDesk(); //refresh(); CreateRoomForm createRoomForm = new CreateRoomForm(); if (createRoomForm.ShowDialog() == DialogResult.OK) { TicTacToeController.DESK_SIZE = createRoomForm.deskSize; labelDeskSize.Text = TicTacToeController.DESK_SIZE.ToString(); PORT = (new Random()).Next(1, 1000); listener = new TcpListener(address, PORT); } //newDesk(); labelDeskSize.Text = TicTacToeController.DESK_SIZE.ToString(); labelPort.Text = PORT.ToString(); Thread thread = new Thread(delegate() { listener.Start(); Console.WriteLine("Server started on " + listener.LocalEndpoint); Console.WriteLine("Waiting for a connection..."); txtStatus.Invoke((MethodInvoker) delegate() { txtStatus.Text = "ĐANG CHỜ ĐỢI 1 ĐỐI THỦ XỨNG TẦM!"; }); Socket socket = listener.AcceptSocket(); Console.WriteLine("Connection received from " + socket.RemoteEndPoint); txtStatus.Invoke((MethodInvoker) delegate() { txtStatus.Text = "ĐÃ TÌM THẤY ĐỐI THỦ"; }); connected = true; listener.Stop(); flowLayoutPanel1.Invoke((MethodInvoker) delegate() { newDesk(); }); stream = new NetworkStream(socket); send(TicTacToeController.DESK_SIZE.ToString()); var reader = new StreamReader(stream); while (true) { // 2. receive byte[] buffer = new byte[socket.ReceiveBufferSize]; int bytesRead = stream.Read(buffer, 0, socket.ReceiveBufferSize); string receivedString = Encoding.UTF8.GetString(buffer, 0, bytesRead); Console.WriteLine(receivedString); if (receivedString.Contains("!hit")) { receivedString = receivedString.Replace("!hit", ""); string[] rs = receivedString.Split(' '); int i = Convert.ToInt32(rs[0]); int j = Convert.ToInt32(rs[1]); int playerNumber = Convert.ToInt32(rs[2]); TicTacToeController.hit(i, j, playerNumber); isMoved = false; txtStatus.Invoke((MethodInvoker) delegate() { txtStatus.Text = "ĐẾN LƯỢT BẠN"; }); labelTime.Invoke((MethodInvoker) delegate() { labelTime.Text = TIME.ToString(); }); aTimer.Start(); flowLayoutPanel1.Invoke((MethodInvoker) delegate() { refresh(); }); } else if (receivedString.Equals("!1win")) { //txtStatus.Invoke((MethodInvoker)delegate () { txtStatus.Text = "BẠN ĐÃ THUA!"; }); //TicTacToeController.winnerNumber = 1; flowLayoutPanel1.Invoke((MethodInvoker) delegate() { refresh(); }); } } // 4. close stream.Close(); socket.Close(); listener.Stop(); ///////////////////////////////////// //Dong socket }); thread.Start(); }
private void Form1_Load(object sender, EventArgs e) { // refresh(); bool joinSuccessfully = false; do { JoinRoomForm joinRoomForm = new JoinRoomForm(); if (joinRoomForm.ShowDialog() == DialogResult.OK) { PORT = joinRoomForm.PORT; try { client.Connect("127.0.0.1", PORT); joinSuccessfully = true; } catch (Exception e1) { joinSuccessfully = false; MessageBox.Show("Không thể tham gia bàn!\n + Bàn đang chơi\n + Bàn không tồn tại", "Thất bại", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } while (!joinSuccessfully); Thread thread = new Thread(delegate() { // 1. connect stream = client.GetStream(); Console.WriteLine("Đã kết nối"); //GET DESK SIZE byte[] buffer = new byte[client.ReceiveBufferSize]; int bytesRead = stream.Read(buffer, 0, client.ReceiveBufferSize); string receivedString = Encoding.UTF8.GetString(buffer, 0, bytesRead); TicTacToeController.DESK_SIZE = Convert.ToInt32(receivedString); groupBox2.Invoke((MethodInvoker) delegate() { labelDeskSize.Text = TicTacToeController.DESK_SIZE.ToString(); labelPort.Text = PORT.ToString(); }); //NEW GAME flowLayoutPanel1.Invoke((MethodInvoker) delegate() { newDesk(); }); while (true) { buffer = new byte[client.ReceiveBufferSize]; bytesRead = stream.Read(buffer, 0, client.ReceiveBufferSize); receivedString = Encoding.UTF8.GetString(buffer, 0, bytesRead); if (receivedString.Contains("!hit")) { receivedString = receivedString.Replace("!hit", ""); Console.WriteLine(receivedString); string[] rs = receivedString.Split(' '); int i = Convert.ToInt32(rs[0]); int j = Convert.ToInt32(rs[1]); int playerNumber = Convert.ToInt32(rs[2]); TicTacToeController.hit(i, j, playerNumber); isMoved = false; txtStatus.Invoke((MethodInvoker) delegate() { txtStatus.Text = "ĐẾN LƯỢT BẠN"; }); if (aTimer.Enabled == false) { aTimer.Start(); } labelTime.Invoke((MethodInvoker) delegate() { labelTime.Text = TIME.ToString(); }); flowLayoutPanel1.Invoke((MethodInvoker) delegate() { refresh(); }); } else if (receivedString.Equals("!endgame")) { if (isMoved) { TicTacToeController.winnerNumber = 1; txtStatus.Invoke((MethodInvoker) delegate() { txtStatus.Text = "HẾT GIỜ! BẠN ĐÃ THAWSNG!"; }); } else { TicTacToeController.winnerNumber = 2; txtStatus.Invoke((MethodInvoker) delegate() { txtStatus.Text = "HẾT GIỜ! BẠN ĐÃ THUA!"; }); } this.Invoke((MethodInvoker) delegate() { this.Enabled = false; }); endGame = true; this.Invoke((MethodInvoker) delegate() { this.Enabled = false; }); flowLayoutPanel1.Invoke((MethodInvoker) delegate() { refresh(); }); labelTime.Invoke((MethodInvoker) delegate() { labelTime.Text = TIME.ToString(); }); } else if (receivedString.Equals("!newgame")) { newGame = true; this.Invoke((MethodInvoker) delegate() { this.Enabled = false; }); endGame = true; flowLayoutPanel1.Invoke((MethodInvoker) delegate() { refresh(); }); labelTime.Invoke((MethodInvoker) delegate() { labelTime.Text = TIME.ToString(); }); } else if (receivedString.Equals("!2win")) { txtStatus.Invoke((MethodInvoker) delegate() { txtStatus.Text = "BẠN ĐÃ THUA!"; }); this.Invoke((MethodInvoker) delegate() { this.Enabled = false; }); endGame = true; flowLayoutPanel1.Invoke((MethodInvoker) delegate() { refresh(); }); labelTime.Invoke((MethodInvoker) delegate() { labelTime.Text = TIME.ToString(); }); } } // 4. close stream.Close(); client.Close(); //Client nhan message tu server //size = sck.Receive(data); //} /////////////////////////////////////// }); thread.Start(); }