websudoku_cpp
1.0.0
用於產生有效數獨謎題以及網路數獨解決方案的 Scraper。
Websudokucpp 是一個簡單的網頁抓取工具,用於從 Websudoku.com 下載數獨謎題和解決方案。核心 HTTP 請求功能是使用出色的 cpp-httplib 僅標頭庫來實現的。
為了抓取謎題和解決方案,websudokucpp 只需向 Websudoku.com 發出 HTTP 請求,並從生成的 HTML 中解析和
元素。
該專案可以非常輕鬆地構建 - 首先使用子模組克隆存儲庫,然後您可以像任何其他 CMake 專案一樣構建它。
foo@bar:~ $ git clone --recurse-submodules [email protected]:patrick--/websudoku_cpp.git
foo@bar:~ $ mkdir build
foo@bar:~ $ cd build
foo@bar:~ $ cmake ..
foo@bar:~ $ make
現在,您可以使用以下命令執行範例main.cpp
檔案:
foo@bar:~ $ ./websudoku_cpp
預設構造函數將難度設定為Puzzle_difficulty::hard
。
Websudoku ws = Websudoku();
但是,您也可以建立具有特定難度的實例。選項有:
Puzzle_difficulty::easy
Puzzle_difficulty::medium
Puzzle_difficulty::hard
Puzzle_difficulty::evil
Websudoku ws = Websudoku(Puzzle_difficulty::medium);
您也可以隨時更新難度:
ws.set_difficulty_level(Puzzle_difficulty::evil);
要真正產生拼圖,您需要進行下載。
ws.download_new_puzzle();
或者,假設您想要下載不同難度等級的謎題,但不一定想要更改實例的難度等級。
ws.download_new_puzzle(Puzzle_difficulty::evil)
下載拼圖後,您可以將其列印為字串或將其寫入檔案。這兩種方法都有一個可選的布爾include_solution
標誌,可以列印或寫入您的謎題以及解決方案。
std::cout << " Printing puzzle along with solution: " << ws.to_str( true ) << " n " ;
std::cout << " Writing puzzle with solution to file: " << " n " ;
ws.write_to_file( " foo.txt " , true );
輸出將如下所示:
9 7 6 - - - 5 8 -
- - - 4 - 7 6 2 -
3 - - 5 6 8 7 - -
- - - - - - 4 - 8
- 5 - 1 - 4 - 6 -
6 - 2 - - - - - -
- - 5 3 8 6 - - 7
- 1 7 9 - 2 - - -
- 6 3 - - - 2 9 5
------------------
9 7 6 2 1 3 5 8 4
5 8 1 4 9 7 6 2 3
3 2 4 5 6 8 7 1 9
1 3 9 6 2 5 4 7 8
7 5 8 1 3 4 9 6 2
6 4 2 8 7 9 3 5 1
2 9 5 3 8 6 1 4 7
4 1 7 9 5 2 8 3 6
8 6 3 7 4 1 2 9 5
------------------