python数独游戏源代码_使用Python编写数独游戏自动出题程序
數獨是一個很好玩的游戲,可以鍛煉推理能力。下面的代碼可以自動生成數獨游戲題目。
from random import shuffle, randrange
def generate():
# 初始網格
result = []
line = list(range(1,10))
for i in range(9):
result.append(line)
line.append(line.pop(0))
# 注意,這里的切片很重要
line = line[:]
# Python允許函數的嵌套定義
def switchRows(first, second):
# 這里的括號和換行不是必須的
# 只是為了方便手機閱讀
(result[first],
result[second]) =\
(result[second],
result[first])
def switchColumns(first, second):
for index in range(9):
(result[index][first],
result[index][second]) =\
(result[index][second],
result[index][first])
# 隨機交換行
randomRows = list(range(9))
shuffle(randomRows)
for i in range(0,7,2):
switchRows(randomRows[i],\
randomRows[i+1])
# 隨機交換列
randomColumns = list(range(9))
shuffle(randomColumns)
for i in range(0,7,2):
switchColumns(randomColumns[i],\
randomColumns[i+1])
# 隨機清空一些格子
num = randrange(25, 50)
positions = {(randrange(9),randrange(9))\
for i in range(num)}
for row, col in positions:
result[row][col] = ' '
return result
def output(grids):
print('+'+'-+'*9)
for row in range(9):
line = '|'.join(map(str,grids[row]))
line = line.join(['|']*2)
print(line)
print('+'+'-+'*9)
grids = generate()
output(grids)
運行結果一:
運行結果二:
運行結果三:
歡迎加入本站公開興趣群
軟件開發技術群
興趣范圍包括:Java,C/C++,Python,PHP,Ruby,shell等各種語言開發經驗交流,各種框架使用,外包項目機會,學習、培訓、跳槽等交流
QQ群:26931708
Hadoop源代碼研究群
興趣范圍包括:Hadoop源代碼解讀,改進,優化,分布式系統場景定制,與Hadoop有關的各種開源項目,總之就是玩轉Hadoop
QQ群:288410967
總結
以上是生活随笔為你收集整理的python数独游戏源代码_使用Python编写数独游戏自动出题程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: chmod 文件夹及子文件夹_了解lin
- 下一篇: ms查约束具体代码_记 Arthas 实