Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> online кроссворд 
:(
    Опции темы
m_maxser
Дата 19.7.2013, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 5.2.2008

Репутация: нет
Всего: нет



Здравствуйте,

Сегодня передо мной поставили задачу, целью которой является реализация онлайн кроссворда на одном из сайтов компании. ТЗ еще толком не сформулировано, задача пока в слишком общем виде. Однако, я должен, в краткие сроки, предложить один из вариантов:
  • использование готового алгоритма;
  • написание своего;
  • установка локального софта, который генерит «HTML»-страницу с кроссвордом, а потом ручками его размещать на сайте;
  • другое.
Первый  может оказаться самым оптимальным, главное – гибкость и изменяемость.  Второй мне интересен больше всего, его бы хотелось рассмотреть отдельно. Третий вариант самый неприятный, но зато реализовать его можно быстро, т.к. такой софт уже найден. Хотелось бы услышать предложения по каждому из методов.

Самописный вариант я вижу так: 
  • есть в БД словарь – термин и определение к нему (может на один термин несколько определений);
  • из словаря выбирается случайное слово, вокруг которого формируется все остальное, неким алгоритмом;
  • готовый кроссворд отображается в браузере у пользователя.
Если с первым и третьим пунктами все понятно, то реализация алгоритма – тот еще вопрос. Единственное, что пришло в голову – это заполнять сетку полным перебором слов из словаря (исключая уже выбранные) с остановкой на первом подходящем.  Как это реализовать? Рекурсия? Может, кто-то сталкивался и поделится алгоритмом?

PM MAIL   Вверх
Sanchezzz
Дата 19.7.2013, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60




Я бы предложил бы лучше сделать в виде конструктора с полуавтоматической генерацией

Словарь должен быть это по любому, это 1 таблица

2 таблица это название кроссвордов  id name , size_matrix  размер сеточной матрицы квадрата
3 Таблица это сущности связи слов из 2х таблиц

id = инкремент,
name = слово или id из таблицы слов.
help   = слову подсказке.
pos_x >=0,   пиксильное позиционирование по матрице квадрата.
pos_y=>0,
vertical = 0|1 расположить по вертикали или по горизонтали

На основе размера матрицы  у нас известная область пусть она будет равна  30,  1 единица это например 25px
Выставляем диву размер  30*25.

полу автоматическая генерация заключается в том что бы найти к указному слову подходящие слово с указными подсказками.
Запрос естественно проще сделать с WHERE LIKE 'г%%%%' AND CHAR_LENGTH(word) < 5 
Оставляем те буквы которые  должны быть обязательными в выдаче.

С автоматическим режимом нужно много пыхтеть 
Нужно выбрать слово от которого пойдет цепочка слов, также каждая буква это определенный размер в сетке нужно проверять не пересекаются ли слово с другим словом.
Как вариант можно сделать кусочек фрагмента гинирируеммого куска. 
Для конструктора, можно выбрать Query ui, плагин перетаскивания выставить ему перемещение  по сетки.
Минис всего написанного нужен будет человек который этим будет пользоваться, выполнять эту работу.


2 Воспользоватся готовым и не мучить мозг, это хорошо.
3 Поискать алгоритм на другом языке и реализовать его на php или любой другой яп, который знаете и подходит под вашу задачу.

генерация кроссворда на делфи
Еще я находил на C#






Это сообщение отредактировал(а) Sanchezzz - 19.7.2013, 13:11


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
m_maxser
Дата 22.7.2013, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 5.2.2008

Репутация: нет
Всего: нет



Sanchezzz, спасибо за пример на делфи, самому мне неудалось нагуглить. 
Может, все-таки, кто-нибудь посоветует готовое решение?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0662 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.