JavaScript를 오늘 처음 배워서 시험 삼아 짜보았습니다.
함수도 쓸 줄 모르고... write를 자꾸 printf로 쓰다가 움찔하고...
뭐 아무튼 어떻게 어떻게 짰네요.
사실 처음 짜는 데는 그렇게 오래 걸리진 않았는데,
문제는, 답이 없는 경우에 결과를 내지 못하고 무한 반복하다가 펑! 터져버렸다는 거...
부랴부랴 고쳤더니 코드도 영 더러워지고 쩝... ㅠㅠ
//Eight Queen Problem
//Start : 2014.03.15 11:24pm
var randValue;
var queenArr = new Array();
var unsafeArr = new Array();
var i, j = 0;
var flag = 1;
document.write('<br>This is Eight Queen Problem<br><br><br>');
for(i=0;i<8;i++)
{
flag = 1;
for(j=0;j<8;j++)
{
unsafeArr[j] = 0;
}
randValue = Math.floor(Math.random()*8);
for(j=0;j<i;j++)
{
if(randValue == queenArr[j])
{
flag = 0;
unsafeArr[randValue] = 1;
break;
}
else if(i-j == Math.abs(randValue-queenArr[j]))
{
flag = 0;
unsafeArr[randValue] = 1;
break;
}
}
if(flag == 0)
{
for(j=0;j<8;j++)
{
if(unsafeArr[j] = 0)
break;
}
if(j == 8)
{
i = 0;
continue;
}
i--;
continue;
}
queenArr[i] = randValue;
}
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
if(j == queenArr[i])
{
document.write('Q ');
continue;
}
document.write('- ');
}
document.write('<br>');
}
//End : 2014.03.16 12:52am