Hãy xây dựng một bộ giải sudoku bằng Python ngay hôm nay. Sudoku Puzzle là một câu đố rất phổ biến xuất hiện trên các tờ báo hàng ngày thu hút sự quan tâm của rất nhiều người. Có rất nhiều bài toán khó, chưa có lời giải về câu đố sudoku và cách khái quát hóa của chúng khiến câu đố này trở nên thú vị, đặc biệt đối với nhiều người yêu thích toán học Show
Câu đố Sudoku là gì?Trong câu đố Sudoku, chúng ta cần điền vào mỗi ô trống một số nguyên từ 1 đến 9 sao cho mỗi số từ 1 đến 9 xuất hiện một lần ở mỗi hàng, mỗi cột và mỗi ô nhỏ trong 3 nhân 3 Độ khó của câu đố này có thể thay đổi. Mức độ khó của các câu đố Sudoku càng cao, vấn đề nghiên cứu càng trở nên thách thức hơn đối với các nhà khoa học máy tính. Các câu đố khó hầu hết có ít biểu tượng quy định hơn Các câu đố Sudoku được xuất bản để giải trí có các giải pháp độc đáo. Một câu đố Sudoku được cho là đúng nếu nó có một giải pháp duy nhất. Một vấn đề nghiên cứu đầy thách thức khác là xác định cần điền bao nhiêu ô để câu đố Sudoku được hình thành tốt. Sudoku được hình thành tốt với 17 biểu tượng tồn tại. Không biết liệu có tồn tại một câu đố được hình thành tốt chỉ với 16 manh mối hay không. Càng ít manh mối, cơ hội có nhiều giải pháp càng cao Các bước để giải Câu đố Sudoku bằng Python
Triển khai Trình giải Sudoku trong PythonChúng tôi sẽ sử dụng phương pháp quay lui để tạo trình giải sudoku của chúng tôi trong Python. Quay lui có nghĩa là quay lại bước trước đó ngay khi chúng tôi xác định rằng giải pháp hiện tại của chúng tôi không thể tiếp tục thành một giải pháp hoàn chỉnh. Chúng tôi sử dụng nguyên tắc quay lui này để thực hiện thuật toán sudoku. Nó còn được gọi là cách thuật toán brute force để giải câu đố sudoku M = 9 def puzzle(a): for i in range(M): for j in range(M): print(a[i][j],end = " ") print() def solve(grid, row, col, num): for x in range(9): if grid[row][x] == num: return False for x in range(9): if grid[x][col] == num: return False startRow = row - row % 3 startCol = col - col % 3 for i in range(3): for j in range(3): if grid[i + startRow][j + startCol] == num: return False return True def Suduko(grid, row, col): if (row == M - 1 and col == M): return True if col == M: row += 1 col = 0 if grid[row][col] > 0: return Suduko(grid, row, col + 1) for num in range(1, M + 1, 1): if solve(grid, row, col, num): grid[row][col] = num if Suduko(grid, row, col + 1): return True grid[row][col] = 0 return False '''0 means the cells where no value is assigned''' grid = [[2, 5, 0, 0, 3, 0, 9, 0, 1], [0, 1, 0, 0, 0, 4, 0, 0, 0], [4, 0, 7, 0, 0, 0, 2, 0, 8], [0, 0, 5, 2, 0, 0, 0, 0, 0], [0, 0, 0, 0, 9, 8, 1, 0, 0], [0, 4, 0, 0, 0, 3, 0, 0, 0], [0, 0, 0, 3, 6, 0, 0, 7, 2], [0, 7, 0, 0, 0, 0, 0, 0, 3], [9, 0, 3, 0, 0, 0, 6, 0, 4]] if (Suduko(grid, 0, 0)): puzzle(grid) else: print("Solution does not exist:(") đầu ra ====================== RESTART: C:/Users/SIDDHI/sudoku.py =========== 2 5 8 7 3 6 9 4 1 6 1 9 8 2 4 3 5 7 4 3 7 9 1 5 2 6 8 3 9 5 2 7 1 4 8 6 7 6 2 4 9 8 1 3 5 8 4 1 6 5 3 7 2 9 1 8 4 3 6 9 5 7 2 5 7 6 1 4 2 8 9 3 9 2 3 5 8 7 6 1 4 Phần kết luậnĐó là tất cả để xây dựng bộ giải sudoku trong Python. Tôi hy vọng bạn đã vui vẻ khi đọc qua bài viết và tìm hiểu cách chúng tôi triển khai mã Psst… cũng có một cách dễ dàng hơn để xây dựng bộ giải sudoku trong Python Bạn có thể nhập sudoku py-sudoku. Mô-đun PyPI từ https. //pypi. tổ chức/dự án/py-sudoku/. Đây là một chương trình Python đơn giản tạo và giải các câu đố Sudoku m x n Blog này sẽ xem xét cách tạo một trò chơi gọi là sudoku trong python. Bài đăng này không phải là tất cả và cuối cùng của trò chơi sudoku nhưng nó sẽ là điểm khởi đầu tốt cho bất kỳ ai đang tìm kiếm một dự án mới để xây dựng và bạn cũng có thể sử dụng nó trong sơ yếu lý lịch của mình. Bạn cũng có thể sử dụng trò chơi Sudoku trong mã nguồn Python để cập nhật và tạo trò chơi cho 10×10, 12×12, v.v. Chúng tôi sẽ xây dựng một trò chơi sudoku bằng Python và PyGame. Nó sẽ có một GUI cơ bản sẽ tải các câu đố được tải sẵn từ API, sau đó người dùng có thể điền vào các hàng và cột bằng cách nhấn vào các khối. nội dung Trò chơi sudoku là gì?Sudoku là một trò chơi dựa trên logic và mục tiêu là điền các số vào lưới 9×9. Mỗi hàng phải chứa các số từ 1 đến 9. Và mỗi cột và ô con của lưới phải chứa số lần xuất hiện của số 1 bằng số lần xuất hiện của số 9 Những điều chúng ta cần làm để xây dựng sudoku trong Python
Trước khi bắt đầu lập trình, hãy cài đặt một thư viện có tên là Pygame cho Python. Sử dụng Terminal / Command Prompt của bạn, nhập lệnh sau Lệnh này sẽ tải xuống và cài đặt mô-đun Pygame mà chúng tôi sẽ sử dụng trong suốt dự án của mình
Lệnh này sẽ hoạt động trong tất cả các hệ điều hành (Windows, Linux và Mac) Bây giờ hãy bắt đầu lập trình
Trong phần mã này, chúng tôi đã nhập thư viện pygame, thư viện yêu cầu (thư viện yêu cầu được sử dụng trong python để nhận và đăng cuộc gọi) và chúng tôi cũng đã xác định kích thước màu nền của khung cửa sổ và màu lưới
Ở đây, trong phần này, chúng tôi sẽ sử dụng API và tìm nạp các số bắt đầu trong lưới và để làm được điều đó, chúng tôi cần API sudoku, lý do là chúng tôi không thể sử dụng bất kỳ số ngẫu nhiên nào mà chúng tôi cần có một bộ số phù hợp cho người dùng .
Trong phần mã này, chúng tôi đã thêm chức năng của trò chơi sudoku.
Và chúng tôi cũng đã thêm kiểu phông chữ và cỡ chữ cho chữ số
Trong phần mã này, chúng tôi khởi tạo thư viện pygame và tạo khung cửa sổ, đặt chú thích cho nó và thêm màu nền vào khung cửa sổ.
Trong phần này, chúng tôi đã thêm lưới 9×9 xác định độ dày của đường kẻ kích thước và cũng thêm các đường kẻ đậm cho các khối sudoku ________số 8_______Và cuối cùng, chúng tôi thêm chức năng nếu chúng tôi nhấn phím thoát thì cửa sổ pygame sẽ đóng lại. đầu raSau khi bạn đã hoàn thành tất cả các bước cần thiết để xây dựng trò chơi Sudoku của mình, trò chơi này sẽ trông giống như hình trên và sẽ có mọi tính năng mà chúng tôi đã thêm vào trong quá trình này. Người dùng không thể chỉnh sửa các chữ số ban đầu được đặt vào vị trí của họ. Người dùng có thể nhập một số mới vào khoảng trống bằng cách nhấp vào khoảng trống và nhấn bất kỳ chữ số nào từ 0 – 9 trên bàn phím của họ. Người dùng chỉ có thể chỉnh sửa chữ số do chính họ thêm vào. Từ cuối cùngSudoku, trò chơi một người chơi hoặc câu đố. Nó bắt đầu với một lưới 9×9 bao gồm các ô, một số trống và những ô khác đã có số từ 1 đến 9. 81 ô có thể được chia thành chín ô 3×3. Khi mỗi ô, cột và hàng chứa chính xác số như trước, câu đố đã hoàn thành. Chúng tôi đã chia sẻ Trò chơi Sudoku hoàn chỉnh bằng Mã nguồn Python mà bạn có thể sử dụng trong các dự án của mình Và trong bài viết này, chúng tôi đã giải thích cách bạn có thể tạo trò chơi đó. Chúng tôi đã trình bày mọi thứ bạn cần biết về cách tạo trò chơi sudoku trong python. Chúng tôi đã xem qua logic cơ bản của trò chơi và cách bắt đầu và cũng đã xem qua một số cách khác nhau để bắt đầu. Từ cài đặt đến sáng tạo thực tế. Không cần phải nói, giờ đây bạn đã có các kỹ năng để tạo trò chơi sudoku của riêng mình bằng Python. Mặc dù luôn có nhiều điều để học nhưng thật tuyệt khi hiểu sâu hơn về những gì tạo ra một số trò chơi thú vị. Chúng tôi hy vọng bạn thích hướng dẫn này, nếu bạn có bất kỳ câu hỏi hoặc đề xuất nào, vui lòng để lại nhận xét bên dưới. Cảm ơn bạn rất nhiều cho việc đọc Làm thế nào để làm Sudoku?Sử dụng bút chì và thước kẻ của bạn, vẽ ba đường cách đều nhau trên mỗi hình vuông, sau đó vẽ ba đường cách đều nhau xuống mỗi hình vuông. Xem câu đố Sudoku hiện có nếu bạn cần tham khảo. Theo dõi các đường bút chì bằng bút đánh dấu. Thật dễ dàng để xóa đi bút chì và bạn không muốn bảng của mình bị phai màu
Làm cách nào để tạo Sudoku trong Java?Bắt đầu với một câu đố đã giải, thêm một số ngẫu nhiên vào tất cả các ô; . Bắt đầu với câu đố đã giải, hoán đổi hàng/cột giữa 1-2-3, 4-5-6, 7-8-9. Gán ngẫu nhiên 9 giá trị cho đường chéo chính sao cho mỗi ô có 3 giá trị khác nhau, sau đó tạo các giá trị còn lại bằng bộ giải
Quy tắc Sudoku là gì?Luật chơi sudoku rất đơn giản. Một hình vuông 9×9 phải được điền các số từ 1-9 và không lặp lại các số trên mỗi dòng, theo chiều ngang hoặc chiều dọc . Để thử thách bạn nhiều hơn, có các ô vuông 3×3 được đánh dấu trong lưới và mỗi ô vuông này cũng không được có bất kỳ số lặp lại nào. |