Генератор игры судоку

Тема в разделе "Delphi - Компоненты", создана пользователем VahaC, 7 фев 2010.

  1. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
    Извините если вопрос не в том разделе.
    Проблема следующая, надо написать генератор игры судоку.
    С горем пополам кое чего написал (в прикреплённом архиве проект с комментариями).

    Скажите плиз чего там надо поправить чтобы все это нормально заработало.
     

    Вложения:

    • sudoku.zip
      Размер файла:
      5,7 КБ
      Просмотров:
      38
  2. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
    я балдею с активности на форуме
     
  3. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
  4. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
    спасибо но это для решения а я генератор пишу
     
  5. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    А вторую ссылку нажать руки отсохли?
     
  6. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
    прежде чем такое вот тут понаписать, не плохо было бы самому посмотреть что та прога не генерирует судоку, а просто грузит заготовки из файлов
     
  7. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    А если рендомно раставить 15 чисел и решить?
     
  8. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
    15 чисел это слишком мало,
    а если увеличить их число то проверки будут продолжатся вечность

    Добавлено: Вот если кого то интересует то здесь есть неплохой пример реализации называется SUDOKUTurk v.1.001.
    Правда и у него есть недостатки
    - комментарии на турецком
    - нет проверки на количество возможных решений (настоящая судоку имеет только одно решение)
     
  9. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    А какя разница? Кто проверять будет?
     
  10. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
    Возможно и никто. Но как показывает практика без той проверки в игре достаточно часто возникают ситуации в которых для дальнейшего решения требуется использовать метод "Научного Тыка Пальцем В Небо", так как в одной ячейке могут быть размещены несколько разных цифр (чаще всего две, но может быть и три и ....).
     
  11. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    А если сделать так:
    Генерим поле , развязиваем прогой, скриваем всё, рендомно выбираем ячейки для того что б показать.
     
  12. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
    так оно сейчас и работает из-за этого и возможность нескольких вариантов решений. Нужно вот так.

    - генерим поле

    - выбираем ячейку и проверяем количество возможных решений (если её скрыть)
    - если больше одного открываем обратно
    - если одно то оставляем скрытой

    -пытаемся с другой итак далее
     
  13. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
    Почему же спрашивал.
     
  14. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
    так что это совсем не генератор
     
  15. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
    Генератор то я нашёл, но он ведь генерит решённое судоку.
    После этой генерации нужно
    Но это жрёт уйму времени
     
  16. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
    То есть при скрытии ячейки мы должны проверять сколько теперь возможно решений
     
  17. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
    Я делаю вот так

    генерю решённое судоку (то есть все ячейки видимые)
    потом начинаю потихоньку их скрывать выполняя проверку описанную выше
    в результате этих проверок создание самой игры (прошу заметить, не решённого поля) длится очень долго (хотя решённое поле генерится практически мгновенно)
     
  18. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
    И я тоже так думаю но всё же есть генераторы которые делают всё это почти мгновенно, но к сожалению их исходников не нашёл
     
  19. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
Загрузка...

Поделиться этой страницей