public String attackEnemy(CharacterClass.Movement move)
        {
            HeroClass     h      = map.provideHero();
            userTileClass target = new emptyUserTileClass(0, 0);

            switch (move)
            {
            case CharacterClass.Movement.MoveUp:
                target = map.provideMap()[h.getY() - 1, h.getX()];
                break;

            case CharacterClass.Movement.MoveDown:
                target = map.provideMap()[h.getY() + 1, h.getX()];
                break;

            case CharacterClass.Movement.MoveLeft:
                target = map.provideMap()[h.getY(), h.getX() - 1];
                break;

            case CharacterClass.Movement.MoveRight:
                target = map.provideMap()[h.getY(), h.getX() + 1];
                break;
            }

            if (target is EnemyClass)
            {
                h.Attack((CharacterClass)target);
                CharacterClass c_target = (CharacterClass)target;

                if (c_target.died())
                {
                    map.MapRemoval(c_target);
                }

                movementOfEnemies();

                if (!c_target.died())
                {
                    return("1" + c_target.ToString());
                }
                else
                {
                    return("The enemy has died");
                }
            }
            else
            {
                return("0");
            }
        }
        private void createAnEmptyMap()


        {
            for (int i = 0; i < height; ++i)
            {
                for (int j = 0; j < width; ++j)
                {
                    if (i == 0 || i == (height - 1))
                    {
                        map[i, j] = new userObstacleClass(i, j);
                    }
                    else if (j == 0 || j == (width - 1))
                    {
                        map[i, j] = new userObstacleClass(i, j);
                    }
                    else
                    {
                        map[i, j] = new emptyUserTileClass(i, j);
                    }
                }
            }
        }
        public string userAttacksEnemy(CharacterClass h, CharacterClass.Movement dir, userTileClass t)
        {
            userTileClass target = new emptyUserTileClass(0, 0);

            switch (dir)
            {
            case CharacterClass.Movement.MoveUp:
                target = map.provideMap()[h.getY() - 1, h.getX()];
                break;

            case CharacterClass.Movement.MoveDown:
                target = map.provideMap()[h.getY() + 1, h.getX()];
                break;

            case CharacterClass.Movement.MoveLeft:
                target = map.provideMap()[h.getY(), h.getX() - 1];
                break;

            case CharacterClass.Movement.MoveRight:
                target = map.provideMap()[h.getY(), h.getX() + 1];
                break;

            default:
                target = t;
                break;
            }


            if ((h is HeroClass && target is EnemyClass && !h.died()) || (h is GoblinClass && target is HeroClass) || (h is MagesClass && target is CharacterClass))
            {
                h.Attack((CharacterClass)target);
                CharacterClass c_target = (CharacterClass)target;

                if (c_target.died())
                {
                    map.MapRemoval(c_target);
                }


                if (h is HeroClass)
                {
                    enemyAttackedUser();
                    if (!c_target.died())
                    {
                        return("1" + c_target.ToString());
                    }
                    else
                    {
                        return("The enemy is dead");
                    }
                }
                else
                {
                    return("");
                }
            }
            else
            {
                return("0");
            }
        }