Example #1
0
 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());
     }
 }
Example #3
0
 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());
     }
 }
Example #4
0
        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);
        }