Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2009, 03:52   #1
С.М.С
Участник клуба
 
Аватар для С.М.С
 
Регистрация: 29.12.2008
Сообщений: 1,598
По умолчанию [Анти]-судоку

хотелось бы выслушать мнения и замечания по следующей программе! В архиве в excel файле есть примеры данных для расчёта.
Вложения
Тип файла: rar судоку.rar (184.5 Кб, 34 просмотров)

Последний раз редактировалось С.М.С; 23.04.2009 в 04:15.
С.М.С вне форума Ответить с цитированием
Старый 23.04.2009, 22:42   #2
С.М.С
Участник клуба
 
Аватар для С.М.С
 
Регистрация: 29.12.2008
Сообщений: 1,598
По умолчанию

И как можно убрать мерцание форм при открытии? программа была написана в VB6.
С.М.С вне форума Ответить с цитированием
Старый 23.04.2009, 22:57   #3
С.М.С
Участник клуба
 
Аватар для С.М.С
 
Регистрация: 29.12.2008
Сообщений: 1,598
По умолчанию

дошло, сначало надо загрузить, а затем уже отображать форму.
С.М.С вне форума Ответить с цитированием
Старый 23.04.2009, 23:12   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну ничего так.. Понравилась. Считает немного медленно, но не придираюсь ) Может, из-за особенностей алгоритма.

Как-то не понял, что это за "логика I и II порядка". Хотя подозреваю, что это разные алгоритмы для поиска.

Хорошо бы сделать запрет на ввод в поле более одной цифры.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 24.04.2009, 17:19   #5
С.М.С
Участник клуба
 
Аватар для С.М.С
 
Регистрация: 29.12.2008
Сообщений: 1,598
По умолчанию

Все верно, логика I и II порядка - это различные виды алгоритмов, об этом более подробно написанов в разделе "Справка".
Спасибо за замечание (Хорошо бы сделать запрет на ввод в поле более одной цифры.), учту! В архиве приведены примеры доступные для вычисления по имеющимяся алгоритмам их расчёт занимает в среднем 10 минут. Попадались задачи не под силу (пока) этой программе и тогда просчёт занимает более 30 минут, после чего выводится сообщение о невозможности расчёта. В этом случае можно попробовать самому рассчитать, а для облегчения задачи воспользоваться опцией
-логика I порядка.
С.М.С вне форума Ответить с цитированием
Старый 24.04.2009, 18:42   #6
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Работает медленно, интерфейс ужасный
пыщь
JTG вне форума Ответить с цитированием
Старый 24.04.2009, 21:58   #7
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Ошибку нашел - при полностью пустоп поле если нажать "решить судоку", то она намертво зависает.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 25.04.2009, 01:11   #8
С.М.С
Участник клуба
 
Аватар для С.М.С
 
Регистрация: 29.12.2008
Сообщений: 1,598
По умолчанию

JTG<Работает медленно, интерфейс ужасный >
я собственно и обратился сюда, чтобы узнать ((что именно)) не нравится в интерфейсе и работе с программой.

ROD<Ошибку нашел - при полностью пустоп поле если нажать "решить судоку", то она намертво зависает.
>

Это не ошибка! в программе два метода, расчёта:
- программа находит и заполняет ячейки которые могут иметь одно единственное значение.
- программа находит и заполняет ячейки имеющие два возможных значения т.е. в ячейку подходят два числа. В этом случае в ячейку записывается первое значение и расчет ведётся по первому методу, если просчёт не привел к полному решению, либо привёл к появлению ошибки, то происходит сброс значений и переход к следующему числу.
Так вот если Вы ни ввели ни одного числа, либо недостаточное количество для полного расчета, то программа выдаст уведомление о невозможности решения, но это будет минут через 40 после запуска, после проверки всех возможных и доступных вариантов. В этой ситуации придётся поработать немного самому. мне ещё не встричались не решаемые задачи.

попытаюсь рассказать подробнее о методе решения в ситуации если Вы запустили расчёт и получили уведомление о невозможности расчета, а такое сообщение Вы получите обязательно, если программе не хватает "мозгов".
-переходите на ручной режим управления
- очищаете рабочее поле, если ячейки выделены синим цветом, нажимаеете "снять блокировку", "очистить"
- заполняете рабочее поле имеющимися значениями
- выбираете "логика I порядка" в этом случае программа будет заполнять ячейки имеющие одно единственное значение на данный момент расчета(это намного быстрее, того если бы Вы сами перебирали и запоминали огромное количество вариатнов)
- нажимаете "решить
- после заполнения возможных ячеек, т.е пока были ячейки в которые можно было вписать одно единственное значение.
- жмете "блокировка" тем самым не позволяете изменять значения выделенные синим цветом - это будит удобно в дальнейшем
- Пока Сами, определяете возможные числа в пустой ячейки и записываете в неё число из возможного набора
- жмете "решить
Если во время расчета с учётом введённого числа появится ошибка, это 100% что введённое число ошибочно, об этом вы будите уведомлены и всё поле будет очищено, кроме выделенных синим цветом. далее вписываете следующее число и повторяете рассчёт.
Но, может быть ситуация, что с несколькими по очередно введёнными числами рассчёт производится до некотрого состояния. В этом случаее решать Вам, лично я беру другую ячейку.
С.М.С вне форума Ответить с цитированием
Старый 25.04.2009, 12:49   #9
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Ну по поводу интерфейса - зачем создавать окно в окне? Вместо того, чтоб закрашивать квадрат красным при вводе 2 одинаковых цифр в ряд, лучше просто не давать пользователю это сделать (и вообще меньше движений мышь-клавиатура, сделать возможным ввод только мышью: кликнул по ячейке - вылезла менюшка с разрешёнными цифрами). Всякие разноцветные фоны тоже далеко не всем понравятся.

А быстродействие - ну что делать, оптимизируйте Есть реализация алгоритма Dynamic Links для судоку, он быстрее, чем всякие жадные и back-trace.

Ну и ещё смотря для кого программа. Если это курсовая и т.п., то и так сойдёт
пыщь
JTG вне форума Ответить с цитированием
Старый 25.04.2009, 13:05   #10
С.М.С
Участник клуба
 
Аватар для С.М.С
 
Регистрация: 29.12.2008
Сообщений: 1,598
По умолчанию

у меня таких курсовых нет, я судовой электромеханик, программа - зарядка для мозгов. Оптимизировать код можно, в будущем займусь. А вот выделение ячеек другим цветом программно необходимо, так было проще, т.к свойство было Enabled задействовано и нужно было что-то ещё параллельно. по поводу менюшки согласен, вот сейчас и думаю как это сделать в VB/
Спасибо за замечания, со всем согласен, переделаю.
С.М.С вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм решения судоку Alistan Общие вопросы C/C++ 5 27.04.2011 16:00
Логика для Кроссвордов Судоку. С.М.С Свободное общение 7 02.04.2009 16:07
как удалить анти вирус( касперский 2006)если она не работает и ее не возможно удалить Alar Общие вопросы Delphi 0 29.10.2006 21:36