Задать вопрос
  • Нормален ли такой код?

    @rPman
    'магические константы' - что такое 9 или 10?, мне то понятно но чтобы их понимать нужно изучать код, размеры области нужно определить в переменные или константы, приучаться надо с самого начала к тому чтобы такого не было. То же самое с символами кнопок управления, определи для них переменные, пусть сначала это будут константы, заданные в коде, зато позже будет проще сделать изменяемые настройки.

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

    Правильно - определить буфер как содержимое стенок # и заполнить его однократно вне игрового цикла (тут можно и другие препятствия расставить, например сделать лабиринт), не важно константами или алгоритмом.

    А в бесконечном цикле просто выводить содержимое map и уже во время вывода проверять x,y положения 'игрока' и выводить его на экран вместо символа карты. Достоинство такого подхода - карта может состоять не только из символов стенок но и любых других, проходимых.

    ну и красивости раскидай по функциям вывод экрана и обработку клавиш управления, так же внутри вызова каждой клавиши проверку на стенку вынеси в вызов отдельной функции (в параметрах - символ карты), возвращает boolean, является ли символ проходимым, благодаря этому позже проще будет добавить другие символы стенок

    Следующим шагом x,y определи структурой, если продолжать дальше, в идеологии объектного программирования (да я вижу что это С, но простой вызов метода у структуры/класса сделать можно) в этой структуре определи функции, описывающие действия над персонажем (обработка действий - там функция что разбирает нажатые клавиши, только по логике нав ход должны подаваться не клавиши а константы, определяющие действие, вывод на экран - вернет символ, проверку проходимости точки на карте, т.е. стены, и т.п.) тогда будет проще добавить к примеру второго игрока или NPC и т.п.
    Ответ написан
    4 комментария
  • В чём отличие результатов кодировок `encodeURI`, `encodeURIComponent` и `application/x-www-form-urlencoded`?

    @alexalexes
    Отличия в охвате специальных символов, которые подвергаются конвертированию.
    Функция encodeURI меньше охватывает символов, а функция encodeURIComponent - больше.
    Но ни та, ни другая не достигает стандарта RFC 3986, чтобы считаться полностью правильно закодированным в вид контента application/x-www-form-urlencoded (смотрите документацию по encodeURI).

    PS: Со стороны php сервера такая же история. Есть urlencode/urldecode - которые неполные по RFC 3986, а есть rawurlencode/rawurldecode - которые полностью удовлетворяют стандарту RFC 3986. При кастомном конструировании http пакетов предпочтительно использовать последние.
    Ответ написан
    1 комментарий
  • Как сортировать такой массив?

    Adamos
    @Adamos
    Написать функцию сравнения, которая сначала сравнивает позиции валют в предопределенном списке, а при их равенстве - второе значение.
    И использовать штатную функцию сортировки массива с пользовательской функцией.
    Ответ написан
    Комментировать
  • При компилировании ошибка undefined reference to?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    Подключены заголовки, а не библиотеки. Чтобы подключить библиотеки, нужно добавить -lpthread как минимум к команде компиляции
    Ответ написан
    Комментировать
  • Как установить Windows после Linux?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    ничего windows всегда была царем горы и не предполагала соседей
    Ответ написан
    Комментировать
  • Как получить все теги в html или xml?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    3 комментария
  • Как отнять в php одно время от другого, если изначально значения времени являются строками?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    print DateTime::createFromFormat('H:i', '15:00')
        ->diff(DateTime::createFromFormat('H:i', '14:30'))
        ->format('%H:%i');
    // 00:30
    Ответ написан
    Комментировать
  • Как записать в fastcgi_param якорь?

    Lynn
    @Lynn
    nginx, js, css
    Никак. Якоря не передаются на сервер.
    Ответ написан
    Комментировать
  • На чем лучше сделать динамический сайт с админ панелью, с добавлением товаров?

    Sanes
    @Sanes
    На чем умеешь, на том и будет быстрей. Либо CMS.
    Ответ написан
    Комментировать
  • Как корректно использовать exec() в PHP?

    @Akela_wolf
    Extreme Programmer
    Утилита screen нужна только для терминала (чтобы процесс не убился когда закроете терминал)
    Команда cd - команда шелла (изменить текущую директорию)

    Так что вам, на самом деле, нужна единственная команда для запуска сервера: srv/start.sh

    Если же все-таки нужно выполнить несколько команд, то для этого нужен запуск шелла: /bin/sh -c 'cmd1 && cmd2 && cmd3 && ... etc ...'

    Еще можете посмотреть функцию PHP shell_exec
    Ответ написан
    Комментировать
  • 500 Internal Server Error .htaccess, что делать?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    разбить файл на условные блоки и отключать по кускам, пока не заработает. Скорее всего какой-то из плагинов просто не установлен на сервере.

    Так же для совместимости обычно используют директиву условного подключения, например так:
    <IfModule mod_rewrite.c>
    Ответ написан
    Комментировать
  • Как исправить ошибку лимита 100мб гитхаб?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Git это модульная система. Некоторые компоненты нужно устанавливать дополнительно, в том числе Git LFS for GitHub

    Но зачем ты пихаешь в репозиторий архивы с резервными копиями?
    Ответ написан
    Комментировать
  • В чем ошибка моего кода?

    Dr_Elvis
    @Dr_Elvis Куратор тега Python
    В гугле забанен
    Ну тут явно есть какое-то решенице
    Ответ написан
    1 комментарий
  • Как вывести в переменную данные из file_get_contents?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ошибка в использовании регулярок вместо нормального разбора XML, например через SimpleXML.
    В регулярке потенциальная ошибка в жадности. Если будет несколько записей product_name, то у вас выберутся все.
    Ну и вы берёте $product_name[0], а там лежит полное совпадение с регуляркой. Найденная подстрока находится в $product_name[1].
    Ответ написан
    1 комментарий
  • Как вывести в переменную данные из file_get_contents?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) при чем тут "вывести в переменную данные из file_get_contents"?
    2) все выводится, ищите ошибку в другом месте
    3) Если вы получаете xml, то зачем вам регулярки, есть средства, предназначенные для работы с xml
    Ответ написан
    Комментировать
  • Отвал smd компонентов на процессоре?

    15432
    @15432
    Системный программист ^_^
    Выглядят как конденсаторы, нужны для устранения помех по линиям питания, скорей всего процессор будет работать и без них. По желанию можно замерить параметры соседних и припаять аналогичные.
    Ответ написан
    4 комментария
  • Можно ли зделать свою команду в командной строке linux?

    Vindicar
    @Vindicar
    RTFM!
    1. Добавь в начало файла шебанг, т.е. строку вида
    #!/usr/bin/env python
    Чтобы при запуске файла было понятно, чем его открывать
    2. Переименуй файл в add (без расширения) и сделай его исполняемым командой chmod +x add
    3. Либо помести файл в один из каталогов в переменной окружения PATH, либо добавь каталог, в котором файл лежит, в PATH.
    Загляни в скрытый файл .profile в твоём домашнем каталоге, он как раз этим занимается. Он может быть настроен так, чтобы автоматически добавлять в PATH каталог bin в твоем домашнем каталоге, тогда просто создай этот каталог и закинь файл туда.
    Ответ написан
    Комментировать
  • Как одновременно использовать Apache и NGINX?

    paran0id
    @paran0id
    Умный, но ленивый
    Можно избавиться от апача, задействовав php-fpm с nginx.
    Ответ написан
    4 комментария
  • Как обновлять файл json на php?

    @rPman
    Всегда стремись разделять получение данных бакэндом и выдачу этоих данных на странице, когда это получение медленее чем работа слокальными данными... т.е. всегда кешируй данные, особенно когда инвалидация не строгая.

    Отдельный демон (хоть и по крону) опрашивает api, проверяя появление новых данных или изменение. От этого api зависит, в худшем случае, если нет возможности даже даты изменений получить - запрашиваешь все данные, собираешь свой json и берешь из него как строка - хеш например md5, изменился - есть новые данные, значит записываешь json (совет если работаешь с файлами, пиши всегда файл с новым именем, и при запросе - отдавай тот что записал последним, после окончания записи старый файл удаляй, это исключит ошибку если будет запрос на чтение в момент сохранения).

    Если api позволяет оценить изменения в данных, то хранить в файле json имеет смысл только если он не большой, иначе да, как то оптимизировать хранение, либо по файлу на объект либо действительно в базе данных, по желанию
    Ответ написан
    2 комментария