|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.01.2014, 03:48 | #1 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
Кроссворд. Измененный алгоритм, оцените
Здравствуйте) Опять я пишу по поводу кроссворда, наверное вы уже видели мой алгоритм глупого сравнения каждого edit с образцом, код был громоздкий, вот моя <<тема>>, а теперь посмотрите, пожалуйста, вложения в этой теме, как вам мой новый алгоритм? Я смог оптимизировать его на столько, на сколько догадался, и на сколько опыта хватила, в принципе все так же просто, но кода меньше, думаю многие одобрят, так как алгоритм проверки не "слизал", а сам придумал, ну да ладно, смотрим, комментируем, одобряем, кстати, что в кроссворде еще можно улучшить? Кстати, всего букв 141, а слов 24, помогите составить верную пропорцию, чтоб по буквам определяла более точное среднее количество слов, или у меня пропорция в принципе тоже не плоха?
from dark to light)
|
25.01.2014, 19:13 | #2 |
Заблокирован
Регистрация: 31.03.2011
Сообщений: 976
|
Посмотрел методику исполнения. Не плохо. Советую рассмотреть такой алгоритм.
Во первых убираем все ячейки Edit с формы, и объявляем массив эдитов. Определяем размер кроссворда. К примеру 100 на 100 ячеек. Создаём шифрованный файл вопросов под каждый кроссворд примерно такого содержания. 10,10,1,вопрос,ответ 20,30,0,вопрос,ответ где первое число, номер ячейки по оси X, второе число номер ячейки по оси Y, третье число - горизонталь/вертикаль. Ну а дальше понятно. Пишем парсер этой таблицы, который будет инициировать Edit-ы массива Edit-ов, и располагать их согласно координатам X,Y количеством равным длине ответа на вопрос. Что это даёт? Это в первую очередь даёт возможность писать десятки кроссвордов, не вмешиваясь в бинарник программы. Естественно это уже будет новый проект. Так сказать Beta3. Могу оказать помощь на добровольном начале, так как сам интересуюсь различными логическими играми. |
25.01.2014, 19:13 | #3 |
Заблокирован
Регистрация: 31.03.2011
Сообщений: 976
|
Del Del Del
|
25.01.2014, 22:34 | #4 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
хм, не плохо придумали динамически создавать массив эдитов и раскидывать по форме, но боюсь с моими знаниями я до этого еще не скоро дойду) ну иногда накатывает озарение, так что можно попробовать)) кстати, люди добрые, гляньте процедуру закрытия форм1, на этапе тестирования получилось так, что программа отказалась закрываться после нажатия на кнопку проверить, а затем на крестик, больше такой ошибки не возникло, но все же, потестите, пожалуйста, а то запара полная
from dark to light)
|
25.01.2014, 23:30 | #5 |
Заблокирован
Регистрация: 31.03.2011
Сообщений: 976
|
|
25.01.2014, 23:55 | #6 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
о, до этого мне еще дальше) рисовал только простенький редактор, и то на практической работе с готовым кодом)) Ладно, но думаю не очень будет списываться
на форуме по данной теме, кстати, нашел баг, гляньте пожалуйста, заполните operatingsystem (вопрос1), нажмите проверить, затем нажмите No, и все, при нажатии на крестик программа отказывается закрываться(((
from dark to light)
|
26.01.2014, 00:13 | #7 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
Мало того, что создаете тонну GDI объектов которые самую малость грузят процессор т.к. в перемешку перекрывают друг-друга из-за надобности видеть кроссворд без мерцания и т.д. и т.п., так ещё и в возможностях себя же этим и ограничили. Очень надо бесить юзера вводить буковки по-очереди, в каждый edit по один штука. Почему бы не рисовать кроссворд самому? И простор больше и возможности. |
|
26.01.2014, 00:20 | #8 |
t45t
Участник клуба
Регистрация: 20.03.2012
Сообщений: 1,849
|
Проблема в алгоритмах) придумать то конечно можно, но всегда будут какие-то недостатки, и другой бред, потом в итоге алгоритм заброшен, время убито, программист негодует) так что лучше делать так, как знаешь (если работа имеет временные рамки, а если нет, то можно и помучить голову новым алгоритмом). Поправьте, если не прав)
from dark to light)
|
26.01.2014, 02:00 | #9 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Малость не правы, есть правильный подход к задаче и есть не правильный.
Наплодив 100500 компонент, которые вообще не предназначены для того чтобы из них кроссворды строить, вы создадите проблемы себе, а пользователи и так разбегутся сами Дам подсказку) StringGrid, это не компонент windows, рисуется самостоятельно. БОльшая часть там сделана за вас. Осталось только блокировать ненужные ячейки. |
26.01.2014, 09:08 | #10 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Алексей_2012, если уж скидываете архив, то прилагайте к нему и экзешник. Мне интересна тема по кроссвордам, но поучаствовать не могу т.к. нет компилятора Делфи. А искать его и устанавливать ради просмотра кода одной програмульки, как то не айс.
Из обсуждений я так и не понял, Ваша программка для разгадывания кроссворда или для составления?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 26.01.2014 в 09:13. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Японский кроссворд | Svеtиk | Помощь студентам | 2 | 25.07.2013 01:21 |
Кроссворд на stringgrid | Atoll93 | Помощь студентам | 1 | 08.06.2012 14:28 |
Массив измененный | Freeman-des | Помощь студентам | 6 | 17.01.2011 10:15 |
кроссворд Delphi | tatiana74 | Помощь студентам | 6 | 02.03.2010 15:44 |