안녕하세요, 프로그래머 게시판에 항상 질문만 드리러 와서 죄송합니다. ㅠㅠ;
물어볼 곳이 따로 없어서 항상 찾게되네요. 답변 달아 주시는 모든 분들께 미리 감사의 말씀 전합니다.
일단, 저는 자바스크립트로 마방진을 짜려 하고 있구요.
제가 만들려는 프로그램의 프로세스는 이렇습니다.
1) 1~9 까지의 홀수를 입력한다.
2) 3을 입력한다면 3x3 표의 마방진이 만들어진다.
제가 지금 부딪히는 부분은 마방진을 만들기 전,
표에 그냥 숫자를 뿌리는 코드를 짜고 있습니다.
그런데 1을 입력하면 출력이 안됩니당.
문제는 알고있는데 해결방법을 모르겠네요
소스↓
function cal(){
clean();
i = document.getElementById("num").value;
enter();
}
function mabangjin(){
var bang = new Array(i);
while(multi <= (i*i)){
for(row=1; row<=i; row++){
bang[row] = new Array(i);
for(var col=1; col<=i; col++){
bang[row][col] = multi;
multi++;
}
}
}
for(var x=1; x<=i; x++){
for(var y=1; y<=i; y++){
document.getElementById('n_'+x+'_'+y).innerHTML=bang[x][y];
document.getElementById('n_'+x+'_'+y).style.border="1px solid black";
}
}
}
function clean(){
for(var x=1; x<=i; x++){
for(var y=1; y<=i; y++){
document.getElementById('n_'+x+'_'+y).style.border="0px solid black";
document.getElementById('n_'+x+'_'+y).innerHTML="";
}
}
}
while문의 조건이 문제인데..제가 지금 머리가 과부하 상태라서 어떻게 해결해야할지 모르겠네요ㅠ.ㅠ
또한 clean함수가 새로운 숫자를 입력할 경우 그 전에 있던 표를 지워주는 역할을 하는데요.
(EX: 5를 입력해 5x5표를 만들었다가 다시 3을 재입력해 3x3표를 만들어 줄 수 있는...)
숫자를 넣기 전 까지 표만 만들었을 때는 작동했는데 숫자를 뿌리는 코드를 넣고나서는 작동을 안하네요. 왜일까요?
질문을 총 정리하자면
1) while문의 조건을 어떻게 해결해야 할지
2) clean함수의 문제점
입니다. 감사합니다!