python数独游戏源代码_使用Python编写数独游戏自动出题程序
數(shù)獨(dú)是一個(gè)很好玩的游戲,可以鍛煉推理能力。下面的代碼可以自動(dòng)生成數(shù)獨(dú)游戲題目。
from random import shuffle, randrange
def generate():
# 初始網(wǎng)格
result = []
line = list(range(1,10))
for i in range(9):
result.append(line)
line.append(line.pop(0))
# 注意,這里的切片很重要
line = line[:]
# Python允許函數(shù)的嵌套定義
def switchRows(first, second):
# 這里的括號(hào)和換行不是必須的
# 只是為了方便手機(jī)閱讀
(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])
# 隨機(jī)交換行
randomRows = list(range(9))
shuffle(randomRows)
for i in range(0,7,2):
switchRows(randomRows[i],\
randomRows[i+1])
# 隨機(jī)交換列
randomColumns = list(range(9))
shuffle(randomColumns)
for i in range(0,7,2):
switchColumns(randomColumns[i],\
randomColumns[i+1])
# 隨機(jī)清空一些格子
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)
運(yùn)行結(jié)果一:
運(yùn)行結(jié)果二:
運(yùn)行結(jié)果三:
歡迎加入本站公開(kāi)興趣群
軟件開(kāi)發(fā)技術(shù)群
興趣范圍包括:Java,C/C++,Python,PHP,Ruby,shell等各種語(yǔ)言開(kāi)發(fā)經(jīng)驗(yàn)交流,各種框架使用,外包項(xiàng)目機(jī)會(huì),學(xué)習(xí)、培訓(xùn)、跳槽等交流
QQ群:26931708
Hadoop源代碼研究群
興趣范圍包括:Hadoop源代碼解讀,改進(jìn),優(yōu)化,分布式系統(tǒng)場(chǎng)景定制,與Hadoop有關(guān)的各種開(kāi)源項(xiàng)目,總之就是玩轉(zhuǎn)Hadoop
QQ群:288410967
總結(jié)
以上是生活随笔為你收集整理的python数独游戏源代码_使用Python编写数独游戏自动出题程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: chmod 文件夹及子文件夹_了解lin
- 下一篇: ms查约束具体代码_记 Arthas 实