Давайте представим все эти числа в виде объекта:
const faces = { top: 1, left: 2, front: 3, bottom: 4, right: 5, back: 6 };
Теперь, если вы поверните его вправо, например, вы можете поменять местами соответствующие лица:
const rotateToLeft = prev => ({
top: prev.top,
left: prev.front,
front: prev.right,
bottom: prev.bottom,
right: prev.back,
back: prev.left
});
Теперь вы можете сделать это с каждым направлением, а затем просто вращать кости, пока вам нужно получить результат:
let result = faces;
for(let turn = 0; turn < 4 + Math.floor((X % 360) / 90); turn++)
result = rotateToLeft(result);
// repeat for y and z