Я не знаю, что я делаю неправильно.
Напишите функцию с именем rotateArt, которая принимает два (2) параметра: imageArray и вращение. (a) imageArray - это двумерный массив любого измерения, содержащий художественное «изображение» ASCII. (б) поворот - это значение, которое является одним из следующих значений: 0, 90, 180, 270, 360, -90, -180, -270. Положительное значение указывает на вращение в направлении по часовой стрелке. Отрицательное значение указывает на вращение в направлении против часовой стрелки. Значение 0 или 360 означает, что вращение не должно происходить, но изображение должно быть зеркально отражено или перевернуто вокруг вертикальной оси
function rotateChar(char,rotation){
let rowLookup = ['^','v','>','<','|','-','|','\\','/','`','~','[','=','_'];
let colLookup = [-270,-180,-90,0,90,180,270];
let rotations = [
['>','v','<','^','>','v','<'],
['<','^','>','v','<','^','>'],
['v','<','^','>','v','<','^'],
['^','>','v','<','^','>','v'],
['-','|','-','|','-','|','-'],
['|','-','|','-','|','-','|'],
['_','|','_','|','_','|','_'],
['/','\\','/','\\','/','\\','/'],
['\\','/','\\','/','\\','/','\\'],
['~','`','~','`','~','`','~'],
['`','~','`','~','`','~','`'],
['=','[','=','[','=','[','='],
['[','=','[','=','[','=','['],
];
if (rowLookup.indexOf(char)=== -1 || colLookup.indexOf(rotation)=== -1) {
return char;
} else {
return rotations[rowLookup.indexOf(char)][colLookup.indexOf(rotation)];
}
}
function rotateArt(imageArray,rotation){
rotation = parseInt(rotation);
let newArray = [];
let width = 0, height = 0;
let cols = [-270,-180,-90,0,90,180,270];
let rowLookup = ['^','v','>','<','|','-','|','\\','/','`','~','[','=','_'];
switch (rotation){
case 90:
width = cols;
height = rowLookup;
for (let i =0; i < width; i++){
let newRow = [];
for (let j =0; j < height; j++){
newRow.push('x');
}
newArray.push(newRow);
}
for (let i = 0; i < rowLookup; i++){
for (let j =0; j < cols; j++){
newArray[j][rowLookup - 1 - i] = rotateChar(imageArray[i][j],rotation);
}
}
break;
default:
break;
}
return newArray;
}