private void giveTurnTo(ref Player io_Player, ref Player io_Opponent, Move i_Move) { m_GameBoard.MovePawn(i_Move, io_Player); if (io_Player.AteOpponent(i_Move)) { int colIndexToRemove = m_GameBoard.CalculateColIndexOfCellToRemove(i_Move); int rowIndexToRemove = m_GameBoard.CalculateRowIndexOfCellToRemove(i_Move); if (m_GameBoard.m_Grid[rowIndexToRemove, colIndexToRemove].Sign == io_Opponent.PawnSign) { io_Opponent.NumOfPawns--; } else { io_Opponent.NumOfKings--; } m_GameBoard.m_Grid[rowIndexToRemove, colIndexToRemove].PawnInCell = false; if (!io_Player.CanEatMore(m_GameBoard, m_Move.Destination)) { io_Opponent.Turn = true; io_Player.Turn = false; } else { m_Move.Source = m_Move.Destination; m_Move.Destination = destinationInEatingSerie(io_Player, m_Move.Source); if (io_Player.Name == "PC") { ButtonClicked(m_Move.Destination, EventArgs.Empty); } } } else { io_Opponent.Turn = true; io_Player.Turn = false; } }