• Какой хостинг взять для сайта майнкрафт?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Бесплатный хостинг брать точно не стоит. Там обычно проблем больше, чем пользы.

    Из дешевых, попробуйте набрать в поисковике "хостинг за 12 рублей". Довольно неплохой (со словом food в названии), должен покрыть ваши нужды. Это уже НЕ бесплатно, что важно. Это значит, что то, что заявлено, должно, скорее всего, работать без проблем в будущем. Конечно, по мере роста амбиций, возможно, потребуется перейти на другой тариф, но тоже не слишком дорогой.

    В остальном дело не в хостинге, а в умении настраивать лаунчер и дружить его с сайтом. Также настраивать БД на сайте, делать сам сайт и т.д.
    Ответ написан
    Комментировать
  • Есть ли сервис по мониторингу статусов пользователя whatsapp?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Теоретически такой сервис легко создать, так что потенциально точно есть.
    Главный встречный вопрос: нафига?
    Ответ написан
    Комментировать
  • Как считает цикл for?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Для начала нужно оформить код так, чтобы его было удобно читать. Это само по себе позволит лучше понять, что происходит. Вообще аккуратность и внимательность способствуют пониманию и уменьшают ошибки, это как бы очевидно.

    Далее следует уделить внимание логике работы программы, то есть ее описанию. Сейчас описание у вас такое, что глаза можно сломать, пытаясь понять, что же должна делать программа. Нужно подтянуть оформление вопроса в плане русского языка, пунктуации, падежей. В самой программе переменные должны иметь говорящие названия. То есть не qwe, а осмысленное имя, про start и out нужны комментарии, что они делают и т.д.

    Если это не поможет, то можно на выбор:
    1. Заняться отладкой программы, то есть пошагово смотреть, как программа выполняется, и соотносить это с логикой её работы.
    2. Попытаться доказать работу программы чисто математически, как учили в школе. То есть из-за использования циклов и рекурсии понадобится применить метод математической индукции.
    Ответ написан
    Комментировать
  • Пропадают ли метаданные фотографий, если скачать их из мессенджера?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Обычно да, пропадают, потому что это разумно, особенно в свете всяких GDPR, да и по моему опыту это так, но точную гарантию может дать только соответствующий мессенджер или сайт. Нельзя сказать за всех сразу.

    Чисто теоретически, если вы отправляете фото с метаданными в Интернет, то они могут как остаться и всплыть где-то, так и потеряться. В этом смысле однозначно ответить на вопрос нельзя.
    Ответ написан
    Комментировать
  • Снижает ли производительность множество addEventListner?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если в большинстве случаев стоит не очень сложная проверка, то нагрузки не будет. Точнее, она будет незначительной. Собственно, такая проверка и нужна, чтобы не было нагрузки от (холостой) работы модуля (к примеру, перерисовывания, что и так нормально нарисовано).

    Если у вас в каждом модуле одним и те же проверки, и они довольно сложные (например, поиск, сортировка), то стоит задуматься о смене архитектуры.

    Но всё равно, конечное решение (ответ на вопрос) зависит от текущих замеров производительности. Даже если убрав все модули, вы снизите нагрузку в 1000 раз, то есть время работы всех этих обработчиков упадёт с 1 мс до 1 нс, то оно того не стоит. А вот если время лага уменьшится всего лишь в 10 раз, то есть с 1 с до 100 мс, то это уже полезно.

    Попробуйте воспользоваться функцией:
    performance.now()
    Для измерения производительности. Можно делать замеры до и после работы кода, которого вы считаете достаточно тяжелым, и потом считать разницу.
    Ответ написан
    1 комментарий
  • Собственные проекты. Стоит ли доводить до идеала?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Не совсем понятно, какую цель вы преследуете. Исходя из вашего слова "профитнее" (т.е. по-русски "выгоднее") её можно трактовать по-разному.

    1) Если вы рассматриваете свои игры, как дополнительные пункты в резюме разработчика игр, и выгода для вас означает профессиональный рост и потенциальную зарплату у работодателя, то нужно не вылизывать игру до идеала, а повышать KPI. То есть нужно обращать на те моменты, которые приносят прибыль, а которые не приносят - забить. Однако к программированию это имеет мало отношения, это больше маркетинг, психология, геймдизайн, и вот это вот всё. Одному человеку это, как правило, не под силу. Но если вдруг хотя бы одна из ваших игр будет иметь коммерческий успех, пусть даже вы будете лишь одним из ее разработчиков внутри небольшой команды, то это считается серьезным достижением при устройстве на работу и имеет реально солидный вес, какую бы более узкую специальность вы ни выбрали.

    2) Если вы рассматриваете свои игры, как дополнительные пункты в резюме программиста, то по сути и не важно, игры это или что-то другое. Здесь будет играть роль ваш опыт программирования (опять же просто количество лет), плюс опыт работы в команде. Чуть бОльшую роль имеют софт скилы при составлении резюме и прохождении собеседования. В остальном идеи из предыдущего пункта тоже применимы - то есть количество достойных проектов, считающихся достижениями, которые не стыдно показать.

    3) Если выгода для вас означает собственно продажа своих игр, то эта цель сильно пересекается и первым пунктом, с той лишь разницей, что вы максимизируете прибыль (причем, для себя). Аналогично первому пункту, это сложная тема, и нужно уметь во многое, что одиночке не под силу. А если вы хотите свою команду (а не вхождение в чужую), то также нужен солидный бюджет. Программирования здесь будет еще меньше, точнее лично у вас на это просто не будет времени. Но этому пункту противоречат ваши слова "для саморазвития и дропа на гитхаб", что как бы намекает, что деньги непосредственно с игр вам не нужны.

    4) Наконец, если вы хотите заниматься буквально саморазвитием, то есть повышать качество кода и снижать количество багов в нем, то нужно заморочиться конкретно на этом. Опять же, игры здесь ни при чем. Нужно наводить порядок в голове, приучать себя к хорошему оформлению кода и т.д. Опыт, конечно, тоже идет в плюс, но тупо опыта не достаточно. А точных рецептов здесь нет. Начать можно даже с гугления наивной фразы "как писать код без ошибок", а дальше как пойдет, это долгий путь. Но сразу скажу, что это имеет мало отношения к коммерческой выгоде. То есть даже если вы участвуете в ААА-проекте, где отсутствие багов критично, никто не пустит ваш код в продакшн сразу после написания. Ошибаются все, даже профи.

    P.S. На уровне джуна можно быть только помощником. То есть хорошо зная лишь теорию, получать замечания от более опытных товарищей, которые отвечают за успех. Хотя деление это довольно условно. Пет-проекты могут как способствовать росту, так и просто отнимать время, смотря что и как качать.
    Ответ написан
    Комментировать
  • Как правильно написать это регулярное выражение?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Всё меняет. Легко проверить в консоли:
    5dcff51033564306707279.png
    Возможно, у тебя помимо (или вместо) \n есть также \r
    Попробуй так:
    str.replace(/@tag(.|\n|\r)*?@tag/gm, 'replace')
    Или так (универсально):
    str.replace(/@tag[\s\S]*?@tag/gm, 'replace');
    Ответ написан
    1 комментарий
  • Как лучше всего строить сетки и клеточные автоматы?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Canvas, например.

    Рисовать игру типа жизнь, да и вообще любую игру, в виде таблицы с помощью тега <table> - это очень странное решение.
    Ответ написан
    Комментировать
  • Увеличил кеш браузера хром в ярлыке --disk-cache-size-4294967296, как теперь протестировать, вступило ли в силу?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вылет отдельных вкладок разве связан с дисковым кешем?

    Скорее всего, к концу рабочего дня отдельные вкладки слишком долго висят открытыми, поэтому и вылетают.

    Ведь каждая вкладка, если не ошибаюсь, может скушать максимум 2 Гб оперативки, после чего крашится. И не важно, сколько всего оперативки на компьютере и какая версия хрома, - ограничение именно на вкладку. И вряд ли это можно изменить настройкой.
    Ответ написан
  • Как реализовать многопользовательскую игру?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Проблемы начинаются не только при читерстве, но и банально при обрыве связи с сервером. Например, когда у пользователя пропадает Интернет. И если вы разрешаете игроку перемещаться локально, отсылая координаты, то с точки зрения сервера игрок исчезнет на некоторое время, а потом появится в других координатах, далеких от тех, где он был.

    На самом деле здесь есть много нюансов, поэтому универсального рецепта нет. Зависит от вашей игры. Например, если игра очень динамична, то на клиенте должно быть обязательно сглаживание. Ведь будет убого выглядеть, если после нажатия W пройдет 200мс, и только затем квадратик сдвинется. Нужно, чтобы он двигался сразу, а уж потом, если вдруг это оказалось неправомерным, сервер может прислать новые координаты и оттелепортировать игрока назад. И наоборот, если игра медленная и неповоротливая (например, пошаговая), то выгоднее перепроверять каждый чих пользователя перед тем, как отобразить действие на экране у него и всех остальных.

    Есть даже гибридные, так называемые арбитражные системы, когда клиенты проверяют клиентов и голосуют за то, что кто-то читер, а сервер ни при чем, он просто реагирует на рассинхрон, подтвержденный статистически. Но это сложно сделать, и полезно только для высоконагруженных серверов, чтобы их разгрузить.

    В вашем случае, я так понимаю, высокая нагрузка не планируется. Так что можно поступать также, как и всегда при разработке сайтов. А именно - никогда не доверять клиенту. Он может послать какие угодно данные. И нужно их проверять и перепроверять постоянно, чтобы избиваться как от читерства, так и от банальных ошибок в коде на клиенте.

    Что касается того, что игрок может у себя поменять какие-то данные, приходящие от сервера, то это не должно касаться других игроков. Да, игрок сможет нарисовать себе миллион долларов и переместить себя за стену, изменив координаты локально. Но на сервере это должно игнорироваться. То есть сервер должен посчитать, что игрок не мог туда попасть, и блокировать все попытки действий в той области. Как посчитать - это уже зависит от игры, от логики геймплея. Например, у игрока было слишком мало времени, чтобы преодолеть такое расстояние (считаем путь обхода стены).

    Если говорить про чисто техническую защиту от изменения кода на клиенет, то лучшее, что вы можете сделать, это обернуть весь код в анонимную функцию. Она будет как бы глобальным пространством для других функций и переменных, но через консоль к ней нельзя будет получить доступ.
    (function() {
      let x = 50;
      let y = 50;
      // и т.д. всё, как обычно, только в обертке
    })();

    Однако настоящих прошареных хакеров такой метод не остановит, конечно. Большинство пользователей - да, но единицы смогут это обойти, меняя непосредственно сетевые пакеты, приходящие в браузер. Именно поэтому нужно валидизировать все поступающие на сервер данные, чтобы их нельзя было подделать.
    Ответ написан
    Комментировать
  • Как парсить данные с сайта с бесконечной прокруткой?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Устроить этому сайту реверс инжиниринг, а затем сделать хороший инжект в функцию бесконечной загрузки.

    Это довольно сложная задача. Так что полный ответ будет работой.
    Ответ написан
    3 комментария
  • Как правильно организовать взаимодействие между скриптами?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Привет, товарищ!
    Хотел сказать, что мне ник твой не понравился. Стремный какой-то.
    Всё остальное на высоте. Реально, классный вопрос задал.
    Я подписался на тебя.
    Ответ написан
  • Как округлить число до десятой доли?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Math.floor(2.453690 * 10) / 10
    Math.floor(2.99 * 10) / 10
    //Соответственно для вывода
    (Math.floor(2.99 * 10) / 10).toFixed(1)
    Ответ написан
  • Как использовать webP на iOS устройствах?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Зачем?
    Слишком большой процент устройств не поддерживает webp.
    Так что рано ещё активно переключаться на эту технологию.
    Ответ написан
    Комментировать
  • Отслеживание количества table row (ряда таблиц) на странице. Работа с куки?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Лучше генерировать таблицу на сервере, на случай отключенного у пользователя JS. Даже если кнопки не будут работать, т.к. походу жестко завязаны на JS, то хоть инфа будет отображена для чтения, а не пустая страница.

    Получить все строки можно чем-то вроде этого:
    var rows = document.querySelectorAll('tbody tr');

    Далее можно обработать по-всякому. Желательно, конечно, чтобы смысловые ячейки имели какие-то знаки - id или class, иначе придется по номеру считать:
    rows.forEach(tr=>{
      let td2 = tr.children[1];
      let td6 = tr.children[5];
      let button = td6.querySelector('button');
      console.log(td2.innerText, button); //В цикле выводим всё, что нужно
    });

    Далее там же, в конце forEach добавьте вашу логику, ветвление, работу с куки и пр.
    spoiler
    rows.forEach(tr=>{
      let td2 = tr.children[1];
      let td6 = tr.children[5];
      let button = td6.querySelector('button');
      button.addEventListener("click", e=>{ //Например, обработчик кликов
        console.log('Кнопка ' + td2.innerText + ' нажата!');
        // ...............
      });
    });
    Ответ написан
  • Какие минимальные требования или действия нужно выполнить, что бы Google проиндексировал сайт на Github pages?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Чтобы бот пришел, нужно либо самому непосредственно рассказать гуглу о существовании вашего сайта, либо разместить ссылку на каком-нибудь индексирумемом ресурсе (то есть практически на любом) и просто ждать.

    Важно, чтобы ваш контент был интересным и уникальным, хорошо оформлен в удобоваримом виде. Короче, думайте о читателях в первую очередь, на это направлены все поисковые оптимизации. Остальное (что не важно читателям) - не надежно.
    Ответ написан
    Комментировать
  • Как исправить, что бы персонаж в Unity не улетал в "космос" при прыжке у стены?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Код:
    isGrounded = Physics2D.OverlapCircle(groundCheck.position, checkRadius, whatIsGround);

    Не работает, потому что сразу же после этого вызывается функция CheckGround(), в которой переменная isGrounded снова перезаписывается:
    Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position, 0.6F);
    isGrounded = colliders.Length > 1;

    Поэтому первую строчку вообще не будем рассматривать, эта пустышка, которая ничего не делает, только процессор нагружает лишний раз. Разберем, что же происходит в последних строках.
    Вы считаете количество коллайдеров в круговой области. И если оно больше 1, то isGrounded будет true.
    Видимо, около стены вы также считаете стену. Поэтому наличие стены делает isGrounded = true.
    В чем здесь логика, вам виднее.
    Исправляйте. :)
    Ответ написан
  • Как определить что кнопка мыши зажата?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    А как вы гуглите?
    spoiler
    Ради интереса попробовал ввести в гугл запрос:
    unity mouse is pressed
    И всё нашлось.
    У вас какие-то другие поисковые запросы?

    Даже если бы не было функции GetMouseButton, чтобы определить, что кнопка зажата, это было бы легко реализовать самому через функции GetMouseButtonDown и GetMouseButtonUp, плюс переменная, в которой можно хранить текущее состояние.
    Ответ написан
    3 комментария
  • Как посчитать количество комбинаций в диапазоне ip?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Формулу с вашего листочка. Или вам принципиальна формула в одну строку?
    Хотя, вы же хотите считать сумму диапазонов, небось произвольных (без маски), куда уж там в одну строку.

    В общем, если есть алгоритм, значит можно сделать калькулятор. А будет ли там 10 строчек кода или 200 - не так важно.
    Ответ написан
    Комментировать