rubiks-cube-3x3-solver / src/cube.rs

raw file 502 bytes
//! Cube representation: cubie-level and facelet-level.

pub use crate::cubie::*;
pub use crate::facelet::*;

/// Apply a sequence of moves (in move notation) to a solved cube and return the resulting facelet string.
pub fn scramble_to_facelet(moves: &[crate::moves::Move]) -> String {
    let cc = CubieCube::default().apply_moves(moves);
    FaceCube::try_from(&cc)
        .map(|fc| fc.to_string())
        .unwrap_or_else(|_| "UUUUUUUUURRRRRRRRRFFFFFFFFFDDDDDDDDDLLLLLLLLLBBBBBBBBB".to_string())
}