Задать вопрос
  • Какой framework шустрей работает для гибридной разработки мобильных приложений?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    framework7 (+ко всему - он еще и позже вышел, соотв. там уже с новыми оптимизациями всё.)
    А вообще, лучше - делать нативно, как написал Дмитрий Энтелис
    Ответ написан
    2 комментария
  • Как найти подряд три идущих единицы с использованием битовой логики?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    ee7d95d214184285aa28c2d0f1c98cf7.jpg
    Мой велосипед на PHP (с алгоритмом оптимизированного поиска):
    <?php
    error_reporting	(E_ALL); // включаем лог ошибок
    
    function array_flatten($array) {
       $return = array();
       foreach ($array as $key => $value) {
           if (is_array($value)){ $return = array_merge($return, array_flatten($value));}
           else {$return[$key] = $value;}
       }
       return $return;
    }
    
    function rotate90($array) {
      array_unshift($array, null);
      $array = call_user_func_array('array_map', $array);
      $array = array_map('array_reverse', $array);
      return $array;
    }
    
    $Map = [
      [0, 1, 1, 1, 0, 0, 1, 1],
      [0, 0, 0, 1, 0, 1, 0, 0],
      [1, 0, 1, 0, 0, 0, 0, 1],
      [0, 0, 0, 0, 0, 0, 0, 0],
      [0, 1, 0, 0, 0, 0, 0, 0],
      [0, 0, 1, 0, 0, 0, 0, 1],
      [0, 1, 0, 0, 1, 0, 0, 0],
      [0, 0, 1, 0, 0, 0, 1, 1]
    ];
    
    $Map90 = array_flatten(rotate90($Map));
    $Map = array_flatten($Map);
    
    $s='';
    $s90='';
    foreach ($Map as $k=>$i) {
      $s.=$i;
      $s90.=$Map90[$k];
    }
    
    echo $s.'<br>';
    echo $s90.'<br>';
    
     //убрать переносы на след.строку
    $i=0;
    do {
       $n=strpos($s,'111',$i++);
       if ($n) {
          if($n%8>5) $i=8*(1+floor($n/8));
          else break; //найдено! :)
       } else break; //не найдено :(
    } while (-1);
    
     //убрать переносы на след.строку
    $i=0;
    do {
       $n90=strpos($s90,'111',$i++);
       if ($n90) {
             if($n90%8>5) $i=8*(1+floor($n90/8));
            else break; //найдено! :)
       } else break; //не найдено :(
    } while (-1);
    
    if ($n90!==false) {
       $n90=(8-$n90%8-3)*8+floor($n90/8); //конвертим в верный индекс
       if(!$n||$n&&$n90<$n) $n=$n90; //берём минимальный ближайший к началу.
    }
    
    //OUT
    if ($n!==false) {
     echo "Позиция в массиве (начиная с 0): ".$n.'<br>'; //позиция первого элемента совпадения в "плоском" массиве.
     echo "Координаты по X*Y в двумерном массиве: ".($n%8).'x'.floor($n/8); //COLxROW
    } else echo "не найдено!";
    ?>
    Ответ написан
  • Какой аналог парсера позиций посоветуете?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Здесь - лучшие ресурсы, которыми пользуюсь лично.
    Ответ написан
    Комментировать
  • Какой алгоритм создания сайта для интернет магазина?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    С понимания базовой архитектуры, чёткой постановки задачи: здесь

    UPD: Здесь выберите "Новый сайт" и там - тип сайта: "интернет-магазин" и посмотрите основные вопросы анкеты, которые помогут понять основные функциональные требования для создания ИМ (интернет-магазина).
    %25D0%2592%25D0%25B5%25D0%25B1-%25D1%258
    Ответ написан
    2 комментария
  • Правильно ли сделать такие настройки .htaccess?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Достаточно одной строки в .htaccess:
    deny from all
    Можно только для запускаемых запретить (отфильтровать):
    см. здесь, раздел: "Права на папки и файлы"
    Ответ написан
  • Стоит ли все function собирать в одном файле?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Функции делятся на 2 основных вида:
    1. Вспомогательные - делятся по сферам применения и относительно форматов данных, с которыми они работают:
    1.1 Языковые
    1.2 Фильтрации данных
    1.3 Работа со списками
    1.4. Работа с очередями
    и т.д.
    2. Внутреклассовые - здесь и так понятно.

    Каждый из этих пунктов должен быть включён через include_once() и ИСКЛЮЧИТЕЛЬНО! по мере необходимости для обеспечения функциональности, заданной БП.
    Ответ написан
    9 комментариев
  • Правильно ли решил задачку о светофоре?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    <?php
    /*Работа светофора запрограммирована таким образом: 
    с начала каждого часа, в течении трех минут горит зеленый сигнал, 
    следующие две минуты горит красный, 
    дальше в течении трех минут - зеленый и т. д. 
    Вам нужно разработать программу, которая по введенному числу определяла 
    какого цвета сейчас горит сигнал.*/
    
    error_reporting	(E_ALL); // включаем лог ошибок
    
    function numTail($m) {
     switch ($m) {
      case 0:case $m%10==0:default:return '';
      case $m!=11 && $m%10==1: return 'а';
      case ($m<10 || $m>20)&&($m%10==2||$m%10==3||$m%10==4):return 'ы';
     }
    }
    
    function svetofor($m) {
      if($m%5>=1 && $m%5<=3) return "зелёный";
      else if ($m>0) return "красный";
      else return 'никакой';
    }
    
    $m = date("i"); //0-59 минуты.
    $m=46; //для теста.
    //Сейчас 46 минут и горит зелёный.
    
    ?>
    <div>
    Сейчас <?=$m?> минут<?=numTail($m)?> и горит <?=svetofor($m)?>.
    </div>
    Ответ написан
    1 комментарий
  • Авторизация, подобно Clash of Clans? Как она работает?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Вижу 2 возможных варианта:
    1. Отправляется подписанный приложением запрос на регистрацию на основе уникального идентификатора устройства (Telephony.DeviceID / ANDROID_ID / Mac Adress и возможно ещё каких-то данных) с шифрованием по открытому ключу приложения (ключ "вшит" внутри приложения): формула формирования - также, внутри приложения, запрос перед передачей - шифруется ключом.
    Т.е. отправляются подписанные данные самим приложением, которые Вы не сможете подделать БЕЗ установленного приложения, что не даст понаделать тучу аккаунтов.
    2. Возможно, что через ID пользователя гугл (используя API).
    Ответ написан
    7 комментариев
  • Как закрыть вкладку браузера с помощью JS?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Как время выйдет: закройте сессию через AJAX и просто заредиректите на форму "время вышло. Войдите снова" и кнопка "Вход".

    Вы не сможете закрыть окно через JS, которое было открыто пользователем!
    Закрыть можно только окна, созданные через JS через window.open
    stackoverflow.com/questions/14373625/close-current-tab
    Ответ написан
    Комментировать
  • Что быстрее: инлайновые подключения css или тег link?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Идеально: один CSS и один JS, всё минимизировано и находится в тэгах <style> и <script> соответственно, в теле самой страницы.
    Внешние надо полностью превращать в локальные (скачивать целиком со всеми зависимостями с удалённого сервера) или использовать @import внутри единого CSS-файла (или тэга <style>).
    Ответ написан
    Комментировать
  • Алгоритм поиска последовательности выпадения числа. Возможно ли такое реализовать?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    При таких задачах нужно в первую очередь смотреть на периоды функции.
    Если период или кратность найдена не будет - значит значения случайны.
    Сбор информации должен помочь ответить на вопрос: "А кратна ли функция?" и определить эту кратность при разных входных параметрах в случае её обнаружения.
    Т.е., переформулируем вопрос: "какая следующая пара параметров выдаст такое же число?"
    Затем, нужно найти зависимость между максимальным рядом параметров, выдавшим одно и тоже число.
    Ответ написан
    Комментировать
  • Как реализовать поиск схожести двух строк (названия продуктов)?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ответ написан
    Комментировать
  • Как можно реализовать на сайте функцию смены текста четная/нечетная неделя?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Надо получить номер недели с помощью функций PHP и далее, вставить отображение нужного текста по условию остатка от деления x%2===0 - чётная, иначе - нечётная.
    Ответ написан
    Комментировать
  • Как реализовать нумерацию?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    <?php
    function threeButtons() {
      $b='';
      for ($i=1;$i<=3;$i++) {
        $b.='<input type="hidden" id="id_'.$i.'" value="1">'.PHP_EOL;
      }
      return $b;
    }
    ?>
    <div>
      <?=threeButtons()?><br/>
      <?=threeButtons()?><br/>
      <?=threeButtons()?><br/>
    </div>
    Ответ написан
  • Где найти плагин галереи изображений для Joomla?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Вот такой скрипт я делал (инфа об изображениях меняется на галлерее + вне её), но не оформлял именно в плагин:
    gallery.jpg
    Типа того нужно или что-то иное?
    Ответ написан
  • Как составить алгоритм выбора наиболее эффективной команды героев?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Выбор, чтобы понять: "сможет ли выбранный герой кого-то победить?" можно определить так: суммарная эффективность (сумма разниц показателей урона выбранного героя с героями противника) выбранных героев должна быть больше нуля.

    S=(A1-B1)+(A1-B2)+(A1-B3) > 0 => ∞

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

    Я бы еще добавил такие параметры (коэффициенты, которые ещё нужно более детально прорабатывать), как:
    1. урон атаки каждым из возможных способов атаки (АТАКА)
    2. время перезарядки каждого из возможных способов
    3. возможность атаки каждого типа цели
    4. дальность атаки до каждого типа цели
    5. защита каждым из возможных способов (ЗАЩИТА)
    6. время восстановления защиты каждого из возможных способов защиты
    7. возможность защиты от каждого типа атаки
    8. скорость передвижения каждым из возможных способов (ПЕРЕДВИЖЕНИЕ)
    9. свобода передвижения (полная - когда летает, частичная - зависит от ландшафта, стационарная - например, защитная турель или бункер)

    При пошаговой игре: время перезарядки может быть рассчитано, как количество атак за ход.
    Большая разница тут: ПОШАГОВЫЙ или REAL-TIME бой.
    Я тут вспомню про старик (StarCraft - RTS от Blizzard):
    1. Когда загораживают выход двумя MCV (рабы) которые умеют друг друга чинить, а за ними ставят пару маринов, которые отбивают полчища, пока те атакуют рабов. Вроде бы, при любом расчёте: убить 2-х маринов и 2-х рабов - не проблема, если у тебя 6 маринов и при любом просчёте - это будет явно видно!
    Однако, как показывает реальность: всё зависит от конкретного ландшафта/местности и умения стратегически мыслить.
    2. Маринов ставят за здания полукругом с равным удалением для одновременной атаки перед входом, если атакуют войска ближнего боя (например, зерлинги): сделано, чтобы те, кто вбегает : оказывается сразу под огнём всех маринов и, чтобы убить всех этих маринов, нужно атаковать одновременно каждого с небольшим превосходством, что сделать мышью - практически нереально.
    3. Банальный лабиринт: когда есть узкий проход и в ближнем бое может участвовать лишь несколько единиц, остальные стоят и ждут (или умирают под обстрелом).
    Варианты создания лабиринта: узкие проходы на местности, специфичная застройка, специфичная организация войсковых единиц (юнитов) или любые сочетания всего перечисленного.

    Многое зависит от доп.данных и по этой таблице - не возможно ответить на Ваш вопрос. Нужны ещё данные.
    Ответ написан
  • Будет ли лучше делать статьи под один ключ?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Я бы поступил так:
    Все вопросы - нужно рассортировать в группы по ключам и их синонимам.
    На каждую группу: 5-6 топ-синонимов ключа в тексте в одну статью.
    Ответ написан
    1 комментарий
  • Где найти источники для самостоятельного изучения с целью создания интернет-магазина?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    у меня есть опыт в созданий сайтов на собственном движке
    Покажите Ваш код движка (ссылку на github и т.д.) или сайт, работающий на нём.

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

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Самое простое - Watermark.
    2. Сложнее - частичная доставка с сервера выбранной области изображения с шифрованием и расшифровкой на клиенте, и никогда не отображать изображение целиком. (т.е. типа контейнера со скроллом внутри канваса по аналогии с гугл-мапс).
    3. Хардкорный стиль - Adobe Flash Application!
    4. "Puzzle" - "хаотичная" (только с виду!) динамическая нарезка в режиме спрайт-карты и сборка через js. Формула - тоже разная каждый раз.
    5. "Калька" - многослойное изображение из нескольких с альфа-каналом (с прозрачностью)
    6. Класть изображение в JS-контейнер на серверной стороне, помещая в него метод отображения с привязкой к IP и браузеру клиента, и ровно на 15 секунд (чтобы загрузил и всё) и бинарные шифрованные данные, после загрузки скрипта у клиента - запрашивать токен с сервера на расшифровку данных.
    (методы можно комбинировать)
    Ответ написан
    4 комментария