U E D R , A S I H C RSS

Eight Queen Problem/최다인

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
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2014-03-15 15:53:59
Processing time 0.1021 sec