Задать вопрос
  • Почему JS самостоятельно изменяет числа?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Условно происходит округление.

    На пальцах это выглядит примерно так. В памяти есть место для хранения целого числа, а также есть место для его порядка (степени). Размер первого места задаёт, сколько цифр может быть в числе, например 17 (но это примерно, потому что там биты, то есть число хранится в двоичной системе). Порядок же позволяет дописать очень много нулей к числу справа или слева. Количество нулей тоже не бесконечно, но очень большое, всем хватит.

    Поэтому для очень широких чисел типа такого:
    1230000000000000099999999999999999999999999999999
    невозможно сохранить все цифры в точности. Оно просто не влезает в целую часть. Приходится брать за основу какой-то отрезок из 17 цифр. Очевидно, что логичнее начинать со старших разрядов:
    12300000000000000 (17 цифр)
    Ну а дальше встаёт вопрос, что делать с младшими? Порядок (степень) можно примерно сохранить, дописав нули. И в случае, если отбрасываем .....999999, то логичнее перевести единичку в следующий разряд. Получится:
    1230000000000000100000000000000000000000000000000
    (т.е. 1.2300000000000001e+48)

    Повторюсь, это примерно, без подробностей, для общего понимания. На самом деле там куча нюансов.
    0.1 + 0.2 == 0.3 //false

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

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

    Да. В момент нажатия отправить запрос на сервер и отложить реакцию до прихода ответа от сервера. На сервере же будет обычная очередность: Петя, Вася, Петя, Вася и т.д. Таким образом, какие бы ни были пинги, очерёдность будет довольно строгая. А если до сервера не удалось достучаться, то можно в качестве реакции что-то типа Radnom(Петя,Вася).
    Ответ написан
  • Что за тип вируса с 4мя вопросами на сайтах, как это работает?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Скорее всего, это какая-то накрутка показов рекламы.
    Не опасно, но и не полезно.
    Ответ написан
    Комментировать
  • Нагрузка на процессор 40% - 60% при том что ничего не открыто, но если отключить интернет/открыть диспетчер задач нагрузка падает, что делать?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Похоже на вирус (а точнее майнер).

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Игры обычно ведут некий лог-файл. В случае, когда игра "не отвечает", разработчик просит прислать этот файл, а затем пытается понять, что не так. Содержимое файла всецело зависит от разработчика. Обычно там логируются этапы загрузки игры, а затем в процессе события самой игры. Например, "версия игры такая-то, версия ОС такая-то", "загружены текстуры", "игра сохранена под таким-то именем", "такой-то игрок вошёл в лобби", "обнаружена попытка поделить на ноль". В общем, там все "явки и пароли", которые могут пригодиться, чтобы понять, в каком месте ошибка.
    Ответ написан
    1 комментарий
  • Не берет во всю длину, как быть?

    dollar
    @dollar Куратор тега Lua
    Делай добро и бросай его в воду.
    \[(\d+)\].+сек.+?(\d?\.?\d+) к?м

    .+ - жадный поиск, хватает всё, что может. А чтобы выражение подошло, допустимо захватить всё, кроме последней цифры.
    Так что самое простое решение - сделать этот захват ленивым.

    UPD: под Lua:
    string.match(str, "%[([0-9]+)%].+сек.-([0-9]?%.?[0-9]+) к?м")
    Ответ написан
  • Как добавить условие "если" в формулу в гугл таблицах?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    =ЕСЛИ(A2=0;"Нельзя делить на ноль!";A1/A2)
    Ответ написан
    Комментировать
  • Как сделать смерть при падении относительно своих координат?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Зачем находить? Придумай.

    Решение навскидку:
    У персонажа должно быть два состояния:
    1) когда он на платформе
    2) когда он в воздухе (т.е. летит)

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

    Дальше, надеюсь, всё очевидно. Как только перс приземлился, считаем разницу координат по Y, и либо вычитаем здоровье, либо убиваем, - что душе угодно.
    Ответ написан
    Комментировать
  • Как написать регулярное выражение без negative lookahead?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Без lookahead нужно использовать обычную группировку (скобки).

    Пример для схемы без пробелов:
    magnet:\?.*?xt=urn:([a-z]+:[a-f0-9]+)

    Пример для btih с пробелами:
    magnet:\?.*?xt=urn:btih:([a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9](?:\s*)[a-f0-9])
    Ответ написан
    Комментировать
  • Существует временная панель в Total Commander?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    панель, которая хранит ссылки на нужные данные

    Если я правильно понял, то в Total Commander ссылки можно хранить в Ctrl+D.

    P.S. Если же места файлов всегда одинаковы, и нужен типа бэкап, то проще сделать батник, который будет всё копировать по клику.
    Ответ написан
  • Как заблокировать определенную почту пользователю?

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

    И главный нюанс - есть ли запрет на личные смартфоны (с которых тоже можно читать личную почту). Если такого запрета нет, то нет и смысла запрещать почту на офисных девайсах. А если такой запрет есть, но не ради информационной безопасности, а для увеличения времени работы сотрудников, то это полная глупость. Во втором случае лучше просто рекомендовать пореже пользоваться личной почтой, и самых наглых увольнять, основываясь на их низкой продуктивности (а не на факте пользования личной почтой в рабочее время).
    Ответ написан
    Комментировать
  • Можно ли в Lua задать функции require абсолютный путь?

    dollar
    @dollar Куратор тега Lua
    Делай добро и бросай его в воду.
    Попробуй так:
    package.path = package.path .. ";/fos/apps/settings.app/modules/personalization"
    require "main.lua"
    Ответ написан
    Комментировать
  • Почему нельзя тип Any привести к Int?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    А если без кавычек?
    let str: Any = 12
    print( str as! Int )
    Ответ написан
  • Есть ли адблок, который блокирует рекламу на сайтах только по списку?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Любой адблок.
    Просто нужно дать доступ расширению только к определенному списку сайтов.
    Ответ написан
    8 комментариев
  • GGD:Геймдококументы игр?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Большинство диздоков защищены NDA (т.е. соглашением о неразглашении). Они-то как раз интереснее всего, но их так просто не достать. А что было 10 лет назад - уже не так важно для понимания трендов в наши дни. И в целом какого-то строгого регламента по составлению диздока нет. То есть геймдизайнер может не добавлять какие-то популярные разделы в диздок, или наоборот добавить какие-то новые уникальные разделы из-за уникальности самой игры.

    А так в гугле можно найти. Только гугли правильно. Не "геймдок", а "диздок", ну или по-английски.
    Ответ написан
    1 комментарий
  • Почему подсети, подключенные к одному маршрутизатору, пингуются между собой?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В "подсетях" нарисован Switch, а не Router.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Сделайте два столбца. В одном ручная установка, а в другом - автоматическая с учётом ручной.
    Ответ написан
    Комментировать
  • Можно ли сделать хабр темным?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Можно и вручную изучить стили и поменять их, но картинки по-прежнему будут рассчитаны на светлый фон. Некоторые картинки в статьях (png) так вообще имеют прозрачный фон, к сожалению, с которым сложно что-то сделать. Разве что инвертировать картинку... Но как (даже средствами js) детектить прозрачный фон у png? Никак... А если все картинки подряд инвертировать, то фотографии станут ужасны...
    Ответ написан
    Комментировать
  • Есть ли программа для постройки карточного домика?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Tabletop Simulator

    Там есть всё вышеперечисленное. Правда, без VR будет сложновато строить. Нужно будет сделать какие-то кнопки и запрограммировать их на Lua, чтобы можно было крутить карты в любом направлении и на любой градус, даже очень маленький. Главное, что это вообще возможно.
    Так-то TTS подразумевает, прежде всего, просто настольные игры, в т.ч. карточные, так что по умолчанию карты берутся "горизонтально" и крутятся на угол кратный 15°.
    Ответ написан
    Комментировать
  • Как завершить ввод строки без нажатия enter?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Программа должна считывать отдельные нажатия, а не ввод строки целиком.

    Каждый раз после нажатия ввод (строка) должен формироваться из ранее нажатых клавиш. Пока он не валидный - продолжать ожидать следующие нажатия. Как только ввод стал валидным - принять его.

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