Задать вопрос
  • Как переместить элементы с одинаковыми классами?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Можно с помощью JS добавить id элементам.

    Например, как-то так:
    document.querySelectorAll('div.a1').forEach(e => {
      e.id = "a1_" + (window.new_id ? ++new_id : new_id = 1);
    });

    Но это лишь пример. Лучшая оптимизация зависит от конкретного сайта и от нюансов конкретной задачи. Хотя, если там 5-10 элементов, можно и забить на оптимизацию, лишь бы не setInterval :)
    Ответ написан
  • Сколько человек может быть на сервере в игре?

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

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

    В EVE применяется решение, при котором время игры замедляется, если сервера не справляются. То есть в теории ограничений нет для этой игры.

    Условно можно считать, что 1 сервер простенькой игрульки тянет около 1000 человек. Но повторюсь, зависит от игры. И если у вас там супер умные NPC с продвинутым ИИ, который кушает много ресурсов, или если у вас там супер реалистичный обсчёт физики (на сервере), то лимит может быть и в 4-5 игроков, например.
    Ответ написан
    1 комментарий
  • Давали ли Вы копию своих документов в компании, в которую пришли работать?

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

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

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

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Копипастом.

    То есть выделяете диапазон -> правой кнопкой по нему -> Копировать.
    Затем вставляете, куда хотите: либо в другую таблицу, либо вообще в текстовый редактор.
    Ответ написан
  • Как настроить взаимообратную связть между листами таблицы?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Используйте функцию FILTER.

    Допустим данные у вас в столбце A, а их статус в столбце B и может быть 0 или 1. Тогда формула будет такая:
    =FILTER('Лист1'!A1:B999; 'Лист1'!B1:B999 = 1)

    Меняя статус, вы меняете количество отображаемых строк на другом листе. А функциональная часть, которая, к примеру, находится в столбце C на другом листе, может спокойно работать с A и B через относительные ссылки на них.
    Ответ написан
    Комментировать
  • Медленно загружаются файлы на сервисы Google (Google Drive, YouTube)?

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

    Причина может быть любая.

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

    Другие примеры сами можете придумать. Просто причин огромное количество. Не вижу смысла гадать. Это может быть и браузер, и его расширения (vpn) или настройки, и провайдер, и вирус, и MITM, и что угодно ещё. Не нужно обращаться к гадалкам и телепатам. Исследуйте - и найдёте причину. Дорогу осилит идущий.
    Ответ написан
    Комментировать
  • Как понять,какие данные считывает конкретный сайт при регистрации либо логине либо любом другом взаимодействии с ним?

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

    Вы можете проанализировать только отправленные заголовки и загруженные скрипты. Нужно знать хотя бы JavaScript, чтобы разобраться, какую именно информацию собирают скрипты.

    Однако понять логику автоблокировки будет сложнее, потому что вся логика происходит на сервере, к коду которого вы доступа не имеете. Логика может быть сложной, например анализ системных шрифтов и отслеживание поведения на сайте, включая перемещения курсора мыши. Но также логика может быть и простой, как если отпечаток браузера совпадает для двух клиентов, то им обоим прилетает бан.
    Ответ написан
    2 комментария
  • Стоит ли ставить 64-bit win-7?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В общем и целом - нет. Лучше х32.

    Но некоторые программы требуют x64 (популярные к ним не относятся). Так что если вы собираетесь такие использовать, то у вас просто нет выбора.
    Ответ написан
    1 комментарий
  • Где найти кликер для браузера, чтобы он вводил ещё данные с клавиатуры?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Подойдёт кликер не для браузера.

    Возьмите любой достаточно сложный кликер (гугл в помощь) и настройте (или запрограммируйте) его для своих нужд. В качестве примера пусть будет AutoIt. А так в инете полно других под любой вкус и цвет.

    Дорогу осилит идущий.
    Ответ написан
  • Зачем нужны опережающие и ретроспективные проверки?

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

    Повторения - худшее из того, что мешает искать подстроки. В вашем примере нет повторений, то есть E не может быть цифрой, и наоборот.

    Однако что если вам нужно найти все цифры между двумя E?
    Вот такие:
    E123ExxxE456E789E

    По вашей логике нужно выражение: /E(\d+)E/
    И да, оно действительно найдёт 123 и 456 (см. ссылку), но на 789 оно сломается, потому что там E входит как бы сразу в две подстроки. В этом случае и нужен позитивный просмотр вперёд. Мы как бы подсматриваем, что там впереди, но не захватываем, поэтому поиск следующей подстроки начинается раньше.
    Для такой задачи решением будет: /E(\d+)(?=E)/
    Ответ написан
    Комментировать
  • Есть ли алгоритм кодирования, который не допускает подряд 3-6 одинаковых значений?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Контрольная сумма (хеш).

    Если искажение и будет, то шанс его не обнаружить - один на миллион (на самом деле ещё меньше, хотя зависит от разрядности).
    Ответ написан
  • Регулярное выражение для замены текста?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Можно вместо .* использовать [\s\S]*
    ([\s\S]*)(<strong>Характеристики<\/strong>.*<table>.*<\/table>)

    Метасимвол . означает любой символ, но обычно сюда не включён символ перевода строки. На regex101.com вы можете добиться того же эффекта, добавив флаг s:
    single line
    (Dot matches newline)

    Но когда вы в шаблоне пишете [\s\S], то это вообще любой символ без исключений.
    Ответ написан
    Комментировать
  • Как скомпилировать игру на pygame под Андроид?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Отвечая на вопрос, как скомпилировать, могу сказать, что очень просто.
    Достаточно лишь воспользоваться поиском Google или Yandex.
    spoiler
    5f8b061439bd5984371062.png
    Ответ написан
  • Используется ли теория вероятностей и комбинаторика в разработке игрового искуственного интеллекта?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    И да, и нет. Зависит от ваших целей.

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

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    1) Роутер видит, что клиент ходит через него с выданным адресом. А про саму выдачу адреса можете просто погуглить. Не смысла сюда переписывать.

    2) На канальном уровне они будут друг друга видеть, конечно же. Но на сетевом уровне они не смогут взаимодействовать и будут как бы невидимками друг для друга.
    Ответ написан
    Комментировать
  • Можно ли сделать текст в ячейке Google Sheets движущимся?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Ответ: можно.

    Сделать можно вообще всё, что угодно. Даже троллейбус из буханки хлеба. Но зачем?!

    P.S. Для умопомрачительных свистоперделок можно сделать отдельный сайт, а не переделывать инструмент, предназначенный для других целей. Так будет дешевле. А то, что хотите вы, будет немного дороже. Цена зависит от того, чем вы готовы пожертвовать. Например, можно написать расширение для бразуера и всех юзеров заставить его установить, чтобы они могли работать с вашей таблицей. Жертвуем комфортом. Хотя у таблиц там даже свои "дополнения" есть. Можно скриптом быстро менять значение ячейки. Плюс к цене: дополнительная нагрузка на процессор, неудобство чтения, необходимость программирования, невозможность скопировать текст из ячейки с "бегущей строкой".

    P.P.S. В начале 2000х была мода делать на сайтах всякие выезжающие меню и прочие свистелки. Но потом все быстро смекнули, что это нужно лишь тем, кто их делает, чисто по фану и ради понтов. Обычным юзерам это нафиг не нужно. Лишь делает взаимодействие с сайтом менее интуитивным. Точно также вы хотите сделать менее интуитивным взаимодействие с гугл таблицами. Подумайте, зачем. Если ответ есть, то делайте, конечно. Иначе придётся переосмыслить задачу.
    Ответ написан
    2 комментария
  • Как устроена математика в лутбоксах?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Математика простая, нужно лишь использовать понятие математического ожидания.

    Каждый предмет имеет некую стоимость либо в рублях, либо в игровой валюте, либо во времени, либо это некий аналог мощи/силы - не важно. Спросите у своего геймдизайнера (балансера), что почём. Прикручивая шанс к предмету, вы как бы уменьшаете его стоимость. То есть если Меч тысячи истин стоит 500 руб, то при шансе 1% его мат. ожидание будет 5 руб, очевидно. Далее просто складываете все мат. ожидания в сундуке - это будет мат. ожидание стоимости сундука, вот и берите его за основу. Затем можете увеличить или уменьшить эту стоимость сундука на некоторую величину, какую захотите, чтобы это было достаточно "честно" для вас. Как по мне, честность здесь сомнительная. Эту математику многие игроки тоже понимают, хотя бы интуитивно (когда шансы видны). Здесь нужна не честность, а баланс. Так что лучше делегировать всю эту математику геймдизайнеру, или кто там у вас отвечает за монетизацию.

    Далее, в геймдеве часто используют как раз-таки, так называемый, нечестный рандом. Он может быть по-разному нечестный, но сути это не меняет. Например, более-менее справедливый вариант: если Меч тысячи истин (с шансом 1%) не выпадает с 200го лутбокса, то игра должна впихнуть его, чтобы игрок был в конце концов счастлив. А если игроку выпал этот Меч тысячи истин, то чтобы он более не выпадал следующие 50 лутбоксов, а то уж больно жирно. В целом, шанс так и остаётся 1%, так что обмана, как такового, нет. Но, конечно, если игроки будут знать эти детали, то начнут абузить вашу систему по-чёрному, что в итоге приведёт к искажению шансов. Как говорится, думайте сами, решайте сами, нужны или не нужны вам заявленные хорошие жирные шансы. Хотя в рамках маркетинга вы, конечно, можете использовать любые слова, но это уже лучше делегировать маркетологу. А здесь в вашем вопросе эти слова слегка неуместны.

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

    Ещё к слову, каждая механика вводится для какой-то цели. Отталкивайтесь от этой цели, когда формируете состав лутбокса и прочие его особенности. То есть задача - добиться поставленной цели, а не просто ввести фичу для галочки. Обезьянничать - плохо. Нужно понимать, зачем в CSGO / DotA существуют лутбоксы и каким образом они делают игру лучше. Может быть, оно вам и не нужно вообще в вашей игре.
    Ответ написан
  • Скажите пожалуйста куда писать жалобы на работодателя?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Ложь становится наказуемой в случае, если её последствия наносят вам ущерб.

    Какие ваши права и законные интересы были нарушены? Сначала сформулируйте это, а потом жалуйтесь туда, где отвечают за соблюдение именно этих ваших прав.

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

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Может, заменой так?
    (\.RU)\s[^\r\n]*([\r\n])
    $1$2
    Ответ написан
  • Как скрыть элемент по его имени?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Например, так:
    var arr = document.getElementsByName("test");
    if (arr.length > 0) {
      arr[0].style.display = "none";
    }
    Ответ написан
    Комментировать