C#, VBA Excel: Программу решения СУДОКУ бесплатно скачать на компьютер



1. Судоку не так проста…

японская головоломка Судоку

Судоку – это известная головоломка, появившаяся в Америке и ставшая культовой в Японии. Количество поклонников этого магического квадрата постоянно увеличивается. Появляются и все новые варианты: 5х5, 6х6, 7х7, 16х16 и т.д. Интеллект, логика, внимательность – помогают нам справиться с заданиями и получать заслуженное удовольствие.

Из Википедии мы знаем, что долгое время оставался открытым вопрос о минимальном количестве открытых клеток, необходимых для однозначного решения судоку. Например, не было известно, существует ли однозначно решаемая судоку, в которой известны (открыты) всего 16 клеток. Оказывается, для решения этого вопроса, потребовалось использовать проект распределённых вычисле́ний…

Технология distributed computing, grid computing, volunteer computing или распределённых вычисле́ний — способ решения трудоёмких вычислительных задач с использованием двух и более компьютеров, объединённых в сеть. Распределённые вычисления являются частным случаем параллельных вычислений, то есть одновременного решения различных частей одной вычислительной задачи несколькими процессорами одного или нескольких компьютеров. Поэтому необходимо, чтобы решаемая задача была сегментирована, то есть разделена на подзадачи, которые могут вычисляться параллельно.

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

Оказывается, только в 2012 году проект распределённых вычислений на платформе BOINC убедительно доказал, что однозначно решаемых судоку с 16 подсказками не существует…


2. VBA Excel для решения кроссворда Судоку


Я не ломал себе голову вопросом однозначности решений в зависимости от количества подсказок...
Так, из спортивного интереса, я когда-то написал программку для решения этой японской головоломки на VBA (Excel).
Целью было - просто проверять, имеется ли решение для данного варианта конкретной Судоку.
Поэтому и решал методом простого перебора с проверкой истинности условий по всем 18 линиям и 9 квадратикам.
решение Судоку в VBA Excel

Если Вы вписали число в клетку, то при старте (кнопка «Решить») шрифт в этой ячейке станет красным и уже ни программа, ни кнопка «Очистить» изменять ее не будут. Такое право (изменять или очищать красную ячейку) предоставляется только пользователю…
Алгоритм этот, конечно, работает не рационально и долго.
Почти целую минуту…
Хотя для человека это недостижимый результат…

решение Судоку исходный код VBA

Кого интересует код на VBA (Excel)
решение сплошным перебором – скачивайте бесплатно...


3. Интеллектуальное решение Судоку – программа на C# (Visual Studio 2010)

От жалости к компьютеру (его не рациональному труду) и зародилась мысль, решить задачу не методом сплошного перебора, а логично… наиболее коротким путем.

Идея: присваивать одно из альтернативных значений клетке только в том случае, если по методу исключений уже невозможно определить значение ни для одной из ячеек поля.

Минимум классов предметной области:

  • Доступность
  • Клетка
  • Регион
  • ход

Понятно, что и каждая клетка, и каждый регион, будь то строка, столбец или квадратик, в конкретный момент решения (на определенном ходе) обладают определенной доступностью – набором цифр, которые еще не использовались в этом регионе. Доступность может выступать предком для классов «клетка» и «регион».

А ход - представляет собой объект, который в начальный период присваивает одной единственной клетке альтернативное значение (именно одна единственная клетка получает инициализацию на очередном ходе, некое случайно-очередное значение), а затем выполняет цепочку необратимых (логически обоснованных) изменений, которые повлекло за собой это первое присвоение (по методу исключений).

Сколько клеток получат свое значение на одном ходе неизвестно – это дело конкретного случая.
Сколько будет ходов всего – тоже дело конкретного случая.
Но если алгоритм на определенном ходе заходит в тупик, то производится «откат» , то есть очистка всех ячеек измененных на этом ходу. Далее проверяется возможность выбора другого числа (поиск случайно-очередного значения) для этой клетки и/или откат еще одного хода.
Конечно, предметную область можно развивать и дальше… Добавлять новые методы, позволяющие еще более тщательно анализировать текущее состояние поля, перед тем как делать ход… Это, конечно, еще более сократит время решения… но для этого надо бы иметь соперника… С кем бы имело смысл соревноваться… А так, с точки зрения пользователя, программа работает практически мгновенно. При условии, что Судоку реальное (т.е. не менее 17 клеток на начальный момент заполнено)…

4. Судоку (Sudoku) бесплатно скачать программу на компьютер


поиск всех вариантов решения Судоку программа на C#

Скачивайте и тестируйте программу,

а через некоторое время исходный код будет открыт, и, конечно,
в первую очередь для читателей рассылки ! …

Можно использовать программу и для составления судоку
Набрасываете на поле несколько чисел, заставляете программу решить и начинаете некоторые клетки очищать…
Когда будете очищать очередную клетку, просто проверьте, что решение является единственным. Ведь по условию, правильная судоку должна иметь единственное решение… Иначе очистите другую…

5. Удобно использовать Судоку при онлайн (online) играх на время

Конечно, если Ваша цель – доказать себе, т.е. потренировать собственную способность логично и быстро мыслить, то ехе-шник Вам не нужен…
Но в жизни встречаются моменты, когда инструменты, многократно увеличивающие возможности человека, просто необходимы… Допустим, рассмотреть что-то очень далекое без бинокля не получается, а с биноклем – плевое дело. Так и эту программу следует рассматривать как инструмент, который полезен лишь в определенных случаях…

Какие бы сложные варианты головоломок Судоку (Sudoku) не встретились, вы можете не сомневаться, что решение будет найдено... И даже не одно, а все имеющиеся для данной комбинации подсказок…
Можете проверять себя…
Можете поражать противников скоростью просчета вариантов.

Другие примеры на тему «Компьютерные игры (учебные, простенькие)»

Другие примеры на языках «C»,«C++»,«C#»

Можно достаточно легко переделать программу на составление (генерацию) судоку...



Если на этой странице не нашлось того, что Вы так искали...

         Не расстраивайтесь, не все потеряно... Смело щелкайте...

исходный код на заказ. orenstudent.ru Автоматизация документов MS Office. orenstudent.ru исходный код на заказ. orenstudent.ru Помогите найти и устранить ошибку в исходном коде программы. orenstudent.ru Skype-консультирование по программированию
Скайп-консультации

Акция !!!
Весь код по 49 руб


требуются
школьники!


и СТУДЕНТЫ!
Кому не плевать
на деньги!
Сайт помощи студентам по программированию и информатике

Program code