编写一个能够运行的基于python3.11的数独游戏
时间: 2024-05-13 09:19:21 浏览: 10
以下是一个基于Python3.11的数独游戏代码示例:
```python
import random
# 创建数独游戏类
class Sudoku:
def __init__(self):
self.grid = [[0 for i in range(9)] for j in range(9)]
self.__generate()
# 生成数独游戏
def __generate(self):
nums = [i for i in range(1, 10)]
random.shuffle(nums)
self.__fill(0, 0, nums)
# 填充数独游戏
def __fill(self, i, j, nums):
if i > 8:
return True
next_i = i if j < 8 else i + 1
next_j = j + 1 if j < 8 else 0
for num in nums:
if self.__check(i, j, num):
self.grid[i][j] = num
if self.__fill(next_i, next_j, nums):
return True
self.grid[i][j] = 0
return False
# 验证填写数字是否合法
def __check(self, i, j, num):
row = [self.grid[i][x] for x in range(9)]
if num in row:
return False
col = [self.grid[x][j] for x in range(9)]
if num in col:
return False
square_i = i // 3 * 3
square_j = j // 3 * 3
for x in range(square_i, square_i + 3):
for y in range(square_j, square_j + 3):
if self.grid[x][y] == num:
return False
return True
# 打印数独游戏
def print(self):
for i in range(9):
for j in range(9):
print(self.grid[i][j], end=' ')
if j % 3 == 2:
print('|', end=' ')
print()
if i % 3 == 2:
print('-' * 21)
# 运行数独游戏
sudoku = Sudoku()
sudoku.print()
```
这是一个简单的数独游戏,可以生成一个新的数独游戏并打印出来。你可以根据需要进一步完善这个代码。