Танилцуулга#
Нэг өдөржин sudoku.com дээр судоку тоглосны эцэст хэд хэдэн асуулт төрсөн. Өмнө нь автоматаар бөглөх програм бичих талаар бодож байсан ч энэ удаа түүнээс илүүтэй нь хэрхэн үүсгэж(generate) байгаа нь сонирхол татсан.
- Хэрхэн generate хийж байна вэ?
- Яаж difficulty-г нь хувааж байна?
- Хамгийн дээд талдаа хэдэн тоо арилгаж болох вэ?
зэрэг асуулт төрж эхэлсэн тэгээд хайж үзэхэд backtracking ашиглаад solve хийдэг програм бичиж болох ч generate хийх нь илүү хэцүү гэж байсан. Энэхүү бичвэр нь судоку үүсгэхийн цаана яг ямар алгоритм ажиллаж байдаг, түүнийг хэрхэн C++ хэл ашиглан бичих талаар суралцсан тэмдэглэл болно.
Төлөвлөлт#
- main.cpp
- generator.cpp
- solver.cpp гэсэн 3 файл ашиглана гэж бодсон.