라라리라
2023.08.07 / Step 8 [이차배열] - 코딩 19 일차 본문
이차배열5_문제01_빙고.html
<script>
/*
[문제]
철수는 빙고 게임을 만들고 있다.
빙고 조건은 가로 1이 3개 또는 세로 1이 3개
또는 대각선으로 1이 3개이면 빙고이다.
빙고는 중첩될 수 있다.
반복적으로 랜덤 위치에 1을 저장한다.
단, 한번 1이 저장된 곳은 또 다시 저장할 수 없다.
3빙고가 성립되면 종료한다.
*/
let bingo = [
[0,0,0],
[0,0,0],
[0,0,0]
];
while(true){
let r1 = Math.floor(Math.random() * bingo.length);
let r2 = Math.floor(Math.random() * bingo.length);
if(bingo[r1][r2] != 0){
continue;
} else {
bingo[r1][r2] = 1;
}
document.write("x = " + r1 + "y = " + r2 + "<br>");
let count = 0;
//가로
for(let i = 0; i <bingo.length; i++){
let cnt = 0;
for(let j = 0; j < bingo[i].length; j++){
if(bingo[i][j] == 1){
cnt++;
}
}
if(cnt == 3){
count++;
document.write("빙고(가로) 완성!!!<br>")
}
}
//세로
for(let i = 0; i < bingo.length; i++){
let cnt = 0;
for(let j = 0; j < bingo.length; j++){
if(bingo[j][i] == 1){
cnt++;
}
}
if(cnt == 3){
count++;
document.write("빙고(세로) 완성!!!<br>")
}
}
//대각선 왼쪽
if(bingo[0][0]== 1 && bingo[1][1] == 1 && bingo[2][2] == 1){
count++;
document.write("빙고(대각선 왼쪽) 완성!!!<br>")
}
if(bingo[0][2]== 1 && bingo[1][1] == 1 && bingo[2][0] == 1){
count++;
document.write("빙고(대각선 오른쪽) 완성!!!<br>")
}
for(let i = 0; i < bingo.length; i++){
document.write(bingo[i] + "<br>");
}
if(count >= 3){
break;
}
}
</script>
이차배열5_문제02_숫자이동.html
<script>
/*
[문제]
철수는 게임을 만들고 있다.
game배열은 이차원으로 되어있다.
숫자8은 플레이어 위치를 뜻한다.
숫자0은 플레이어가 움직일 수 있는 위치이다.
order배열은 플레이어가 움직이게 하는 명령어이다.
1,2,3,4는 차례대로 북, 동, 남, 서를 뜻한다.
order의 이동대로 플레이어를 이동시키고 출력하시오.
플레이어가 벽에 붙어서,
더 이상 원하는 방향으로 이동할 수 없을 때는 "이동 불가"를 출력한다.
[정답]
캐릭터의 현재 위치 = 2 , 2
0 0 0 0 0
0 0 0 0 0
0 0 8 0 0
0 0 0 0 0
0 0 0 0 0
북
0 0 0 0 0
0 0 8 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
남
0 0 0 0 0
0 0 0 0 0
0 0 8 0 0
0 0 0 0 0
0 0 0 0 0
남
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 8 0 0
0 0 0 0 0
남
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 8 0 0
서
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 8 0 0 0
남
이동 불가
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 8 0 0 0
남
이동 불가
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 8 0 0 0
서
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
8 0 0 0 0
동
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 8 0 0 0
*/
let game = [
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,8,0,0],
[0,0,0,0,0],
[0,0,0,0,0]
];
let order = [1,3,3,3,4,3,3,4,2];
let x = 2;
let y = 2;
for(let k = 0; k < order.length; k++){
if(order[k] == 1){
if(y != 0){
game[y][x] = 0;
y--;
game[y][x] = 8;
document.write("북으로 이동<br>");
} else {
document.write("이동 불가<북><br>");
}
}
else if(order[k] == 2){
if(x != 4){
game[y][x] = 0;
x++;
game[y][x] = 8;
document.write("동으로 이동<br>");
} else {
document.write("이동 불가<동><br>");
}
}
else if(order[k] == 3){
if(y != 4){
game[y][x] = 0;
y++;
game[y][x] = 8;
document.write("남으로 이동<br>");
} else {
document.write("이동 불가<남><br>");
}
}
else if(order[k] == 4){
if(x != 0){
game[y][x] = 0;
x--;
game[y][x] = 8;
document.write("서로 이동<br>");
} else {
document.write("이동 불가<서><br>");
}
}
for(let i = 0; i < game.length; i++){
document.write(game[i] + "<br>")
}
document.write("<br>==================================================<br>")
}
</script>
이차배열5_문제03_우회전.html
<script>
/*
[문제]
랜덤(1~4)를 저장한다. 랜덤숫자는 회전 횟수이다.
회전 횟수만큼 block의 숫자들을 90도로 우회전시키시오.
[예시]
rNum = 4
1 2 3
4 5 6
7 8 9
7 4 1
8 5 2
9 6 3
9 8 7
6 5 4
3 2 1
3 6 9
2 5 8
1 4 7
*/
let block = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
let rNum = Math.floor(Math.random() * 4) + 1;
document.write("rNum = " + rNum + "<br>");
let size = block.length;
for(let l = 0 ; l < rNum; l++){
for(let i = 0 ; i < size; i++){
document.write(block[i] + "<br>");
}
document.write("<br>");
let temp = [];
for(let i = 0; i < size; i++){
let unit = [];
for(let j = 0; j < size; j++){
unit.push(block[i][j]);
}
temp.push(unit);
}
for(let i = 0; i < size; i++){
for(let j = 0; j < size; j++){
block[i][j] = temp[2 - j][i];
}
}
}
</script>
이차배열5_문제04_자리별분리.html
<script>
/*
[문제]
랜덤으로 10000 ~ 99999 사이의 랜덤숫자를 저장하고
다음 규칙에 따라 결과를 출력하시오.
랜덤숫자를 두 개로 분리하는데
한 자리씩 늘리면서 분리한다.
각 분리한 숫자의 합을 출력한다.
[예시]
r = 34567
[결과]
3 + 4567
34 + 567
345 + 67
3456 + 7
*/
let r = Math.floor(Math.random() * 90000) + 10000;
document.write("r = " + r + "<br>");
let div = 10000;
while(true){
let temp = r ;
let x = parseInt(temp / div);
let y = temp % div;
document.write(x + " + " + y + "<br>");
div /= 10;
if(div == 1){
break;
}
}
</script>
이차배열5_문제05_좌회전.html
<script>
/*
[문제]
랜덤(1~4)를 저장한다. 랜덤숫자는 회전 횟수이다.
회전 횟수만큼 block의 숫자들을 90도로 좌회전시키시오.
[예시]
rNum = 4
1 2 3
4 5 6
7 8 9
3 6 9
2 5 8
1 4 7
9 8 7
6 5 4
3 2 1
7 4 1
8 5 2
9 6 3
*/
let block = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
let r = Math.floor(Math.random() * 4) + 1;
document.write("r = " + r + "<br>");
let size = 3;
for(let l = 0; l < r; l++){
for(let i = 0; i < size; i++){
document.write(block[i] + "<br>");
}
document.write("<br>");
let temp = [];
for(let i = 0; i < size; i++){
let unit = [];
for(let j = 0; j < size; j++){
unit.push(block[i][j]);
} temp.push(unit);
}
for(let i = 0; i < size; i++){
for(let j = 0; j < size; j++){
block[i][j] = temp[j][2 - i];
}
}
}
</script>
이차배열5_문제06_철수마블.html
<script>
/*
[문제]
철수는 게임을 만들고 있다.
(1~6 사이의 랜덤 숫자)주사위를 던져
해당 숫자만큼 캐릭터를 이동시킨다.
단, 캐릭터는 외곽으로만 움직일 수 있다.
두 바퀴를 돌고 게임을 끝내시오.
[예시]
옷 □ □ □ □
□ ■ ■ ■ □
□ ■ ■ ■ □
□ ■ ■ ■ □
□ □ □ □ □
dice = 2
□ □ □ 옷 □
□ ■ ■ ■ □
□ ■ ■ ■ □
□ ■ ■ ■ □
□ □ □ □ □
dice = 3
□ □ □ □ □
□ ■ ■ ■ □
□ ■ ■ ■ 옷
□ ■ ■ ■ □
□ □ □ □ □
dice = 3
□ □ □ □ □
□ ■ ■ ■ □
□ ■ ■ ■ □
□ ■ ■ ■ □
□ □ □ 옷 □
dice = 1
□ □ □ □ □
□ ■ ■ ■ □
□ ■ ■ ■ □
□ ■ ■ ■ □
□ □ 옷 □ □
dice = 6
옷 □ □ □ □
□ ■ ■ ■ □
□ ■ ■ ■ □
□ ■ ■ ■ □
□ □ □ □ □
dice = 5
□ □ □ □ □
□ ■ ■ ■ 옷
□ ■ ■ ■ □
□ ■ ■ ■ □
□ □ □ □ □
dice = 1
□ □ □ □ □
□ ■ ■ ■ □
□ ■ ■ ■ 옷
□ ■ ■ ■ □
□ □ □ □ □
dice = 4
□ □ □ □ □
□ ■ ■ ■ □
□ ■ ■ ■ □
□ ■ ■ ■ □
□ □ 옷 □ □
dice = 4
□ □ □ □ □
□ ■ ■ ■ □
옷 ■ ■ ■ □
□ ■ ■ ■ □
□ □ □ □ □
dice = 4
□ □ 옷 □ □
□ ■ ■ ■ □
□ ■ ■ ■ □
□ ■ ■ ■ □
□ □ □ □ □
*/
let map = [
[0, 1, 2, 3, 4],
[15, 16, 16, 16, 5],
[14, 16, 16, 16, 6],
[13, 16, 16, 16, 7],
[12, 11, 10, 9, 8],
]
let player = 0;
let wall = 16;
let count = 0;
while(true){
for(let i = 0; i< map.length; i++){
for(let j = 0; j < map[i].length; j++){
if(player == map[i][j]){
document.write(" 옷 ");
} else if(wall == map[i][j]){
document.write(" ■ ");
} else {
document.write(" □ ");
}
}
document.write("<br>");
}
document.write("<br><br>");
if(count == 2){
break;
}
let r = Math.floor(Math.random() * 6) + 1;
document.write("주사위 = " + r + "<br>");
player += r;
if(player >= 16){
player %= 16
count++
}
}
</script>
이차배열5_문제07_퍼즐게임.html
<script>
/*
[문제]
철수는 게임을 만들고 있다.
game배열은 이차원으로 되어있다.
game배열은 안에 block배열의 숫자를 채워 넣는 게임이다.
배열의 값1은 block이 차 있는 것을 의미한다.
배열의 값0은 block이 비어있는 것을 의미한다.
[조건1]
block은 이번에 제시된 모양이다.
block의 모양을 game 배열에 넣을 수 있다면 채워 넣고,
넣을 수 없다면 "gameover"를 출력하시오.
[조건2]
block을 채워 넣었을 때 가로로 1이 연속 5개이거나,
세로로 1이 연속 5개이면 그 줄은 전부 숫자 2로 변경하시오.
[정답]
[0, 2, 0, 1, 0]
[1, 2, 0, 1, 1]
[0, 2, 1, 1, 1]
[1, 2, 1, 1, 0]
[0, 2, 1, 0, 0]
*/
let game = [
[0,1,0,1,0],
[1,1,0,1,1],
[0,1,1,1,1],
[1,1,0,1,0],
[0,0,0,0,0]
];
let block = [
[0,1],
[1,1]
];
let x = 0;
let y = 0;
let check = false;
for(let i = 0; i < game.length - 1; i++){
for(let j = 0; j < game[i].length - 1; j++){
let count = 0;
if(game[i][j + 1] == 0){
count++;
}
if(game[i + 1][j] == 0){
count++;
}
if(game[i + 1][j + 1] == 0){
count++;
}
if(count == 3){
x = j;
y = i;
check = true;
break;
}
}
}
if(check == false){
document.write("== game over ==");
} else {
for(let i = 0; i < game.length; i++){
game[y][x + 1] = 1;
game[y + 1][x] = 1;
game[y + 1][x + 1] = 1;
document.write(game[i] + "<br>");
}
document.write("<br>");
let temp = [];
for(let i = 0; i < game.length; i++){
let index = [];
for(let j = 0; j < game[0].length; j++){
index.push(game[i][j]);
}
temp.push(index);
}
for(let i = 0 ; i < game.length; i++){
let count = 0;
let count2 = 0;
for(let j = 0; j < game[i].length; j++){
if(game[i][j] == 1){
count++;
}
}
for(let j = 0; j < game[i].length; j++){
if(game[j][i] == 1){
count2++;
}
}
for(let j = 0 ; j < game[i].length; j++){
if(count == 5){
temp[i][j] = 2;
}
if(count2 == 5){
temp[j][i] = 2;
}
}
} game = temp;
for(let i = 0; i < game.length; i++){
document.write(game[i] + "<br>");
}
}
</script>
이차배열5_문제08_복권셋트.html
<script>
/*
[문제]
복권 1개당 7칸으로, 총 5개의 복권을 제작하려 한다.
복권 1줄은 1 또는 7의 랜덤 숫자로 구성되어 있다.
7이 연속으로 3개 이상이면 "당첨"이고, 그 미만은 "꽝"이다.
5개 중에 딱 1개만 당첨 복권이고 나머지 4개는 꽝인 복권을
랜덤으로 생성해서 출력하시오.
[예시]
1177117 (꽝)
1117771 (당첨)
7171117 (꽝)
7711771 (꽝)
7171717 (꽝)
*/
let lotto = [0, 0, 0, 0, 0];
let index = 0;
let mark = 0;
while(true){
let temp = [];
for(let i = 0; i < 7; i++){
let r = Math.floor(Math.random() * 2);
if(r == 0){
r = 7;
}
temp.push(r);
}
document.write(temp + " ");
lotto[index] = temp;
let count = 0;
for(let i = 0; i < 7; i++){
if(lotto[index][i] == 7){
count++;
}
}
if(count >= 3){
document.write("당첨<br>");
mark++;
} else {
document.write("꽝<br>")
}
index++;
if(index == 5 && mark == 1){
break;
} else if (index == 5 && mark == 0){
index = 0;
mark = 0;
}
else if(index == 5 && mark > 1){
index = 0;
mark = 0;
}
}
document.write("<br>=====================================<br>");
for(let i = 0; i < lotto.length; i++){
let cnt = 0;
for(let j = 0; j < lotto[i].length; j++){
document.write(lotto[i][j] + " , ");
if(lotto[i][j] == 7){
cnt++;
}
}
if(cnt >= 3){
document.write(" = 당첨 ");
} else {
document.write(" = 꽝 ");
}
document.write("<br>");
}
</script>
이차배열5_문제09_구의개수.html
<script>
/*
[문제]
mine배열 숫자 0의 자리에 숫자를 저장하려 한다.
저장할 숫자는 주변 8방향을 검사 후 9의 개수를 저장해야 한다.
저장 후 mine배열를 출력하시오.
[정답]
[2,9,2],
[9,4,9],
[1,3,9]
*/
let mine = [
[0, 9, 0],
[9, 0, 9],
[0, 0, 9]
];
/*
let temp = [];
for(let i = 0; i < 3; i++){
temp.push(mine[i]);
} //temp 지정
for(let i = 0; i < mine.length; i++){
for(let j = 0; j < mine[i].length; j++){
let count = 0;
if(mine[i][j] == 0){ //mine 배열의 i j 가 0일경우
if(j + 1 < 3 && mine[i][j + 1] == 9 ){ //오른쪽
count++;
}
if(i + 1 < 3 && j + 1 < 3 && mine[i + 1][j + 1] == 9 ){ //오른쪽 아래 대각선
count++;
}
if(i + 1 < 3 && mine[i + 1][j] == 9){ //바로 아래
count++;
}
if(j - 1 >= 0 && i + 1 < 3 && mine[i + 1][j - 1] == 9 ){ // 왼쪽 아래 대각선
count++;
}
if(j - 1 >= 0 && mine[i][j - 1] == 9 ){ // 왼쪽
count++;
}
if(i - 1 >= 0 && j - 1 >= 0 && mine[i - 1][j - 1] == 9 ){ // 왼쪽 위 대각선
count++;
}
if(i - 1 >= 0 && mine[i - 1][j] == 9 ){ // 위
count++;
}
if(i - 1 >= 0 && j + 1 < 3 && mine[i - 1][j + 1] == 9 ){ // 오른쪽 위 대각선
count++;
}
mine[i][j] = count;
}
}
}
for(let i = 0; i < mine.length; i++){
document.write(mine[i] + "<br>");
}
*/
for(let i = 0; i < mine.length; i++){
for(let j = 0; j < mine.length; j++){
let count = 0;
if(mine[i][j] == 0){
for(let y = -1; y <= 1; y++){
for(let x = -1; x <= 1; x++){
if(y + i >= mine.length || y + i < 0) continue;
if(x + j >= mine.length || x + j < 0) continue;
if(mine[i + y][j + x] == 9){
count++;
}
}
}
mine[i][j] = count;
}
}
}
for(let i = 0; i < mine.length; i++){
document.write(mine[i] + "<br>");
}
</script>
이차배열5_문제10_체스비숍.html
<script>
/*
[문제]
세로 가로 인덱스 두 개를 랜덤으로 저장한다.
그 인덱스를 기점으로 대각선 방향으로 전부 1로 채운 후 출력하시오.
[예시]
y = 2
x = 1
[0,0,0,1,0]
[1,0,1,0,0]
[0,1,0,0,0]
[1,0,1,0,0]
[0,0,0,1,0]
*/
let list = [
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]
];
let y = Math.floor(Math.random() * list.length);
let x = Math.floor(Math.random() * list[0].length);
document.write("y = " + y + "<br>x = " + x + "<br>");
list[y][x] = 1; //좌표 1로 변경;
let tempx = x;
let tempy = y;
//왼쪽위로;
while(true){
if(tempx == 0 || tempy == 0){
break;
}
tempx--;
tempy--;
list[tempy][tempx] = 1;
}
tempx = x;
tempy = y;
//왼쪽아래로;
while(true){
if(tempx == 0 || tempy == 4){
break;
}
tempx--;
tempy++;
list[tempy][tempx] = 1;
}
tempx = x;
tempy = y;
//오른쪽위로;
while(true){
if(tempx == 4 || tempy == 0){
break;
}
tempx++;
tempy--;
list[tempy][tempx] = 1;
}
tempx = x;
tempy = y;
//오른쪽아래로;
while(true){
if(tempx == 4 || tempy == 4){
break;
}
tempx++;
tempy++;
list[tempy][tempx] = 1;
}
tempx = x;
tempy = y;
for(let i = 0; i < list.length; i++){
document.write(list[i] + "<br>");
}
</script>
이차배열5_문제11_체스킹.html
<script>
/*
[문제]
세로 가로 인덱스 두개를 랜덤으로 저장한다.
그 인덱스를 기점으로 십자가 방향으로 전부 1로 채운 후 출력하시오.
[예시]
y = 1 , x = 4
[0, 0, 0, 0, 1]
[1, 1, 1, 1, 1]
[0, 0, 0, 0, 1]
[0, 0, 0, 0, 1]
[0, 0, 0, 0, 1]
*/
let list = [
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]
];
let x = Math.floor(Math.random() * list.length);
let y = Math.floor(Math.random() * list.length);
document.write("x = " + x + "<br>y = " + y + "<br>");
for(let i = 0; i < list.length; i ++){
for(let j = 0; j < list.length; j++){
list [y][j] = 1;
list [i][x] = 1;
}
}
for(let i = 0; i< list.length; i++){
document.write(list[i] + "<br>");
}
</script>
이차배열5_문제12_체스퀸.html
<script>
/*
[문제]
세로 가로 인덱스 두개를 랜덤으로 저장한다.
그 인덱스를 기점으로 대각선 + 십자가 방향으로 전부 1로 채운 후 출력하시오.
[예시]
y = 3, x = 0
[1, 0, 0, 1, 0]
[1, 0, 1, 0, 0]
[1, 1, 0, 0, 0]
[1, 1, 1, 1, 1]
[1, 1, 0, 0, 0]
*/
let list = [
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]
];
let x = Math.floor(Math.random() * list.length);
let y = Math.floor(Math.random() * list.length);
list[y][x] = 1;
document.write("x = " + x + "y = " + y + "<br>");
for(let i = -1; i <= 1; i++){
for(let j = -1; j <= 1; j++){
let tempi = i;
let tempj = j;
if(i == 0 && j == 0) continue;
while(true){
if(tempi + y >= list.length || tempi + y < 0) break;
if(tempj + x >= list.length || tempj + x < 0) break;
list[tempi + y][tempj + x] = 1;
tempi += i;
tempj += j;
}
}
}
for(let i = 0; i < list.length; i++){
document.write(list[i] + "<br>");
}
</script>
이차배열5_문제13_랜덤숫자조합.html
<script>
/*
[문제]
철수는 게임을 만들려고 한다.
숫자 다섯 개를 랜덤(1~9사이의 숫자)으로 저장한다.
각각의 숫자는 중복이 되면 안된다.
각각의 숫자로 랜덤 조합을 4가지 만들어서
numList에 저장하고, 전체 합을 출력하시오.
랜덤 조합 역시 중복이 되면 안된다.
[예시]
1, 3, 5, 7, 9 라고 했을 때
[1] 13597
[2] 51397
[3] 37951
[4] 91537
정답 : 13597 + 51397 + 37951 + 91537 = 194482
*/
let numList = [];
let temp = [];
let total = 0;
for(let i = 0; i < 5; i++){
let check = false;
let r = Math.floor(Math.random() * 9) + 1;
for(let j = 0; j < temp.length; j++){
if(temp[j] == r) check = true;
}
if(check == false){
temp.push(r);
} else if(check){
i--;
}
}
document.write("temp =" + temp + "<br>");
for(let i = 0; i < 4; i++){
let index = [false, false, false, false, false];
let temp2 = [];
for(let j = 0; j < 5; j++){
let r = Math.floor(Math.random() * 5);
if(index[r] == false) {
index[r] = true;
temp2.push(temp[r]);
}
else j--;
}
numList.push(temp2);
for(let j = 0; j < numList.length; j++){
if(i == j) continue;
else if(numList[i] == numList[j]){
numList.splice(j, 1);
i--;
break;
}
}
}
for(let i = 0; i < numList.length ; i++){
let unit = 10000;
let sum = 0;
for(let j = 0; j < numList[0].length; j++){
sum += numList[i][j] * unit;
unit /= 10;
}
document.write(sum + "<br>");
total += sum;
}
document.write("total = " + total);
</script>
이차배열5_문제14_달팽이.html
<script>
/*
[문제]
arr 배열에 아래와같이 저장 후 출력하시오.
[정답]
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
*/
let arr = [
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]
];
let num = 1;
let x = 0;
let y = 0;
let dir = 0;
arr[y][x] = num;
num++;
while(true){
let yy = y;
let xx = x;
if(dir == 0) xx++;
else if(dir == 1) yy++;
else if(dir == 2) xx--;
else if(dir == 3) yy--;
if((yy >= 5 || yy < 0) || (xx >= 5 || xx < 0)){
dir++;
if(dir == 4) dir = 0;
} else if(arr[yy][xx] != 0){
dir++;
if(dir == 4) dir = 0;
} else {
y = yy;
x = xx;
arr[y][x] = num;
num++;
}
if(num == 26){
break;
}
}
for(let i = 0; i < arr.length; i++){
document.write(arr[i] + "<br>");
}
</script>
'코딩 > 2023 JavaScript Console' 카테고리의 다른 글
2023.08.15 / Step 9 [문자열] - 코딩 27 일차 (0) | 2023.08.15 |
---|---|
2023.08.14 / Step 9 [문자열] - 코딩 26 일차 (0) | 2023.08.14 |
2023.08.06 / Step 8 [이차배열] - 코딩 18 일차 (0) | 2023.08.06 |
2023.08.05 / Step 8 [이차배열] - 코딩 17 일차 (0) | 2023.08.05 |
2023.08.04 / Step 8 [이차배열] - 코딩 16 일차 (0) | 2023.08.04 |