flip method

Cube flip(
  1. int value
)

Implementation

Cube flip(int value) {
  final eo = List.of(_eo);
  var flipParity = 0;

  for (var i = Edge.bottomRight.index - 1; i >= Edge.upRight.index; i--) {
    eo[i] = value % 2;
    flipParity += eo[i];
    value ~/= 2;
  }

  eo[Edge.bottomRight.index] = (2 - flipParity % 2) % 2;

  return Cube._(cp: _cp, co: _co, ep: _ep, eo: eo);
}