IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Кроссворд...
corazon
сообщение 23.05.2005 18:34
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Женский
Реальное имя: Евгения

Репутация: -  0  +


Задали нам сделать кроссворд на дельфи...есть вопросы (или для простоты - слова), ответы(слова) надо ввести в определенное место в стринггриде и потом проверить правильно ли введено, если где то не правильно (пересечение слов не совпало или вообще слово не то), то как то это показать.... вот... вопросы:
1) Как выделить определенную ячейку в стринггриде?
2) Может у кого либо есть алгоритм проверки ввода слов...
3) Как выделить ошибку?
Буду благодарна за любую помощь ))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Бродяжник
сообщение 24.05.2005 12:14
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


Corazon, идеи следующие.
Наиболее простой выглядит идея, когда у нас есть правильно заполненный кроссворд, который мы храним в виде матрицы символов. Например:
Код

СТОЛ
--К-
--Н-
--О-

(Загаданы слова СТОЛ и ОКНО, неиспользуемые клетки заполнены символом "-").
Наши попытки решить кроссоворд мы храним либо прямо в гриде, либо (для унификации) в еще одной матрице. Есть кнопочка "проверить", по нажатию на нее мы в цикле ёпробегаемся по эталонной матрице и по нашему решению и поэлементно сверяем. И если обнаруживаем разногласия, то соответствующие элементы в гриде подкрашиваем каким-то цветом. Поэтому решение задачи я бы начал с создания "редактора эталонных матриц". На форме есть грид, кнопочки "очистить", "сохранить" и "загрузить". Пользователь побуквенно заполняет кроссоворд и сохраняет его в каком-либо виде в файл. Когда Вы сможете редактировать кроссворд, по аналогии можно будет написать и процедуру ввода решений. А процедура проверки - это уже дело техники. С этим мы поможем. А что Вы придумали? На каком этапе остановились?

Сообщение отредактировано: Бродяжник - 24.05.2005 12:21
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
corazon
сообщение 24.05.2005 19:30
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Женский
Реальное имя: Евгения

Репутация: -  0  +


то что я делала до этого заключалось немного в другом, там были эдиты (можно лист бокс) в них были слова, по нажатии на кнопочку должен был составляться кроссворд.... но потом задачу слегка измени так что вот.... начала делать по вашему варианту.... забила в стринггрид кроссворд, сохраняю как типизированный файл f:file of string[100];(записывает нормально) и при попытке чтения read(f,s);(s:string[100]; ) он ругается... чего то здесь я не понимаю...
и еще появились новые вопросы )) как сделать :
1) переход по ячейкам в стринггриде с помощью стрелочек вниз, вверх, вправо и влево
2) так чтобы когда я нажимаю на ячейку содержимое ее выделялось?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Бродяжник
сообщение 25.05.2005 8:27
Сообщение #4


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


Corazon, я через пару часов набросаю кой-чего. Может быть это вдохновит Вас на подвиг... smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
corazon
сообщение 25.05.2005 8:54
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Женский
Реальное имя: Евгения

Репутация: -  0  +


ok ))
а еще я не против пообщаться on-line...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Бродяжник
сообщение 25.05.2005 9:23
Сообщение #6


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


Для начала держите это. Это просто набросок, но когда Вы скажете, что улучшить, будем искать решение.
По поводу on-line ничего сказать не могу. С аськами и т.д. я как-то не дружу, а брожу сейчас в Киеве.


Прикрепленные файлы
Прикрепленный файл  Crosedit.zip ( 5.04 килобайт ) Кол-во скачиваний: 184
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Бродяжник
сообщение 25.05.2005 10:15
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


Вот еще. 1 архив - подправленная версия того, что выше (редактор кроссвордов), 2 архив - типа решалка.


Прикрепленные файлы
Прикрепленный файл  Editor.zip ( 4.45 килобайт ) Кол-во скачиваний: 182
Прикрепленный файл  Solver.zip ( 5.33 килобайт ) Кол-во скачиваний: 177
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
corazon
сообщение 25.05.2005 21:23
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Женский
Реальное имя: Евгения

Репутация: -  0  +


обидно что с асей не дружите ... можно было бы задавать вопросы..

по поводу архивов, я так поняла что в Editor я создаю кроссворд, а потом с помощью Solve его загружаем и там закрашивается где должны быть слова...
так вот если я правильно поняла то все здорово работает!!! smile.gif ( тока зачем такие бешенные цвета???)
я думаю что можно сделать еще openDialog и в нем сделать выбор схемы кроссворда ведь у нас будет не только один ... думаю смогу это сделать (не совсем, там при открытии другого кроссворда стринггрид почистить нада, как?) , а вот что с проверкой???
я файл прикрепила где openDialog делать пыталась...


Прикрепленные файлы
Прикрепленный файл  Solver.rar ( 8.13 килобайт ) Кол-во скачиваний: 153
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Бродяжник
сообщение 26.05.2005 9:17
Сообщение #9


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


