#!/usr/bin/python # -*- coding: utf-8 #fun��o pra calcular a brincadeira das n rainhas num tabuleiro nxn def nrainhas(rainhas,filtro,cont,contm,n, linhas, colunas): #la�o pra testar todas as possibilidades em cada rainha for linha in linhas: for coluna in colunas: rainha2=(linha, coluna) print rainha2 raw_input("") a=1 na
#la�o que verifica a posi��o da rainha com a posi��o das rainhas #lista "rainhas". se estiver na mesma linha, coluna ou diagonal, #quebra raw_input("")o loop. for rainha in rainhas: dx=abs(rainha2[0]-rainha[0]) dy=abs(rainha2[1]-rainha[1]) if rainha[0]==rainha2[0] or rainha[1]==rainha2[1] or
dx==dy: else:
a=0 break a=1
#se a rainha passou por todo loop anterior... if a==1: #... inclui ela na lista "rainhas" rainhas.append(rainha2) print rainhas raw_input("") #a �ltima rainha � especial... if cont==n: filtro2=rainhas[:] filtro2.sort() #n�o quero que apare�a a mesma disposi��o de pe�as #em seq��ncia diferente if filtro2 in filtro: cont-=1 rainhas=rainhas[:contm] else: print rainhas filtro.append(filtro2) cont-=1 rainhas=rainhas[:contm] #as outras nem tanto! elif cont
nrainhas(rainhas,filtro,cont,contm,n,linhas,colunas) #decrementando as coisas e cortando a listra pra "mexer as pe�as" de tr�s pra frente contm-=1 cont-=1 rainhas=rainhas[:contm] #fim da fun��o! ################################################################################## ########### n=input("quantas rainhas? ") linhas=range(1,n+1) colunas=range(1,n+1) filtro=[] #meu primeiro la�o sempre fica fora da fun��o... :( for linha in linhas: for coluna in colunas: rainha2=(linha, coluna) rainhas=[] rainhas.append(rainha2) cont=2 contm=-1 nrainhas(rainhas,filtro,cont,contm,n, linhas, colunas)