• Какое приложение использовать для создания текстовой игры?

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

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

    Например, для C++ классической IDE считается Microsoft Visual Studio. Есть и более лёгкие. Но, повторюсь, в теории подойдёт и обычный блокнот, то есть любой текстовый редактор, просто это будет не так комфортно. Ну а что подойдёт именно вам, зависит от выбранного вами языка, платформы и т.д.
    Ответ написан
    Комментировать
  • Как отключить сглаживание в love2d?

    dollar
    @dollar Куратор тега Lua
    Делай добро и бросай его в воду.
    Создайте поверхность в 640 пикселей, и выводите всю графику на неё.
    При этом округляйте координаты, чтобы они все были целыми.
    Затем уже растягивайте поверхность на весь экран, используя фильтр nearest.
    Ответ написан
    2 комментария
  • Как отличить бесконечный цикл от очень длинного?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В общем случае - никак.

    Но вы можете каким-то образом выводить прогресс вычислений в реальном времени. Например, сколько процентов вычислений уже выполнено. Тогда баги будет проще заметить.

    Либо можно выводить, как один этап сменяет другой (при условии, что в новом витке будет что-то новое и будет виден прогресс). Например, чтение 1000 файлов может сопровождаться выводом имени файла. И таким образом видно, что прога переходит от одного файла к другому, а не застряла где-то.

    Но гарантии, естественно, нет. Даже так может зациклиться бесконечно. Просто это будет проще обнаружить - зависание прогресса, повторение этапов, непонятные скачки прогресса и т.д.
    Ответ написан
    1 комментарий
  • Как сделать 2d мир?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    На экране просто рисуются все объекты, которые попадают на экран (а не находятся за его пределами). У каждого объекта есть координаты, поэтому программно легко проверить, попадает ли объект на экран или находится за границей экрана.

    Обычно в играх принята такая схема, что все объекты рисуются заново каждый тик. А тиков в секунду может быть очень много (это то, что называется FPS - frames per second). Так что если что-то меняется в игровом мире, то сразу же меняется и картинка визуально.

    Кнопки перемещения же просто меняют координаты. Они напрямую не связаны с отображением. Но косвенно они приводят к эффекту, что объект (главный персонаж) как бы движется. Только координаты меняются не плавно, а дискретно - каждый кадр новые координаты. Просто глазу незаметны "прыжки" на 1-2 пикселя и он округляет это и считает непрерывным движением.

    Получается, что один программный код отвечает за изменение координат, в зависимости от нажатия клавиш. А другой программный код считывает эти координаты, чтобы нарисовать кадр. Общее у них - лишь область памяти с координатами, но один пишет в неё, а другой - читает. В остальном их не нужно смешивать, и стоит рассматривать и кодить отдельно друг от друга.
    Ответ написан
    1 комментарий
  • Как открыть "легальный" сервис для email-рассылок?

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

    В идеале нужно собрать со всех клиентов письменное согласие о том, что они хотят получать рассылку. Причём, собрать не обманным путём, а так, чтобы они понимали, на что подписываются и что в итоге будут получать. Тогда будет полностью «легально».
    Ответ написан
  • Почему я не могу кодить временами?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Биполярное расстройство.
    Ответ написан
    Комментировать
  • Как найти сайты с определенной папкой, файлом или же css кодом?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    password site:ru inurl:admin

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Искать: \s*(\|)\s*
    Заменить на: $1
    https://regex101.com/r/rv6uEW/1

    P.S. Символ «|» является специальным разделителем, поэтому его нужно экранировать, когда речь про символ вертикальной черты в тексте - «\|».
    Ответ написан
  • Как понять могут ли украсть какие либо данные?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    "Просто" ничего не бывает (из того, что связано с человеческой психикой). Это аксиома.
    ("просто" в значении "без причины")
    Так что вы чего-то недоговариваете. История не полная.

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

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

    Начнём с того, что вы учите язык несколько дней. Пусть вы успели уже поизучать/попрактиковаться 50 часов. Уровень эксперта - это условно 10000 часов. Делим.
    Получается, что ваши знания-навыки - это лишь 0.5% от уровня эксперта.
    То есть это только начало пути, и не получится просто взять и научиться за 1 вопрос здесь.

    Далее, алгоритмы типа пузырька и прочие алгоритмы из учебника - это классика. Эти алгоритмы хорошо изучены, и не вам их заново изобретать. Ну, конечно, возможность у вас есть изобретать эти велосипеды с нуля, но придётся пройти большой путь, никуда не подсматривая. Но зачем? Ради чего? Алгоритмы из учебника лучше смотреть в учебнике и не переживать особо по этому поводу. В грамотной программе обучения вы можете встретить задачки, которые вам преподносятся с нарастающей сложностью, и обычно вчерашний маетриал можно использовать для решения сегодняшней задачи. А вы хотите изучать не структурированно и с наскока, и чтобы получалось легко? Нет, так не бывает.

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

    Свои собственные решения - это как раз самое ценное в плане обучения. Это и есть рост. На некоторые архитектурные решения требуется несколько дней.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если ширина фиксирована, то png.

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Искать: (^| )3 [дД]($|[ .,!?:;])
    Заменить на: $13д$2

    https://regex101.com/r/6Gv4HC/2
    Ответ написан
    Комментировать
  • NotePad++ Как заменить цифры в начале строки?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Подойдёт \b(\d{2,2})\b
    \d - цифра
    \b - граница слова

    Заменить на 000$1
    $1 - найденная подстрока
    Ответ написан
  • Как защитить данные?

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

    А ещё дядя в погонах может вас просто попросить сказать пароль. Неужели вы ему откажете и станете мешать следствию?

    P.S. Как вариант, TrueCrypt.
    Ответ написан
    3 комментария
  • Стоит ли использовать расширение AdNauseam помимо uBlockOrigin для улучшения приватности?

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

    Для настоящей же приватности нужна отдельная личность, у которой своя история, свой интернет, свой компьютер, свой браузер, свои расширения браузера, и свои привычки, в том числе любовь или нелюбовь к рекламе. Эта отдельная личность никак не должна быть связана с вашей реальной. Очевидно, что этого нельзя добиться на 100%. Но если у них общий браузер, то о приватности можно просто забыть.
    Ответ написан
    1 комментарий
  • Как в Notepad+ с помощью Регулярных выражений сделать поиск?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Так и искать. Только вместо разный текст - .* или [^"]*
    https://regex101.com/r/hOVnnF/1
    Ответ написан
    Комментировать
  • Как найти кратчайший путь с минимальным количеством поворотов(повороты в приоритете)?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Неоптимизированный алгоритм (для понимания сути):
    Перебираем вообще все всевозможные пути достижения цели. Считаем количество шагов. Так как нужен самый быстрый путь, то ищем минимальное количество шагов. Теперь среди множества найденных "мнимальных" путей выбираем те пути, которые имеют минимальное количество поворотов. Ответ будет любой из найденных в итоге.

    Можно немного модифицировать, считая сразу (шаги + повороты). Естественно, поворот будет иметь вес больше, чем вес 1 шага. Например, в 10 раз больше, чтобы подчеркнуть важность именно поворотов, что они в приоритете. Тогда расстояние будет считаться по формуле:
    S = шаги + 10 * повороты
    Очевидно, что при такой схеме любой лишний поворот резко увеличит расстояние. Это и будет критерием для отбраковывания неудачного пути.

    Эту идею можно интегрировать в существующий алгоритм, которым вы пользуетесь, но зависит от типа вашего алгоритма, могут быть нюансы.
    Ответ написан
  • Как это работает (метод sort)?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Функции sort передаётся в качестве аргумента функция compareNumeric.

    Передаётся не результат вызова функции compareNumeric, иначе были бы скобки, означающие вызов, а передаётся именно сама функция compareNumeric, (т.е. указатель на неё, т.е. её имя).

    Далее функция sort, как бы она ни была устроена внутри, использует функцию compareNumeric по своему усмотрению. Может вызывать её с любыми параметрами, какими захочет. И так как вы не видите, как реализована функция sort внутри, то вы об этом можете лишь догадываться. Но очевидно, что это так, ведь при сортировке нужно будет сравнивать элементы массива попарно.
    Ответ написан
  • Anti Adblock, как сделать?

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

    Ну а по теме, адблокеры обычно не убирают элемент, а делают его невидимым (display:none).
    Ответ написан
    Комментировать
  • Как программно нажать на этот проклятый div?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Что если так? Это всё в консоль (чтобы проверить).
    function simulateClick(node) {
      function trigger(node, event_name) {
        var ev = document.createEvent('MouseEvents');
        ev.initEvent(event_name, true, true);
        node.dispatchEvent(ev);
      }
      trigger(node, "mouseover");
      trigger(node, "mousedown");
      trigger(node, "mouseup");
      trigger(node, "click");
    }
    
    var div = document.getElementById("dbut8"); //Ищем нужный див.
    simulateClick(div); //Полноценно кликаем по нему.

    P.S. Сайт по ссылке не открывал.
    Ответ написан
    1 комментарий