private void GetPlayerViewImpl(GetPlayerViewReq req, GetPlayerViewResp resp)
        {
            GameViewInfo gv = Server.GameManager.GetPlayerView(req.PlayerId, req.Auth.GetClientCode());

            resp.Index        = gv.PlayerIndex;
            resp.GameState    = gv.GameState.ToString();
            resp.Turn         = gv.Turn;
            resp.PlayerStates = gv.PlayerStates.Select(p => new EnPlayerState(p)).ToList();
            resp.Map          = new EnMapData(gv.Map);
        }
        private void GetPlayerViewImpl(GetPlayerViewReq req, GetPlayerViewResp resp)
        {
            GameViewInfo gv = Server.GameManager.GetPlayerView(req.PlayerId, req.Auth.GetClientCode());

            resp.GameUid                = gv.GameUid.ToString();
            resp.Turn                   = gv.Turn;
            resp.Mode                   = gv.PlayerStates[gv.PlayerIndex].Mode.ToString();
            resp.Map                    = new EnMapData(gv.Map);
            resp.TecmanPosition         = new EnPoint(gv.Map.TecmanPosition);
            resp.GhostPositions         = gv.Map.GhostPosition.Select(p => new EnPoint(p)).ToList();
            resp.PreviousTecmanPosition = new EnPoint(gv.PreviousTecmanPosition);
            resp.PreviousGhostPositions = gv.PreviousGhostPosition.Select(p => new EnPoint(p)).ToList();
        }
Esempio n. 3
0
        public List <Position> PerformMove(GetPlayerViewResp view)
        {
            var map = new Map(view.Map, view.GhostPositions, view.TecmanPosition);

            var resultMoves = new List <Position>();

            for (int i = 0; i < view.GhostPositions.Count(); i++)
            {
                var position = GetNextPosition(view.Map, view.GhostPositions[i], view.TecmanPosition, view.PreviousGhostPositions[i], view.PreviousTecmanPosition, map);
                resultMoves.Add(position);
            }

            return(resultMoves);
        }
Esempio n. 4
0
        public List <Position> PerformMove(GetPlayerViewResp view)
        {
            var map        = new Map(view.Map, view.GhostPositions, view.TecmanPosition);
            var cell       = map.Cells.Where(c => c.Content == Content.Pacman).Single();
            var targetCell = cell.Neighbours.FirstOrDefault(c => c.Content == Content.Cookie);

            if (targetCell == null)
            {
                targetCell = cell.Neighbours.SingleOrDefault(c => c.Content != Content.Ghost);
                // get closes direction to cookie
            }

            var response = new List <Position>();

            response.Add(new Position()
            {
                Col = targetCell.Point.X, Row = targetCell.Point.Y
            });

            return(response);
        }