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(); }
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); }
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); }