예제 #1
0
        public bool PerformMove()
        {
            var req = new PerformMoveReq
            {
                Auth = new ReqAuth
                {
                    TeamName       = Settings.TeamName,
                    AuthCode       = Settings.AuthCode,
                    ClientName     = Settings.UserName,
                    SequenceNumber = Settings.SequenceNumber,
                    SessionId      = Settings.SessionId
                },
                PlayerId  = Settings.PlayerId,
                Positions = GetTurn().Select(p => new EnPoint(p)).ToList()
            };

            var performMoveResp = Program.ServiceCallInvoker.InvokeAsync <PerformMoveReq, PerformMoveResp>(Settings.ServerUrl.TrimEnd('/') + "/json/PerformMove", req).Result;

            Settings.SequenceNumber++;

            if (performMoveResp.IsOk())
            {
                return(true);
            }
            return(false);
        }
        private async Task <PerformMoveResp> PerformMove()
        {
            string[]       entries   = Positions.Split(',');
            int            count     = entries.Length / 2;
            List <EnPoint> positions = new List <EnPoint>(count);

            for (int i = 0; i < count; i++)
            {
                positions.Add(new EnPoint()
                {
                    Row = int.Parse(entries[i * 2]),
                    Col = int.Parse(entries[i * 2 + 1])
                });
            }

            var performMoveReq = new PerformMoveReq
            {
                Auth = new ReqAuth
                {
                    TeamName       = TeamName,
                    AuthCode       = AuthCode,
                    ClientName     = Username,
                    SequenceNumber = SequenceNumber,
                    SessionId      = SessionId
                },

                PlayerId  = PlayerId,
                Positions = positions
            };

            var performMoveResp = await ServiceCallInvoker.InvokeAsync <PerformMoveReq, PerformMoveResp>(ServiceUrl.TrimEnd('/') + "/json/PerformMove", performMoveReq);

            CommonDataManager.SequenceNumber++;

            return(performMoveResp);
        }
 public PerformMoveResp PerformMove(PerformMoveReq req)
 {
     return(HandleServiceCall(req, new PerformMoveResp(), PerformMoveImpl));
 }
 private void PerformMoveImpl(PerformMoveReq req, PerformMoveResp resp)
 {
     Point[] positions = (req.Positions != null) ? req.Positions.Select(p => p?.ToPoint() ?? new Point(-1, -1)).ToArray() : null;
     Server.GameManager.PerformMove(req.PlayerId, positions, req.Auth.GetClientCode());
 }
예제 #5
0
 private void PerformMoveImpl(PerformMoveReq req, PerformMoveResp resp)
 {
     Server.GameManager.PerformMove(req.PlayerId, req.Position.ToPoint(), req.Auth.GetClientCode());
 }