Exemplo n.º 1
0
        public Sq1Image(Sq1ImageConfiguration configs)
        {
            var isCubeShape = CheckIfCubeshape(configs);

            Properties = new Sq1ImageProp(configs, isCubeShape);

            CreatePieces(configs.StickerDefs);
        }
Exemplo n.º 2
0
        static bool CheckIfCubeshape(Sq1ImageConfiguration configs)
        {
            var pieceDefsSplit = configs.StickerDefs.Split(';')[0].Split(',');
            var cubeshapeForm  = "cecececeecececec";

            for (int i = 0; i < pieceDefsSplit.Length; i++)
            {
                if (pieceDefsSplit[i][0] != cubeshapeForm[i])
                {
                    return(false);
                }
            }
            return(true);
        }
Exemplo n.º 3
0
        public Sq1ImageProp(Sq1ImageConfiguration configs, bool cubeshape)
            : base(configs)
        {
            FaceSpacer = configs.FaceSpacer;

            XOffset = configs.transform == TransformType.horizontal ? FaceSpacer + ImageLength : 0;
            YOffset = configs.transform == TransformType.horizontal ? 0 : FaceSpacer + ImageLength;

            SideSize = cubeshape
                ? ImageLength
                : MathHelper.GetHypotenuse(ImageLength);

            FaceSize = configs.Stage == "cubeshape" || configs.Stage == "obl" || configs.Stage == "eo" || configs.Stage == "co"
                ? SideSize
                : SideSize *Math.Min(100, configs.FaceSize) / 100;

            ImageSize = configs.transform == TransformType.horizontal
                ? new Tuple <double, double>(2 * (ImageLength) + FaceSpacer, ImageLength)
                : new Tuple <double, double>(ImageLength, (2 * ImageLength) + FaceSpacer);


            var sideWidth = SideSize * 0.05;

            LongSideDist  = MathHelper.GetHypotenuse(SideSize);
            LongFaceDist  = FaceSize * Math.Sin(Math.PI * 45 / 180);
            ShortFaceDist = FaceSize / (Math.Cos(Math.PI * 15 / 180) * 2);
            ShortSideDist = SideSize / 2 / Math.Cos(Math.PI * 15 / 180);

            if (configs.ColorScheme != null)
            {
                configs.ColorScheme = configs.ColorScheme.Replace(" ", "")
                                      .Replace("%20", "");
                ColorScheme = new ColorScheme(configs.ColorScheme.Split('-'));
            }
            else
            {
                ColorScheme = new ColorScheme();
            }
        }
Exemplo n.º 4
0
        private void InitializePieceDefinitions(Sq1ImageConfiguration configs)
        {
            var isValid = true;

            if (configs.Moves != null)
            {
                isValid = MoveSq1.ApplyAlg(configs.Moves, this);
            }

            else if (configs.Case != null)
            {
                isValid = MoveSq1.ApplyAlg(configs.Case, this, invert: true);
            }

            if (configs.StickerDefs == null)
            {
                configs.StickerDefs = GetPieceDefs();
            }

            if (!isValid)
            {
                CleanSq1();
            }
        }
Exemplo n.º 5
0
 public VirtualSq1(Sq1ImageConfiguration configs)
 {
     CleanSq1();
     InitializePieceDefinitions(configs);
 }