~cpp #include <iostream.h> // 상수 선언 #define NO 0 #define QUEEN 1 #define ROAD 2 int b[9][9]; // 체스판 선언 void ClearBoard(); void FillBoard(int i, int j); void main() { // 시작^^ int q[8]; // Col을 저장할 배열 int i, j; // 체스판 초기화 ClearBoard(); for(i=0;i<=7;i++) q[i] = 0; int line = 0; while(line != 8) { // 8줄을 모두 성공하면 끝내기. // 빈칸 찾아 채우기 if(b[line][q[line]] == NO) { // 빈칸이 있으면 채우고. FillBoard(line, q[line]); line++; } else { // 빈칸이 없으면 앞줄에 값을 증가시킨다. for(i=line+1;i<=7;i++) q[i] = 0; q[line]++; if(q[line] >=8) { q[line] = 0; q[line-1]++; } line=0; ClearBoard(); } } // 출력해볼까? for(i=0;i<=7;i++) { for(j=0;j<=7;j++) { if( b[j][i] == 1) cout << "Q "; else cout << "- "; } cout << "\n"; } // 여기까지 출력 } void FillBoard(int i, int j) // 보드를 채웁시다. { int k, l; // 왼쪽 오른쪽 위 아래 for(k=0;k<=7;k++) { b[k][j] = ROAD; b[i][k] = ROAD; } // 대각선1 for(k=i,l=j;k<=7 && l<=7;k++,l++) b[k][l] = ROAD; for(k=i,l=j;k>=0 && l>=0;k--,l--) b[k][l] = ROAD; // 대각선2 for(k=i,l=j;k<=7 && l>=0;k++,l--) b[k][l] = ROAD; for(k=i,l=j;k>=0 && l<=7;k--,l++) b[k][l] = ROAD; b[i][j] = QUEEN; } void ClearBoard() // 보드를 닦읍시다. { int i, j; for(i=0;i<=7;i++) { for(j=0;j<=7;j++) { b[i][j] = NO; } } }
여기에 옮겨봤습니다.. ㅡ.ㅡ; --선호