Exemplo n.º 1
0
 private IEnumerable <Tuple <Cube, Cube> > GetPairs(Rubik rubik)
 {
     foreach (Cube edge in rubik.Cubes.Where(c => c.IsEdge && Rubik.GetTargetFlags(c).HasFlag(CubeFlag.MiddleLayer)))
     {
         Cube corner = rubik.Cubes.First(c => c.IsCorner && (rubik.GetTargetFlags(c) & ~CubeFlag.BottomLayer) == (rubik.GetTargetFlags(edge) & ~CubeFlag.MiddleLayer));
         if (!rubik.IsCorrect(corner) || !rubik.IsCorrect(edge))
         {
             yield return(new Tuple <Cube, Cube>(edge, corner));
         }
     }
 }