• Объясните, почему так работает код?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    потому, что воспринимает как десятичную точку
    2000.123

    Вот так, например, сработает: 2000.0.toLocaleString() — тут уже понятно, что не десятичная точка. Но я — за скобки!
    Ответ написан
    2 комментария
  • Какие библиотеки и как использовались для создания Minecraft Bedrock?

    @theDmitr
    Minecraft Java Edition имеет собственный не OpenSource движок.
    Для взаимодействия с графикой используется lwjgl (Light Weight Java Game Library). Сам пробовал с ней работать, писать собственный движок, библиотека не очень сложная, по сути предоставляет интерфейс к C-шным функциям OpenGL, Vulkan и т. д.
    Если интересно, то обязательно попробуйте, не будет лишним для опыта.

    Чтобы дать возможность людям создавать свои расширения для игры (моды), был создан Forge API, скачать его на любую доступную версию можно с официального сайта forge - https://files.minecraftforge.net.
    До версии 1.7.10 эти jar-ники назывались SRC, позже были переименованы в MDK (Minecraft Development Kit).

    Что касательно Bedrock Edition, движок был полностью перенесён с Java на C++, а в качестве библиотеки рендера теперь используется DirectX (Так же реализована поддержка OpenGL и его можно выбрать в качестве отрисовщика).

    Кратко: Java Edition имеет собственный движок на Java, рисует с помощью lwjgl (OpenGL); Bedrock Edition имеет тот же движок с минимальными отличиями, но на C++, рисует с помощью DirectX и если захочется, то OpenGL.
    Ответ написан
    5 комментариев
  • Почему на leetcode различается скорость одного и того же кода?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Там скорость выполнения зависит от фазы луны. Забей.
    Ответ написан
    Комментировать
  • Как посмотреть массив до применения map?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    И что тут особенного? Объекты в JS копируются по ссылке.
    const a1 = [{ "id": "1" }, { "id": "2" }, { "id": "3" }];
    Здесь создаётся массив, в котором три ссылки на объекты.

    let a3 = [...a1];
    Здесь производится декомпозиция массива и из этих трёх ссылок формируется новый массив. Сами ссылки при этом остаются неизменными.

    let a4 = a1.slice();
    Опять таки, ссылки не меняются и ведут на те же самые объекты.

    const a2 = a1.map(i => {
        i["name"] = "Name" + i["id"];
        return i;
    });
    Здесь в объекты по ссылкам добавляется новое поле и как результат каллбэка возвращается ссылка на объект. Соответственно в a2 те же самые ссылки.

    В результате имеем четыре массива, в которых ссылки на одни и те же объекты.

    Чтобы не менять исходные объекты, надо из них строить новые:
    const a2 = a1.map((o) => ({ ...o, name: `Name${o['id']}` }));
    Ответ написан
    1 комментарий
  • Что за непонятные html-файлы?

    nazares
    @nazares
    Software Engineer
    Ну вангую что у тебя там в корне какие то файлы или пути с кириллическими названиями Винда не сильно любит UTF а темболее mingw
    Ответ написан
    1 комментарий