Судоку является логической головоломкой, действие которой разыгрывается на сетке размером 9 х 9. Каждый квадрат содержит цифру от 1 до 9. Ноль означает пустой квадрат.
Сетка разделена на девять частей, размер каждого 3 х 3. При размещении цифры нужно учитывать определенные ограничения. Размещенная цифра не должна повторяться в следующих местах:
Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.
- Горизонтальный ряд размещения;
- Вертикальный столбец размещения;
- Часть 3 х 3 размещения.
Используйте массив с фиксированным размером (9 х 9) для хранения сетки Судоку. Если функция или метод нуждается в редактировании массива, помните, что вам нужно передать массив с указателем.
Имплементируйте метод для установки цифры на определенное местоположение. Данный метод должен возвращать ошибку, если размещение цифры нарушает правила.
Также создайте метод для очищения квадрата от цифры. Данный метод не должен придерживаться правил, так как пустыми могут быть несколько квадратов (ноль).
Головоломка Судоку начинается с определенным набором установленных цифр. Напишите функцию конструктора для подготовки Судоку, используйте композитный литерал для уточнения начальных значений. Далее дан пример:
Начальные цифры находятся в фиксированном месте, их нельзя переписать или очистить. Модифицируйте программу так, чтобы она могла идентифицировать, какие цифры фиксированные, а какие вписаны пользователем. Добавьте подтверждение, что возвращает ошибку при попытке установить или очистить цифру к клетку, где уже есть фиксированная цифра. Изначально цифры, что являются нулями, могут быть установлены, переписаны или очищены.
Вам не обязательно писать решение Судоку для данного упражнения, но обязательно протестируйте программу и убедитесь, что все правила соблюдаются правильно.
В конце можете сравнить свой вариант с нашим.
Администрирую данный сайт с целью распространения как можно большего объема обучающего материала для языка программирования Go. В IT с 2008 года, с тех пор изучаю и применяю интересующие меня технологии. Проявляю огромный интерес к машинному обучению и анализу данных.
E-mail: vasile.buldumac@ati.utm.md
Образование
Технический Университет Молдовы (utm.md), Факультет Вычислительной Техники, Информатики и Микроэлектроники
- 2014 — 2018 Universitatea Tehnică a Moldovei, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Universitatea Tehnică a Moldovei, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»