• Возможо ли восстановить закрытый проект?

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

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

    Может даже оказаться, если не договоритесь о цене, что ещё дешевле будет переписать и сервер, и клиент с нуля. Из незащищённого клиента будет не очень сложно выковырять полюбившиеся текстуры и модельки. Но такая разработка тоже стоит денег. Всё делать одному будет слишком долго. А кто говорил, что будет легко? Речь о том, что это возможно.
    Ответ написан
  • Странно срабатывает конкатенация?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Код не смотрел, но:
    s = "123";
    s += 4; // "1234" (строка)
    s += 5; // "12345" (всё ещё строка)
    s -= 6; // 12339 (уже число)
    s += 7; // 12346 (теперь и далее всегда число)
    s += 8; // 12354
    s += 9; // 12363

    Дело в том, что операция "+" является операцией сложения для числе, и одновременно с тем операцией конкатенации для строк. И в сочетании с автоматическим преобразованием типов получаются казусы:
    ("1" + 1) // "11"
    (1 + "1") // "11"
    Ответ написан
  • Как можно вставить текст в несколько input?

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

    Нужно, чтобы на странице был отдельный многострочный инпут типа textarea. В него копируете таблицу, она получается в виде обычного текста с разделителями. Дальше скриптом парсите этот текст и скриптом же вставляете в отдельные input в соответствии с логикой страницы.

    Это можно также оформить в виде браузерного расширения или вообще в виде юзер-скрипта, который всталвяется в консоль. Дело вкуса, если вы знаете js.
    Ответ написан
  • Не приходит значение View?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Так сделайте отладку.
    Вставьте в нужные места console.log() или хотя бы alert(), и смотрите, где какие промежуточные значения.
    Ответ написан
  • Как преобразовать число в строку?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    $soldprice = 123;
    echo(" x " . $soldprice);
    Ответ написан
  • Какой самый быстрый архиватор?

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

    Лично я пользуюсь Total Commander.
    spoiler
    605d18d5bac7f377918080.png
    Ответ написан
  • Есть ли смысл в дизлайках или как оценить пользу контента для сообщества?

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

    Если, например, лайк возможен только после покупки/скачивания игры, то процент лайков отражает вообще не полезность, а оправданные ожидания. То есть если вы пишите в описании, что игра говно, хотя игра не так уж и плоха, то её скачает 1001 человек, из них 1000 человек будут приятно удивлены, и поставят лайк (для простоты будем исходить из того, что оценивают все, никто не игнорирует кнопку лайка). А если в описании у вас "супер игра", то её скачает 13 400 000 человек, приличная доля которых разочаруется в описании и скриншотах к игре, и в итоге поставит дизлайк.

    Можете преподнести свою игру, как особый нишевый продукт по высокой цене. И любители данного конкретного редкого жанра будут покупать. Пусть их будет немного, но зато альтернатив вашей игре в данной нише не будет, что очень выгодно. Если игра будет соответствовать описанию и обещаниям + небольшой бонус, о котором в описании ни слова, то процент лайков будет высоким. А те, кому не интересен данный жанр, просто пройдут мимо, т.к. из описания сразу поймут, что игра им не зайдёт, и дизлайков от них вы не получите.

    Пример
    Один мой знакомый делал видео по сжижению водорода в игре ONI. Приходили люди и писали гневные комменты, что искали информацию по физике, а тут какой-то геймер со своей глупой игрой, не имеющей отношения к реальности. Знакомый добавил название самой игры в название видео, и переходы от незаинтересованных в данном контенте людей прекратились. Процент лайков стал расти. Хотя контент вообще не изменился. Странно, не правда ли? Контент тот же, а "полезность" вдруг выросла из-за названия. Потому что выросла вовсе не полезность.
    Ответ написан
  • Как происходит всплытие переменной?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Всплытие происходит в начало функции (т.е. bar), где бы внутри функции вы ни объявили переменную через var.
    Ответ написан
  • Какие есть перспективные специальности в IT с творческой подоплёкой?

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

    Выбирайте направление, к которому у вас лежит душа. Только вы можете знать, какое лучше. Отвечающие уже выбрали, но лишь для себя, вам может не подойти. Тем более, что вы в один ряд с интересом ставите доходность.
    spoiler
    Условно можно считать, что значимость перспективного направления считается по формуле:
    A * X + B * Y,
    где X - интерес, Y - доходность, а A и B - это какие-то коэффициенты, которые индивидуальны для вас, то есть вы для себя определяете их соотношение и никто другой.
    Кроме того, сам интерес (X) - тоже зависит от вас и считается по какой-то другой условной формуле, хоть и зависит также от самого направления.
    Ответ написан
  • Ошибка при запуске скрипта Lua?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Ошибка "bad argument #1 to 'find' (string expected, got nil)" переводится буквально:
    плохой аргумент №1 для функции find (ожидается строка, но вместо неё имеем nil).

    Это значит, что переменная text у вас не задана (содержит значение nil).
    Да, прерывание скрипта происходит конкретно в этом месте, но реальная ошибка где-то в другом месте в соответствии с вашей задумкой, там и нужно будет исправить/дополнить.
    Ответ написан
  • И все-таки что такое Страничная память в Виртуальной памяти?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Ни где не сказано, что это за структура.

    А как вы искали, что прям нигде-нигде не сказано?
    Попробуйте загуглить: TLB
    Ответ написан
  • Лишняя инструкция в дизассемблированном коде ассемблера?

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Возможно, в настройках операционной системы.
    (например такое)
    605c5a749a545125437717.png
    Ответ написан
  • Какое приложение показывает кто звонит без подключения к интернету?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    На iOS любое приложение, которое показывает такую информацию, делает это без подключения к Интернету.

    Дело в том, что это требование безопасности, чтобы авторы приложений не палили, кто вам звонил, сколько раз, в какое время и т.д. Поэтому Apple придумала так, что приложение обязано просто предоставить системе базу данных с номерами, а система уже сама показывает. При этом приложение не в курсе, кто когда звонит. При такой схеме нет смысла что-то проверять в Интернете.
    скриншот
    605b347fda7e1359675258.png

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    На (обычных) скриншотах вообще не должно быть курсора мыши.
    Вывод: у вас два курсора мыши. Один - нормальный, а другой рисует какая-то прога, который и попадает на скриншоты.
    Ответ написан
  • Как преобразовать строки в бинарный код в JS?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    code = "й".charCodeAt(0)
    //1081 или 0x0439

    Далее смотрим, как кодируется UTF-8.
    Для русских букв (например, й) упрощённо:
    byteCode1 = code >> 6 | 0b11000000;
    byteCode2 = code & 0b00111111 | 0b10000000;

    Остаётся всё это склеить в одну функцию. В императивном стиле, конечно же, чтобы было понятно, что происходит:
    function StringToBin(s) {
      let arr = s.split(''); //разбиваем строку на символы
      arr.forEach((symbol, index) => { //кодируем каждый символ
        let code = symbol.charCodeAt(0);
        let byteCode1 = code >> 6 | 0b11000000;
        let byteCode2 = code & 0b00111111 | 0b10000000;
        arr[index] = (code < 128 ? code.toString(16) : byteCode1.toString(16) + byteCode2.toString(16)).toUpperCase();
      });
      return arr.join(' '); //возвращаем кодированную строку
    }
    
    console.log(StringToBin("Хай"));
    //D0A5 D0B0 D0B9

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Короткий ответ:
    /(?<=<img [^<>]*?)src(?:set)?="([^"]*)"/g

    Но чем больше дополнительных условий и хотелок, тем больше доп. кода понадобится или более монструозным получится рег. выражение. Универсальный способ вряд ли получится. Всегда найдётся способ сломать регулярку.
    Ответ написан
  • Как создать текстовую онлайн RPG/ZPG?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если у тебя есть интерес к математике и ты любишь логически рассуждать, то основы программирования тебе дадутся легко. В любом императивном языке программирования используются конструкции "если-то-иначе" и "повторять-до-тех-пор", то есть используются условия, которые могут быть "истиной" или "ложью". Остаётся только изучить синтаксис самого языка: где-то пишут if условие then действие end, а где-то if (условие) { действие } и тому подобное. То есть различия только в написании. Вот тебе основы программирования в двух словах.

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

    1. Язык выбирай в зависимости от того, какой движок или платформу будешь использовать. Не оглядывайся на другие игры. Например, Unity и соответственно C#.
    2. Курсы, учебники, ютуб-каналы - без разницы. В любом случае ты потратишь какое-то время, и его не получится сильно уменьшить. То есть это прямая конвертация времени в знания и навыки без сильных колебаний курса цены этой конвертации. В целом, время будет зависеть от твоего начального бэкграунда (т.е. что ты знаешь и умеешь уже сейчас).
    3. В программировании (да и в других областях) сложную задачу принято разбивать на части (декомпозиция). Сначала нужно изучить понятие игрового цикла, и как время будет течь в игре (или как время в игре соотносится с реальным, учитывая паузы и сохранения). Затем решить, в каком порядке и что там будет выполняться более детально. Однако любая мелкая игровая система всё равно будет достаточно сложна, и её снова нужно разбивать на совсем уж простые. А простые - снова разбивать на элементарные. Поэтому от умения разбивать зависит, закончишь ли ты программу (игру) или нет.
    4. Сетевая часть - обычно самая сложная (и самая глючная), потому что для каждой своя оптимизация. В двух словах, устройства обмениваются сообщениями по сети, и эти сообщения могут пересылаться с разной скоростью, а могут порой вообще теряться в никуда. Клиент-серверная модель предполагает, что есть некое главное устройство (например, ты арендовал сервер в дата-центре), к которому подключаются все остальные (т.н. клиенты). Но вот как будет реализовано взаимодействие, контроль ошибок, чтобы не глючило, вот это уже зависит от самой игры.
    Ответ написан