Ejemplo n.º 1
0
 protected void OnErrorMessage(MessageEventArgs e)
 {
     if (ErrorMessage != null)
     {
         ErrorMessage(this, e);
     }
 }
Ejemplo n.º 2
0
 protected void OnNewMessage(MessageEventArgs e)
 {
     if (NewMessage != null)
     {
         NewMessage(this, e);
     }
 }
Ejemplo n.º 3
0
        protected void GetMessage(object sender, MessageEventArgs e)
        {
            if (!_state.ListenMessage(e.IpAdress))
                return;

            string[] msg = e.Message.Split('_');

            switch (msg[0])
            {
                case "hello":
                    {
                       _state.FirstClick(StateController.State.OnOther, e.IpAdress);
                        OnNewGame(new MessageEventArgs(msg[1]));
                        break;
                    }
                case "ok":
                    {
                        if (msg.Length == 3)
                        {
                            _state.SecondClick(StateController.State.OnThis,e.IpAdress);
                            if (_state.GameState.Check)
                                OnConfirmGame(new MessageEventArgs(msg[2]));

                        }
                    }
                    break;
                case "you":
                    Send("ok");
                    break;
                default:
                    int y, x;
                    bool parseY = int.TryParse(msg[0], out y);
                    bool parseX = int.TryParse(msg[1], out x);
                    if (parseX && parseY && msg.Length == 2)
                    {
                        OnNextTurn(new TurnEventArgs(x, y,false));
                    }

                    break;
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Предложение игры от другого пользователя
        /// </summary>
        private void ProtocolOnNewGame(object sender, MessageEventArgs e)
        {
            bool? res = _view.NewGameProposal(e.Message);

            if (res != null)
            {
                //на случай если с тем же игроком уже играли.
                //завершить игру нельзя т.к. потеряется ip предложившего
                _model.EmptyGame();
                _view.Repaint();

                var selectDagger = (bool) res;
                string strType = (selectDagger) ? "2" : "1";
                _protocol.PostContinue(strType);

                StartGame(selectDagger);
            }
        }
Ejemplo n.º 5
0
 private void ProtocolOnErrorMessage(object o, MessageEventArgs messageEventArgs)
 {
     _protocol.CloseGame();
     _model.EmptyGame();
     _view.Repaint();
     _view.Say(Resources.Game_ProtocolOnErrorMessage_ClientAborted);
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Реакция на приход сообщения ok_ip_{1|2}
        /// </summary>
        private void ProtocolOnConfirmGame(object sender, MessageEventArgs e)
        {
            //текущий клиент ходит крестиком, если другой клиент выбрал нолик т.е. "1"
            bool thisDagger = e.Message == "1";
            StartGame(thisDagger);

            //res == true оппонент играет крестиками, значит текущий игрок ноликами (state == false)
            //res == true оппонент ходит первым, текущий игрок вторым
        }
Ejemplo n.º 7
0
 public WorkerException(MessageEventArgs msg)
     : base(msg.Message)
 {
     Content = msg;
 }
Ejemplo n.º 8
0
 private void WorkerError(object sender, MessageEventArgs e)
 {
     if (_state.GameState.OtherIP != null && _state.GameState.OtherIP == e.IpAdress)
     {
         if (ErrorMessage != null)
             ErrorMessage.Invoke(sender, e);
     }
 }
Ejemplo n.º 9
0
 protected void OnNewGame(MessageEventArgs e)
 {
     Action<object, MessageEventArgs> handler = NewGame;
     if (handler != null) handler(this, e);
 }