Задать вопрос
  • Как улучшить код и что в нём может быть не так?

    Kentavr16
    @Kentavr16
    long cold winter
    сугубо по коду -
    1) вынести предикаты в отдельные функции для улучшения читаемости.
    2) вообще код разбить на функции. Если только начинаешь учиться - перенеси все это в классы. Создай класс игрока, поля и тд. Заодно ознакомишься с SOLID (уточнения по мелочам и правда лучше к чату гпт)
    3) если правда учишься и САМ написал код - переведи его в typescript. Это стандарт индустрии, мастхев.
    4) if (confirm("Хотите сыграть еще раз?"))
    вынести в отдельные переменные. Учиться не оставлять в коде прописаных от руки строк.

    Основа основ - переписать это на мелкие ф-кции с нормальными названиями и четким назначением, чтобы код стал приятно читаем.

    пока у меня все )
    Ответ написан
    Комментировать
  • Обьясните в чём суть инкапсуляции?

    Инкапсуляция защищает не от хакеров, а от неправильного использования объектов.
    Как пример - у тебя может быть класс "Заказ" и у него может быть какой-то статус (оплачен/ждёт оплаты/отменён итд).
    При этом у тебя могут быть правила типа: уже оплаченный заказ не может стать вдруг неоплаченным, а отменённый заказ нельзя взять обратно в работу.
    Тогда логично будет сделать поле статуса приватным (не доступным для изменения извне напрямую), а менять его только через методы, где будет происходить вся валидация.
    (В некоторых языках такие правила принято описывать на уровне типов, чтобы даже валидаций никаких было делать не нужно)

    Приватные поля объекта - это его состояние.
    Методы объекта - это способы его использования.

    Если у тебя в объекте появляется поле x и методы getX / setX (или авто геттеры/сеттеры в C#), то значит, что у тебя и нет явных причин делать это поле приватным, кроме соблюдения общепринятых соглашений.
    Ответ написан
    15 комментариев