public OSticker this[OSticker index] { get { return this[index.Sticker()].Oriented(index); } }
private void AddStickerSequence(OSticker osticker) { if (osticker.Sticker().IsEdge()) { var leadIn = ClassicSequences.GetLeadIn(osticker); this.NumberOfEdgeSteps++; Add(leadIn); Add(ClassicSequences.EdgeSequence); Add(leadIn.Inverse()); } else { var leadIn = ClassicSequences.GetLeadIn(osticker); this.NumberOfCornerSteps++; Add(leadIn); Add(ClassicSequences.CornerSequence); Add(leadIn.Inverse()); } }
private void AddStickerSequence(OSticker osticker) { if (osticker.Sticker().IsEdge()) { bool isComplete; var leadIn = M2Sequences.GetLeadIn(osticker, this.NumberOfEdgeSteps % 2 == 0, out isComplete); this.NumberOfEdgeSteps++; Add(leadIn, osticker.Translate()); if (!isComplete) { Add(M2Sequences.EdgeSequence); Add(leadIn.Inverse()); } } else { var leadIn = ClassicSequences.GetLeadIn(osticker); this.NumberOfCornerSteps++; Add(leadIn, osticker.Translate()); Add(ClassicSequences.CornerSequence); Add(leadIn.Inverse()); } }
public OSticker Oriented(OSticker location) { var result = this.Oriented(location.Sticker()); var a = this.IsCorner ? 3 : 2; return (OSticker)((a * ((int)result / a)) + (((int)result % a) + ((int)location % a)) % a); }