Programmatically manipulate and interact with a Rubik's cube
Print the cube to the terminal
var cube = new Cube();
var printer = new CubePrinter();
printer.Print(cube);
Rotate a face
var cube = new Cube();
cube.Rotate(Face.Up, Rotation.Type.Clockwise);
Execute an algorithm
var cube = new Cube();
cube.Rotate("U2 D2 F2 B2 R2 L2");
Or even create a NxN cube
var cube = new Cube(5);
var printer = new CubePrinter();
printer.Print(cube);