Corazon,
я чуток подправил процедуру чтения из файла. Правки отмечены комментариями. Теперь грид очищается. За цвета прошу простить, виноват, поленился подбирать... По поводу проверки: сейчас проверка идет "в режиме ран-тайм", то есть как только вы ввели букву, она тут же проверяется, и в зависимости от правильности отображается разным цветом. Конечно, это не есть гут. Лучше было бы сделать так, как я уже думал: чтобы проверка производилась по нажатию какой-то кнопочки. Заодно можно было бы вести подсчет несовпадений, и если таких не окажется, то выводить радостное окшко с поздравлениями. Кроме того, стоило бы ограничить число разрешенных нажатий на кнопку "Проверить". Это можно сделать, но я еще не решил, хочу я этого, или нет... вредный я. rolleyes.gif ...посмотрим...


Прикрепленные файлы
Прикрепленный файл  SOLVER.ZIP ( 6.52 килобайт ) Кол-во скачиваний: 179
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
corazon
сообщение 26.05.2005 14:05
Сообщение #10


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Женский
Реальное имя: Евгения

Репутация: -  0  +


спасиба )) мне нравится как это работает ))тока я не нашла как сделан переход с помощью стрелочек.... мне вот еще что интересно... а как сделать так, чтобы в зависимости от того какой кроссворд открыт, загружались вопросы, например в листбокс..... и по поводу кнопочки "проверка" может стоит? rolleyes.gif ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Бродяжник
сообщение 26.05.2005 14:54
Сообщение #11


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


По поводу вопросов к кроссворду - предлагаю следующее решение (оно не блестящее, но работающее). Смотрите: вот у нас есть файл с кроссвордом: CROSWORD.DAT. Хорошо; создаем в "Блокноте" текстовый файл с вопросами и обзываем его тоже CROSWORD, но расширение даем VPR: CROSWORD.VPR. После загрузки кроссворда из файла CROSWORD.DAT меняем расширение, и читаем вопросы из CROSWORD.VPR. Подробности смотрите в коде.
По поводу стрелочек - хи-хи... сделано было так. Когда мы просто поставили на форму грид, то по нему уже и так можно ходить. Проблемы начинаются, когда мы беремся его редактировать. Отключаются клавиши "влево" и "вправо" - они переключаются на редактирования текста в ячейке. И перейти в соседнюю ячейку можно только после нажатия на ЭНТЕР. Поэтому я сделал что: я заставил программу после каждой нажатой буквы-цифры имитировать нажатие на ЭНТЕР. Это сделано здесь:

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if key <> #13 then
begin
StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row] := Key;
Key := #13;
StringGrid1.OnKeyPress(Sender,key); // имитируем нажатие
end;
end;

По поводу проверки... это зависит от того, как срочно это Вам нужно. Сегодня мне уже лень, завтра я могу не управиться, в выходные я этим заниматься не буду... если до вторника потерпите, то так и быть. В общем-то, помочь Вам было бы приятно.


Прикрепленные файлы
Прикрепленный файл  SOLVER.ZIP ( 7 килобайт ) Кол-во скачиваний: 149
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
corazon
сообщение 26.05.2005 20:29
Сообщение #12


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Женский
Реальное имя: Евгения

Репутация: -  0  +


А мне приятно что Вы мне помогаете smile.gif и огромное Вам за это спасибо!!!!
до вторника я смогу подождать, у меня среда - день программирования...
с вопросиками разобралась - здорово придумано )), но... там есть циферки... а в стринггриде нет..., т.е. куда вводить то эти слова непонятно...что с этим можно сделать?
и еще здесь 10*10, а если будет больше? я попробовала поменять на 15 не очень то хорошо получилось(потом вернула снова 10 )... а можно размер читать из файла, и устанавливать размер стринггриду что бы не было прокруток? что бы было все красиво и аккуратненько ))
а в файле CROSWORD1 это 15*15


Прикрепленные файлы
Прикрепленный файл  Solver.rar ( 9.6 килобайт ) Кол-во скачиваний: 141
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Бродяжник
сообщение 27.05.2005 8:05
Сообщение #13


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


Ладно... будет Вам счастье. (Лишь бы с инетом ничего не случилось). smile.gif
Последние новости проекта: Готовность 85%.

Сообщение отредактировано: Бродяжник - 27.05.2005 12:07
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
corazon
сообщение 27.05.2005 13:27
Сообщение #14


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Женский
Реальное имя: Евгения

Репутация: -  0  +


smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Бродяжник
сообщение 30.05.2005 9:03
Сообщение #15


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


Ну, держите!
В архиве есть файл README.TXT - там краткое описание.


Прикрепленные файлы
Прикрепленный файл  NEWVERS.ZIP ( 12.69 килобайт ) Кол-во скачиваний: 213
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
corazon
сообщение 30.05.2005 18:08
Сообщение #16


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Женский
Реальное имя: Евгения

Репутация: -  0  +


smile.gif Спасиба, пасиба, пасиба!!!! )) суперская прога получилась!!! тока вот мне интересно как я буду объяснять это нашей программистке ... явно заподозрит что то неладное ))
пасиба еще раз, буду обращаться за помощью! ;)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Бродяжник
сообщение 31.05.2005 8:54
Сообщение #17


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


smile.gif
Желаю удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
corazon
сообщение 1.06.2005 18:38
Сообщение #18


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Женский
Реальное имя: Евгения

Репутация: -  0  +


Спасиба smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Dark
сообщение 13.06.2005 10:14
Сообщение #19


Знаток
****

Группа: Пользователи
Сообщений: 408
Пол: Мужской

Репутация: -  3  +


расскажи как ты ее сдала =))))


--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 8.07.2025 21:14
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"