![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
corazon |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 54 Пол: Женский Реальное имя: Евгения Репутация: ![]() ![]() ![]() |
Задали нам сделать кроссворд на дельфи...есть вопросы (или для простоты - слова), ответы(слова) надо ввести в определенное место в стринггриде и потом проверить правильно ли введено, если где то не правильно (пересечение слов не совпало или вообще слово не то), то как то это показать.... вот... вопросы:
1) Как выделить определенную ячейку в стринггриде? 2) Может у кого либо есть алгоритм проверки ввода слов... 3) Как выделить ошибку? Буду благодарна за любую помощь )) |
Бродяжник |
![]()
Сообщение
#2
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Corazon, идеи следующие.
Наиболее простой выглядит идея, когда у нас есть правильно заполненный кроссворд, который мы храним в виде матрицы символов. Например: Код СТОЛ --К- --Н- --О- (Загаданы слова СТОЛ и ОКНО, неиспользуемые клетки заполнены символом "-"). Наши попытки решить кроссоворд мы храним либо прямо в гриде, либо (для унификации) в еще одной матрице. Есть кнопочка "проверить", по нажатию на нее мы в цикле ёпробегаемся по эталонной матрице и по нашему решению и поэлементно сверяем. И если обнаруживаем разногласия, то соответствующие элементы в гриде подкрашиваем каким-то цветом. Поэтому решение задачи я бы начал с создания "редактора эталонных матриц". На форме есть грид, кнопочки "очистить", "сохранить" и "загрузить". Пользователь побуквенно заполняет кроссоворд и сохраняет его в каком-либо виде в файл. Когда Вы сможете редактировать кроссворд, по аналогии можно будет написать и процедуру ввода решений. А процедура проверки - это уже дело техники. С этим мы поможем. А что Вы придумали? На каком этапе остановились? Сообщение отредактировано: Бродяжник - 24.05.2005 12:21 |
corazon |
![]()
Сообщение
#3
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 54 Пол: Женский Реальное имя: Евгения Репутация: ![]() ![]() ![]() |
то что я делала до этого заключалось немного в другом, там были эдиты (можно лист бокс) в них были слова, по нажатии на кнопочку должен был составляться кроссворд.... но потом задачу слегка измени так что вот.... начала делать по вашему варианту.... забила в стринггрид кроссворд, сохраняю как типизированный файл f:file of string[100];(записывает нормально) и при попытке чтения read(f,s);(s:string[100]; ) он ругается... чего то здесь я не понимаю...
и еще появились новые вопросы )) как сделать : 1) переход по ячейкам в стринггриде с помощью стрелочек вниз, вверх, вправо и влево 2) так чтобы когда я нажимаю на ячейку содержимое ее выделялось? |
Бродяжник |
![]()
Сообщение
#4
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Corazon, я через пару часов набросаю кой-чего. Может быть это вдохновит Вас на подвиг...
![]() |
corazon |
![]()
Сообщение
#5
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 54 Пол: Женский Реальное имя: Евгения Репутация: ![]() ![]() ![]() |
ok ))
а еще я не против пообщаться on-line... |
Бродяжник |
![]()
Сообщение
#6
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Для начала держите это. Это просто набросок, но когда Вы скажете, что улучшить, будем искать решение.
По поводу on-line ничего сказать не могу. С аськами и т.д. я как-то не дружу, а брожу сейчас в Киеве. Прикрепленные файлы ![]() |
Бродяжник |
![]()
Сообщение
#7
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот еще. 1 архив - подправленная версия того, что выше (редактор кроссвордов), 2 архив - типа решалка.
Прикрепленные файлы ![]() ![]() |
corazon |
![]()
Сообщение
#8
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 54 Пол: Женский Реальное имя: Евгения Репутация: ![]() ![]() ![]() |
обидно что с асей не дружите ... можно было бы задавать вопросы..
по поводу архивов, я так поняла что в Editor я создаю кроссворд, а потом с помощью Solve его загружаем и там закрашивается где должны быть слова... так вот если я правильно поняла то все здорово работает!!! ![]() я думаю что можно сделать еще openDialog и в нем сделать выбор схемы кроссворда ведь у нас будет не только один ... думаю смогу это сделать (не совсем, там при открытии другого кроссворда стринггрид почистить нада, как?) , а вот что с проверкой??? я файл прикрепила где openDialog делать пыталась... Прикрепленные файлы ![]() |
Бродяжник |
![]()
Сообщение
#9
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Corazon,
я чуток подправил процедуру чтения из файла. Правки отмечены комментариями. Теперь грид очищается. За цвета прошу простить, виноват, поленился подбирать... По поводу проверки: сейчас проверка идет "в режиме ран-тайм", то есть как только вы ввели букву, она тут же проверяется, и в зависимости от правильности отображается разным цветом. Конечно, это не есть гут. Лучше было бы сделать так, как я уже думал: чтобы проверка производилась по нажатию какой-то кнопочки. Заодно можно было бы вести подсчет несовпадений, и если таких не окажется, то выводить радостное окшко с поздравлениями. Кроме того, стоило бы ограничить число разрешенных нажатий на кнопку "Проверить". Это можно сделать, но я еще не решил, хочу я этого, или нет... вредный я. ![]() Прикрепленные файлы ![]() |
corazon |
![]()
Сообщение
#10
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 54 Пол: Женский Реальное имя: Евгения Репутация: ![]() ![]() ![]() |
спасиба )) мне нравится как это работает ))тока я не нашла как сделан переход с помощью стрелочек.... мне вот еще что интересно... а как сделать так, чтобы в зависимости от того какой кроссворд открыт, загружались вопросы, например в листбокс..... и по поводу кнопочки "проверка" может стоит?
![]() |
Бродяжник |
![]()
Сообщение
#11
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
По поводу вопросов к кроссворду - предлагаю следующее решение (оно не блестящее, но работающее). Смотрите: вот у нас есть файл с кроссвордом: CROSWORD.DAT. Хорошо; создаем в "Блокноте" текстовый файл с вопросами и обзываем его тоже CROSWORD, но расширение даем VPR: CROSWORD.VPR. После загрузки кроссворда из файла CROSWORD.DAT меняем расширение, и читаем вопросы из CROSWORD.VPR. Подробности смотрите в коде.
По поводу стрелочек - хи-хи... сделано было так. Когда мы просто поставили на форму грид, то по нему уже и так можно ходить. Проблемы начинаются, когда мы беремся его редактировать. Отключаются клавиши "влево" и "вправо" - они переключаются на редактирования текста в ячейке. И перейти в соседнюю ячейку можно только после нажатия на ЭНТЕР. Поэтому я сделал что: я заставил программу после каждой нажатой буквы-цифры имитировать нажатие на ЭНТЕР. Это сделано здесь:
По поводу проверки... это зависит от того, как срочно это Вам нужно. Сегодня мне уже лень, завтра я могу не управиться, в выходные я этим заниматься не буду... если до вторника потерпите, то так и быть. В общем-то, помочь Вам было бы приятно. Прикрепленные файлы ![]() |
corazon |
![]()
Сообщение
#12
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 54 Пол: Женский Реальное имя: Евгения Репутация: ![]() ![]() ![]() |
А мне приятно что Вы мне помогаете
![]() до вторника я смогу подождать, у меня среда - день программирования... с вопросиками разобралась - здорово придумано )), но... там есть циферки... а в стринггриде нет..., т.е. куда вводить то эти слова непонятно...что с этим можно сделать? и еще здесь 10*10, а если будет больше? я попробовала поменять на 15 не очень то хорошо получилось(потом вернула снова 10 )... а можно размер читать из файла, и устанавливать размер стринггриду что бы не было прокруток? что бы было все красиво и аккуратненько )) а в файле CROSWORD1 это 15*15 Прикрепленные файлы ![]() |
Бродяжник |
![]()
Сообщение
#13
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ладно... будет Вам счастье. (Лишь бы с инетом ничего не случилось).
![]() Последние новости проекта: Готовность 85%. Сообщение отредактировано: Бродяжник - 27.05.2005 12:07 |
corazon |
![]()
Сообщение
#14
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 54 Пол: Женский Реальное имя: Евгения Репутация: ![]() ![]() ![]() |
![]() |
Бродяжник |
![]()
Сообщение
#15
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну, держите!
В архиве есть файл README.TXT - там краткое описание. Прикрепленные файлы ![]() |
corazon |
![]()
Сообщение
#16
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 54 Пол: Женский Реальное имя: Евгения Репутация: ![]() ![]() ![]() |
![]() пасиба еще раз, буду обращаться за помощью! ;) |
Бродяжник |
![]()
Сообщение
#17
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
![]() Желаю удачи! |
corazon |
![]()
Сообщение
#18
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 54 Пол: Женский Реальное имя: Евгения Репутация: ![]() ![]() ![]() |
Спасиба
![]() |
Dark |
![]()
Сообщение
#19
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: ![]() ![]() ![]() |
расскажи как ты ее сдала =))))
-------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
![]() ![]() |
![]() |
Текстовая версия | 8.07.2025 21:14 |