Танилцуулга#

Нэг өдөржин sudoku.com дээр судоку тоглосны эцэст хэд хэдэн асуулт төрсөн. Өмнө нь автоматаар бөглөх програм бичих талаар бодож байсан ч энэ удаа түүнээс илүүтэй нь хэрхэн үүсгэж(generate) байгаа нь сонирхол татсан.

  1. Хэрхэн generate хийж байна вэ?
  2. Яаж difficulty-г нь хувааж байна?
  3. Хамгийн дээд талдаа хэдэн тоо арилгаж болох вэ?

зэрэг асуулт төрж эхэлсэн тэгээд хайж үзэхэд backtracking ашиглаад solve хийдэг програм бичиж болох ч generate хийх нь илүү хэцүү гэж байсан. Энэхүү бичвэр нь судоку үүсгэхийн цаана яг ямар алгоритм ажиллаж байдаг, түүнийг хэрхэн C++ хэл ашиглан бичих талаар суралцсан тэмдэглэл болно.

Төлөвлөлт#

  • main.cpp
  • generator.cpp
  • solver.cpp гэсэн 3 файл ашиглана гэж бодсон.