나는 내 코드의 일부분을 가지고 있는데, 나는 그들이 서로 공격하지 않도록 여왕 배치의 행, 열 및 대각선을 검사하는 함수를 작성했습니다. 현재 내가 대각선 기능에 문제가있어 : 여왕 떨어져 있지만하지 않을 때의 경우 두 개 이상의 하나 개의 길이 때nqueen에서 대각선 방향으로 확인하기
def checkDiagonal(T):
for i in range(len(T) - 1):
if abs(T[i] - T[i + 1]) == 1:
return False
return True
이 기능의 문제점은 그것이 단지 생각하는 것입니다.
예, N = 7이 인쇄되면 :
Enter the value of N: 7
0 Q 0 0 0 0 0
0 0 0 0 0 0 0
0 0 X 0 0 0 0
0 0 X 0 0 0 0
0 0 X 0 0 0 0
0 0 X 0 0 0 0
Q 0 0 0 0 0 0
출력에서 Q는 I 코드에 설정된 부분적인 해결책이다. X는 여왕을위한 다음 가능한 위치이지만, 출력에서 여왕에게 분명히 대각선이며 공격받을 X가 하나 있습니다. 경우에만> 우측 경우 대각선 -
부분적인 해결책리스트 = [6,0]를,이 경우는 T로 함수에 전달한다
입력 매개 변수 'T'는 무엇입니까? – JohanL
@JohanL 부분적인 솔루션 목록 [6,0] – Electric
그리고 테스트 할 X 위치를 어떻게 알 수 있습니까? 아니면 모두 테스트 해 보시겠습니까? 그런 경우에'N'은 가지고있는 것이 좋을 것입니다. – JohanL