private void ChancgeCellValue(Cell cell, int value) { cell.Invoke((MethodInvoker) delegate() { cell.SetTextByValue(value); }); }
public void Button_Clicked(object sender, EventArgs e) { Cell clickedCell = sender as Cell; if (clickedCell.GetValue() != 0) { return; } clickedCell.SetTextByValue(2); int isThrereAWinner = Board.IsThrereAWinner(board.GetValues()); if (isThrereAWinner == 2) { MessageBox.Show("You won!"); board.Reset(); return; } else if (isThrereAWinner == 1) { MessageBox.Show("Tie"); board.Reset(); return; } GetBestCellToPlay().SetTextByValue(1); isThrereAWinner = Board.IsThrereAWinner(board.GetValues()); if (isThrereAWinner == 2) { MessageBox.Show("You lost!"); board.Reset(); } else if (isThrereAWinner == 1) { MessageBox.Show("Tie"); board.Reset(); } }
public void Button_Clicked(object sender, EventArgs e) { if (!canPlay) { return; } if (!IsClientConnected()) { MessageBox.Show("Lost connection"); CloseAll(); } Cell clickedCell = sender as Cell; if (clickedCell.GetValue() != 0) { return; } this.board.DisableAll(); SetInfoLabelText("Opponents turn"); clickedCell.SetTextByValue(isO ? 2 : 1); int whoWins = Board.IsThrereAWinner(board.GetValues()); if (whoWins == 2) { byte[] buffer = new byte[2] { 100, (byte)clickedCell.GetIndex() }; this.stream.Write(buffer, 0, 2); MessageBox.Show("You Won!"); Reset(); return; } else if (whoWins == 1) { byte[] buffer = new byte[2] { 99, (byte)clickedCell.GetIndex() }; this.stream.Write(buffer, 0, 2); MessageBox.Show("Tie"); Reset(); return; } byte[] bufferIndex = new byte[2] { (byte)clickedCell.GetIndex(), 0 }; this.stream.Write(bufferIndex, 0, 2); byte[] recivedBuffer = new byte[2]; BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (s, a) => { try { this.stream.Read(recivedBuffer, 0, 2); } catch (Exception) { recivedBuffer[0] = 202; } }; worker.RunWorkerCompleted += (s, a) => { if (recivedBuffer[0] == 202) { MessageBox.Show("Opponenet disconnected, you won!"); CloseAll(); } if (recivedBuffer[0] == 100) { board.GetCellByIndex(recivedBuffer[1]).SetTextByValue(isO ? 1 : 2); MessageBox.Show("You Lost :("); Reset(); return; } else if (recivedBuffer[0] == 99) { board.GetCellByIndex(recivedBuffer[1]).SetTextByValue(isO ? 1 : 2); MessageBox.Show("Tie"); Reset(); return; } else { board.GetCellByIndex(recivedBuffer[0]).SetTextByValue(isO ? 1 : 2); } SetInfoLabelText("Your turn"); this.board.EnableAll(); }; worker.RunWorkerAsync(); }