/// <summary>
        /// кто-то выиграл игру
        /// </summary>
        /// <param name="line">Line.</param>
        void WinGame(List <int> line)
        {
            StopGameMsg   m = new StopGameMsg();
            StopGameParam p = new StopGameParam();

            p.totalPlay = ++_countPlay;
            if (_allCells [line [0]].symbol == CellSymbol.X)
            {
                _countWin++;
                p.win = true;
            }
            else
            {
                _countLose++;
                p.win = false;
            }
            p.totalX = _countWin;
            p.totalO = _countLose;
            p.line   = line.ToArray();
            p.draw   = false;

            StopGame(p);
            m.param     = p;
            m.param.win = !p.win;
            _server.SendMsg(m);
            Invoke("StartGame", 3f);
        }
 /// <summary>
 /// игра окончена
 /// </summary>
 /// <param name="p">параметры </param>
 void StopGame(StopGameParam p)
 {
     _playGame = false;
     if (p.draw)
     {
         _ui.ShowMsg("Ничья");
     }
     else if (p.win)
     {
         _ui.ShowMsg("Вы выиграли");
     }
     else
     {
         _ui.ShowMsg("Вы проиграли");
     }
     if (p.line != null)
     {
         for (int i = 0; i < p.line.Length; i++)
         {
             _allCells [p.line [i]].Highlight(true);
         }
     }
     _ui.CountLevel(p.totalPlay);
     _ui.CountX(p.totalX);
     _ui.CountO(p.totalO);
 }
        /// <summary>
        /// игра закончилась ничьей
        /// </summary>
        void DrawGame()
        {
            StopGameMsg   m = new StopGameMsg();
            StopGameParam p = new StopGameParam();

            p.totalPlay = ++_countPlay;
            p.totalX    = _countWin;
            p.totalO    = _countLose;
            p.draw      = true;
            StopGame(p);
            m.param = p;
            _server.SendMsg(m);
            Invoke("StartGame", 3f);
        }