Jump to content

Veseloff

Moderator
  • Posts

    3,457
  • Joined

  • Last visited

  • Days Won

    40

Everything posted by Veseloff

  1. В массиве a хранятся номера кирпичей с первого по последний. Вот так: a[1] = 1 a[2] = 2 a[3] = 3 a[4] = 4 Ключ массива — номер позиции по порядку. Элемент массива — номер кирпича. Соответственно, если мы поменяем второй и третий кирпичи местами, то массив будет иметь такой вид: a[1] = 1 a[2] = 3 a[3] = 2 a[4] = 4
  2. Т.е. тащим и во время движения проверяем сверху вниз и без цикла? 4) В смысле? Ну вот давай на более живом примере. Вот есть у нас 4 кирпича по 50 пикселей высотой. Стоят они по порядку: 1, 2, 3, 4. t=0 // это временная переменная, заполним только на время перетаскивания N=4 // Количество кирпичей M=50 // Высота кирпича a=array(1=>1, 2=>2, 3=>3, 4=>4) // Массив, в котором храним информацию о расположении кирпичей Допустим, мы потянем третий кирпич наверх. Берём кирпич — пока ещё никуда не переместили, просто кликнули. Его координата y=150. floor(y/M)=floor(150/50)=3. То есть, исходя из координат, мы выясняем, что тянем мы именно третий элемент. В переменную t запишем то, что у нас хранится в a[3], то есть «3», а в a[3] запишем «0», так как сейчас это место у нас пустует. Тянем его наверх. Он переместился на 1 пиксель вверх, наступило событие, чтобы вызвать функцию проверки кирпичей. Сейчас координата иаскаемого кирпича = 149. Выясним над каким же кирпичом у нас сейчас занесён таскаемый. floor(y/M)=floor(149/50)=2, то есть на вторым. Проверим что у нас там на втором месте. a[2] имеет значение «2», то есть там второй кирпич. Значит, надо его куда-то подвинуть. Смотрим наверх. a[1]==1, то есть там есть кирпич, значит, не получится туда подвинуть. a[3]==0, то есть нам надо туда перекинуть второй кирпич. a[3]=a[2], a[2]=0. Снова двигаем кирпич на 1 пиксель вверх. Он имеет координаты 148. Снова вычисляем, что это второй элемент, но a[2]==0, так что никуда нчиего двигать не будем. И тут мы его и бросим. a[2]=t. В итоге имеем такой массив a=array(1=>1, 2=>3, 3=>2, 4=>4). Ну и по анаглогии также можно двигать вверх. Само собой, добавляем проверку, чтобы не проверять элементы, если y>=M*N или y<=0.
  3. Ну вот как бы сделал я. Положим, имеем N кирпичей с айдишниками (классами, чем угодно, лишь бы уникальные идентификаторы были). Пусть они зовутся от br1, br2, ..., brN. Нам надо их таскать туда-сюда. 1. Создаём массив a[1..N], каждому элементу в соответствие проставлен номер кирпича. Для начала пусть они стоят по порядку. То есть будет массив вида array(1=>1, 2=>2, ..., N=>N) 2. Высота кирпича будет равна M. 3. Берём какой-нибудь кирпич. Пусть первый. Тогда a[1]=0. 4. пусть y=координата от верхней точки. Соответственно, если берём не первый кирпич, то не a[1], а a[floor(y/M)]=0 5. Тащим кирпич. if (a[floor(y/M)]!=0), то проверяем элементы сверху и снизу. В зависимости от того где у нас ноль, туда и двигаем элемент. То есть, по сути, получается, что, если верхняя граница двигаемого кирпича налезла на какой-нибудь кирпич, то этот кирпич сдвигается на свободное место. Тут получается, что мы избавлены от цикла (идёт прямое обращение по ключу) ну и алгоритму пофиг куда двигается кирпич — вверх или вниз.
  4. В какой ещё памяти? http://ru.wikipedia.org/wiki/HTTP#POST
  5. 1. $_GET 2. Регуляркой можно, например
  6. Если не будут меняться значения, то ENUM, а если будут, то, конечно, вторая таблица и связь по ключу.
  7. Создаём логины и пароли. При вводе проверяем совпадают ли они. Если да, то атворизуем, если нет, то не авторизуем. Пароли лучше хранить в виде хэшей.
  8. ffmpeg в помощь — там вообще всё можно за 20 минут собрать
  9. Veseloff

    INT - UNSIGNED

    PHP делает их float, если превышает int. А из БД получаются вообще, наверное, string.
  10. Оно вроде как отменяет распостранение события на последующие элементы, на которые это событие тоже может подействовать
  11. В общем, сделал я некоторое подобие всплывающей подсказки при наборе текта в поиске (по смыслу походит на такой же у яндекса, например). Блок вылезает, встаёт на нужное место и всё хорошо. Вот только не знаю как его закрыть при нажатии куда угодно за пределы этого блока. Использую jQuery. Если сделать, скажем $(document).click(function(){$('#hint').hide()}); то куда не кликни, блок закроется. А вот как сделать так, чтобы блок не закрывался при клике на него самого?
  12. Да вроде для фаерфокса есть плагины, которые видео умеют стягивать
  13. Я вообще не понимаю почему сравнивают вёрстку и программирование. Это как выяснять что лучше — тёплое или мягкое. Нельзя сказать, что программирование сложнее и требует больших навыков, чем вёрстка, а говорят так часто. Тем более странно, когда говорят: «Вот сейчас выучу вёрстку, а потом возьмусь за похапе и буду программистом» — это в корне неверный подход. Лично для меня верстать намного сложнее, чем писать на PHP, хотя бы потому, что я пишу под конкретную платформу, которую я же и указываю в техтребованиях, а вёрстка специфична для разных браузеров и там встречается гораздо больше нетривиальных задач. Что касается «найти специалиста», то тут и программиста хорошего найти проблематично — особенно на PHP. Очень многие считают PHP плохим и ущербным языком, потому что начитались об этом в интернетах, и не считают нужным осваивать его тонкости и особенности, как и теоретические аспекты программирования в целом. Многие надеются, что вот сейчас они попрограммируют на PHP немного, а потом будут кодить, скажем, на C, где и срубят куш. В итоге человека не берут работать программистом на си, поскольку он не программист вообще (а си не прощает говнокода, сыпет ворнингами и вообще не компилится), а тот всё так же не хочет ничего учить, наивно полагая, что всё придёт само — замкнутый круг и рекурсия. Так что, если хочешь быть верстальщиком — будь им. Хочешь быть программистом — надо учить программирование. Вот так вот я думаю.
  14. Может, просто стоит сделать какой-нибудь текстовый элемент типа a или span и на него навесить onclick, который бы сабмитил форму?
  15. Это не перестраховка — это так надо. Почитайте о безопасности сайтов и всё поймёте.
  16. 1. Данные из POST хранятся в ассоциативном массиве $_POST. И вызываются как $_POST['name'] и $_POST['lastname'] 2. Отключайте register_globals — это зло.
  17. http://stepbystep.htmlbook.ru/ http://www.drupal.ru/book
  18. А просматривать каждую строчку — лучший вариант? По-моему, так 3 таблицы вполне себе хорошая структура для хранения данных. У меня, например, для хранения каталога на сайте используются 14 таблиц и работает это всё достаточно быстро, так как используются индексы. Вообще делать выборки без индекса — абсолютное зло. Не стоит бояться большого количества таблиц, стоит бояться плохих запросов. Чтобы определить качестов запроса достаточно посмотреть EXPLAIN. Для варианта с регэкспом будут просмотрены все 137к записей и ещё регэксп будет к ним применён. А хранить числа в текстовых полях — вообще бред сивой кобылы.
  19. Э-э-э... Ну я столько беру обычно за вёрстку. Я вообще ни разу не верстальщик и потому беру столько. Был бы крутым верстаком — брал бы в два раза больше. Удивительно, что 200 баксов это много — по мне так мало. А так, в среднем, основу для говносайта я стряпаю за 500$ — вёрстка + установка на хостинг + проведение мероприятий по внедрению (всякие инфоблоки создать и засунуть их в нужные места, ссылочки расставить...) Это без дизайна, наполнения и раскрутки — это за отдельную плату отдельным людям. Редко когда это занимает больше 8—10 часов.
  20. Оягребу. Регэксп просматривает каждую запись, отчего сервер скрипит как старая телега. Вы и правда считаете, что так можно делать?
  21. Ну почему же? Мне кажется, что, если руки растут из нужного места и голова работает, то можно и на вёрстке 100+ зарабатывать. Я вот, бывает, зарабатываю, допустим, 20к за 2 часа — например, я уже делал точно то же самое или просто знаю как задачу выполнить быстро, максимально всё автоматизировав. Для верстальщика, вероятно, так же — через три сотни макетов, 99% начинают повторять ранее сделанные с минимальными изменениями и их можно клепать, напрмер, за два часа. Пусть 200$ за макет ? 1 макет в день ? 20 рабочих дней в месяц, итого 4к$ в месяц, т.е. больше, чем 100 килорублёв. Может, я ошибаюсь, но мне логика событий кажется весьма вероятной.
  22. А зачем regexp? Или это так выглядит содержимое ячейки? Если да, то какой в этом смысл? Если уж совсем никак, то что-нибудь типа такого попробовать (42,[5-9]\d*|43|43,[0-4]|43,[0-3]\d*) Но советую так никогда больше не делать. И это привести в нормальный вид.
  23. Программизмом и администрированием. Ну и ещё оказываю всякие консультационные услуги населению.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy