[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запутался в логике, помогите =)
McLotos
Обычно я какие-то свои логические выводы представляю в виде кода, мне так проще понять что имеется ввиду, чтобы потом не забыть да и не запутаться.
Иногда я использую метод "утенка", т.е. пытаюсь детально объяснить что делает код, чтобы прийти к каким-то новым выводам или другому решению.
Я разобрал свои выводы на примитивы, теперь пытаюсь собрать их в одно целое решение, но что-то никак, чего-то не хватает.
Входящие данные:
$div1 и $div2 - два массива координат, в данном случае это абстрактные данные.
ключи обоих массивов:
str_start - строка начала блока
str_end - строка конца блока
pos_start - позиция в строке начала
pos_end - позиция в строке конца

Обычно рассуждения начинаются со 100%ного утверждения:
100%ное утверждение
if(($div1['str_start']<$div2['str_start']) && ($div1['str_end']>$div2['str_end']))
{echo 'div2 внутри div1 это true';}
//у него может быть всего 2 варианта
//если оно false тогда нужно проверить не получим ли мы true если поменяем переменные местами
//если и во втором случае будет false то проводим другой анализ. точнее более детальное исследование ситуации

Если требуется дополнительное исследование то я делаю примерно что-то такое
//сверим начала блоков
function test1(){
if($div1['str_start']==$div2['str_start']) {return true;}
else{return false;}}

//сверим концы блоков
function test2(){
if($div1['str_end']==$div2['str_end']) {return true;}
else {return false;}}

//проверим общую картину
if(test1()==true && test2()==true)
{echo 'блоки начинаются и заканчиваются в одних строках нужно проверить позиции в строке и понять кто раньше начался';}
elseif(test1()==true && test2()==false)
{echo 'блоки начинаются в одной строке а заканчиваются в разных нужно понять кто закончился позже';}
elseif(test1()==false && test2()==true)
{echo 'блоки начинаются в разных строках а заканчиваются в одной нужно понять кто начался раньше';}
elseif(test1()==false && test2()==false)
{echo 'у блоков разные строки начала и конца возвращаемся к 100%ному утверждению и ищем ответ там';}

Вот эти два условия очень похожи друг на друга
elseif(test1()==true && test2()==false)
{echo 'блоки начинаются в одной строке а заканчиваются в разных нужно понять кто закончился позже';}
elseif(test1()==false && test2()==true)
{echo 'блоки начинаются в разных строках а заканчиваются в одной нужно понять кто начался раньше';}

Не могу понять что делать дальше.

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.