Exemple #1
0
        //public Ghost[] ghostsList;

        public GameField()
        {
            pacMan = new PacMan();
            GGhost = new GGhost("G");
            BGhost = new BGhost();
            PGhost = new PGhost();
            RGhost = new RGhost();
            //ghostsList = new Ghost[]
            //{
            //     new Ghost("G"),
            //     new Ghost("R"),
            //     new Ghost("B"),
            //     new Ghost("P")
            //};
        }
Exemple #2
0
        public async Task MoveGhost(GGhost ghost)
        {
            ghost.StartPosGhost(_game.Rows, _game.Colums, _game.Map);
            _game.GhostColor = ghost.GhostColor;
            switch (/*ghost.ChageDiraction(ghost.GetPosNewX, ghost.GetPosNewY, _game.Map)*/ "left")
            {
            case "left":
                if (ghost.CheckMoveLeft(ghost.GetPosNewX, ghost.GetPosNewY, _game.Map))
                {
                    ghost.MoveLeft();
                    if (ghost.GetPosNewY != _game.pacMan.GetPositionNewX || ghost.GetPosNewX != _game.pacMan.GetPositionNewY)
                    {
                        await this.Clients.All.SendAsync("MoveGhost", ghost, _game.GhostColor);

                        //Task mapTask = _position.ChangePosition(_game.Map, ghost.GetPosOldX, ghost.GetPosOldY, ghost.GetPosNewX, ghost.GetPosNewY,
                        //    ghost.LastDot, ghost.GhostColor);
                        _game.Map[ghost.GetPosNewX, ghost.GetPosNewY] = ghost.GhostColor;
                        _game.Map[ghost.GetPosOldX, ghost.GetPosOldY] = ghost.LastDot;
                    }
                    else
                    {
                        _game.Direction = "ghost";
                        Task pacManTask = MovePacMan();
                    }
                }
                break;

            case "right":
                if (ghost.CheckMoveRight(ghost.GetPosNewX, ghost.GetPosNewY, _game.Map))
                {
                    ghost.MoveRight();
                    if (ghost.GetPosNewY != _game.pacMan.GetPositionNewX || ghost.GetPosNewX != _game.pacMan.GetPositionNewY)
                    {
                        await this.Clients.All.SendAsync("MoveGhost", ghost, _game.GhostColor);

                        //_game.Map = _position.ChangePosition(_game.Map, ghost.GetPosOldX, ghost.GetPosOldY, ghost.GetPosNewX, ghost.GetPosNewY,
                        //    ghost.LastDot, ghost.GhostColor);
                        _game.Map[ghost.GetPosNewX, ghost.GetPosNewY] = ghost.GhostColor;
                        _game.Map[ghost.GetPosOldX, ghost.GetPosOldY] = ghost.LastDot;
                    }
                    else
                    {
                        _game.Direction = "ghost";
                        Task pacManTask = MovePacMan();
                    }
                }
                break;

            case "up":
                if (ghost.CheckMoveUP(ghost.GetPosNewX, ghost.GetPosNewY, _game.Map))
                {
                    ghost.MoveUP();
                    if (ghost.GetPosNewY != _game.pacMan.GetPositionNewX || ghost.GetPosNewX != _game.pacMan.GetPositionNewY)
                    {
                        await this.Clients.All.SendAsync("MoveGhost", ghost, _game.GhostColor);

                        //_game.Map = _position.ChangePosition(_game.Map, ghost.GetPosOldX, ghost.GetPosOldY, ghost.GetPosNewX, ghost.GetPosNewY,
                        //    ghost.LastDot, ghost.GhostColor);
                        _game.Map[ghost.GetPosNewX, ghost.GetPosNewY] = ghost.GhostColor;
                        _game.Map[ghost.GetPosOldX, ghost.GetPosOldY] = ghost.LastDot;
                    }
                    else
                    {
                        _game.Direction = "ghost";
                        Task pacManTask = MovePacMan();
                    }
                }
                break;

            case "down":
                if (ghost.CheckMoveDown(ghost.GetPosNewX, ghost.GetPosNewY, _game.Map))
                {
                    ghost.MoveDown();
                    if (ghost.GetPosNewY != _game.pacMan.GetPositionNewX || ghost.GetPosNewX != _game.pacMan.GetPositionNewY)
                    {
                        await this.Clients.All.SendAsync("MoveGhost", ghost, _game.GhostColor);

                        //_game.Map = _position.ChangePosition(_game.Map, ghost.GetPosOldX, ghost.GetPosOldY, ghost.GetPosNewX, ghost.GetPosNewY,
                        //    ghost.LastDot, ghost.GhostColor);
                        _game.Map[ghost.GetPosNewX, ghost.GetPosNewY] = ghost.GhostColor;
                        _game.Map[ghost.GetPosOldX, ghost.GetPosOldY] = ghost.LastDot;
                    }
                    else
                    {
                        _game.Direction = "ghost";
                        Task pacManTask = MovePacMan();
                    }
                }
                break;
            }
        }