#!/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 ) )
# -*- 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 ) )