|
|
|
| Тутачки возникла необходимость написать скрипт классического онлайн - кроссворда...
Т. е. надо, что б пользователь имел возможность вводить в форму слова, ну и в конце сверяться с ответами. Как обычно это делают??? Какой инструмент языка PHP в данном случае уместен?
Как бы Вы поступили на моём месте? (Предполагается, что готовый кроссворд уже есть, например, с какого - нибудь журнала, и задача стоит реализовать его в "электронном" варианте, т.е. написать его скрипт!). Поделитесь, плис, своими идеями! Жду ответов! | |
|
|
|
|
|
|
|
для: Loobtuff
(01.12.2006 в 20:02)
| | Такие вещи удобнее на Flash писать, так как PHP серверный язык, а здесь потребуется не хилая клиентская часть. | |
|
|
|
|
|
|
|
для: cheops
(02.12.2006 в 02:22)
| | У меня хотели сайт с кроссвордами заказать (в цене не сошлись :D)
Я тогда просматривал Интернет на эту тему.
Тоже пришел к выводу про флеш.
Но на сайтах с кроссвордами в основном видел реализацию на Java (не путать с JS).
Но потом нашел сайтик с детским кроссвордом про спасателей (Чип, Дейл, Гайка, Рокфор, Вжик).
Там сделано было на JS.
Судя по комментам в JS-скрипте он (скрипт) создан каким-то прибамбасом. Т.е. типа рисовуешь кроссворд, бац и тебе готов скрипт.
Так что можно не только на Флеше. | |
|
|
|
|
|
|
|
для: targa
(02.12.2006 в 02:31)
| | Нашел ссылочку на тот детский кроссворд - http://www.cdrrhq.ru/quiz/crossword.html | |
|
|
|
|
|
|
|
для: Loobtuff
(01.12.2006 в 20:02)
| | Предлогаю хранить кроссворд в двумерном массиве, представив, что мы его чертим на клеточном листе. Пустые клетки - null, а содержимое кроссворда соответственно буквы.
Допустим есть такой кроссворд:
яма
--е--
--х--
Сначала задаем кроссворд в массиве
<?
$crossword = array(
array('я', 'м', 'а'),
array(null, 'е', null),
array(null, 'х', null)
);
?>
|
Потом выводим, стилизованную под кроссворд, форму - заполняйте пожалуйста.
<?
echo '<form action="'.$_SERVER['SCRIPT_NAME'].'" method="post">';
echo '<table>';
foreach($crossword as $i=>$row) {
echo '<tr>';
foreach($row as $j=>$letter) {
if ( is_null($letter) )
echo '<td bgcolor=black height=20 width=20> ';
else
echo '<td height=20 width=20 align=center>
<input type="text" size=2 maxsize=2 name="cw-'.$i.'-'.$j.'" value="'.@$_POST['cw-'.$i.'-'.$j].'">';
echo '</td>';
}
echo '</tr>';
}
echo '</table>';
echo '<input type="submit" value="Сверить результаты" name="do_submit">';
echo '</form>';
?>
|
И теперь, если нажата кнопка, проверяем правильность ввода.
<?
if ( isset ($_POST['do_submit']) ) {
$mistake = false;
foreach ($crossword as $i=>$row)
foreach($row as $j=>$letter)
if ( !is_null(@$_POST['cw-'.$i.'-'.$j]) && @$_POST['cw-'.$i.'-'.$j] != $letter )
$mistake = true;
if ($mistake)
echo 'Кроссворд решен неверно!';
else
echo 'Все правильно!';
}
?>
|
вот и все :) Скрипт универсальный, нужно только поменять массив $crossword. Целиком он в приложенном файле. Интереская была задачка, спасибо :) | |
|
|
|
|
|
|
|
для: Temnovit
(02.12.2006 в 03:09)
| | Temnovit, это конечно решение. Но если честно на тяп-ляп.
На кроссвордных сайтах можно:
- посмотреть подсказку
- проверка правильности введенного слова (тут уже таким массивом не обойдешься)
- помочь себе (сайт подставит слово которое Вы не знаете)
- просмотреть решение
И все это без перезагрузки страниц. Так что чисто серверные решения не годятся (о чем хеопс и указал). Тут уместны будут Flash, Java-апплеты, JavaScriptы, AJAX. | |
|
|
|
|
|
|
|
для: targa
(02.12.2006 в 03:46)
| | у меня есть на флеше два варианта.
http://puzzlepak.com/archive/main_cro_NEW.html - данные берет из внешнего файла и кроссворд генерирует сам. Если интересно могу расписать логику, чтобы перевести генерацию в скрипт php, а то в моем случае он генерит просто произвольно, а на php можно сделать максимально большой из указанного списка слов. если интересно, пишите на email. | |
|
|
|
|
|
|
|
для: targa
(02.12.2006 в 03:46)
| | Если нужна такая функциональность то вы абсолютно правы :) | |
|
|
|
|
|
|
|
для: Temnovit
(02.12.2006 в 03:09)
| | Пока останавливаюсь на Вашем варианте... Получился весьма симпатичный кроссворд... но требуется значительная доработка. Щас думаю о подсказках и проверке, а также о максимально удобном вводе слов в форму, да и вообще неплохо бы, что б ячейки ввода букв максимально соответстваовали размерам межклеточных пустот...
Но а за подсказку большое спасибо! | |
|
|
|
|
|
|
|
для: Loobtuff
(01.12.2006 в 20:02)
| | Передо мной точно такая же задача! :) Собираюсь скоро делать, уже есть некоторые мыслишки... | |
|
|
|
|
автор: ...... (08.12.2006 в 14:34) |
|
|
для: Loobtuff
(01.12.2006 в 20:02)
| | www.puzzles.times.lv | |
|
|
|