您的位置:首页 > 编程语言 > Python开发

学习python3第一天,用八皇后练练手。

2018-02-06 14:41 387 查看
#!/usr/bin/python3

# -*- coding:gbk -*-

class EightQueens:

vn_sum = 0

#检查皇后的位置是否符合要求

def check_queens( self, pos ):

for i in range(0, len(pos) - 1 ):

for j in range( i + 1, len(pos) ):

if( abs( i - j ) == abs( pos[i] - pos[j] ) ):

return False

return True

#递归调用,生成8个皇后的位置。

def queens( self, num, pos ):

if( num == 8 ):

self.show(pos)

else:

for i in range(1,9):

if( i not in pos ):

pos.append(i)

if( self.check_queens( pos ) ):

self.queens( num + 1, pos )

pos.pop()

#显示结果

def show( self, pos):

self.vn_sum = self.vn_sum + 1

for i in range( 0, 8 ):

print( ". " * ( pos[i] - 1 ) + "X " + ". " * ( 8 - pos[ i ] + 1 ) )

print( " " )

pos = []

eq = EightQueens()

eq.queens( 0, pos )

print( '共 {} 种走法'.format( eq.vn_sum ) )
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: