Hola otra vez:
Ya encontré algunos errores...
Primero había definido rotar y después rotarD y rotarI (a la derecha y a la izquierda), pero en moverAlFinal y moverPrimeroA se usaba rotar cuando debía ser rotarI.
También estaba mal definido rotarD porque se crea un array con el contenido de pop() y el valor se convierte en el tamaño del array, y si se trata de un número va muy mal.
Cuando controe otras cosas, haré todos los arreglos y prepararé una página en condiciones...
Saludos