コード例 #1
0
        private void btn_ok_Click(object sender, EventArgs e)
        {
            Cube mycube = new Cube();

            mycube.front[0, 0] = 'r';
            mycube.front[0, 1] = 'r';
            mycube.front[0, 2] = 'r';
            mycube.front[1, 0] = 'r';
            mycube.front[1, 1] = 'r';
            mycube.front[1, 2] = 'r';
            mycube.front[2, 0] = 'r';
            mycube.front[2, 1] = 'r';
            mycube.front[2, 2] = 'r';

            mycube.back[0, 0] = 'o';
            mycube.back[0, 1] = 'o';
            mycube.back[0, 2] = 'o';
            mycube.back[1, 0] = 'o';
            mycube.back[1, 1] = 'o';
            mycube.back[1, 2] = 'o';
            mycube.back[2, 0] = 'o';
            mycube.back[2, 1] = 'o';
            mycube.back[2, 2] = 'o';

            mycube.left[0, 0] = 'b';
            mycube.left[0, 1] = 'b';
            mycube.left[0, 2] = 'b';
            mycube.left[1, 0] = 'b';
            mycube.left[1, 1] = 'b';
            mycube.left[1, 2] = 'b';
            mycube.left[2, 0] = 'b';
            mycube.left[2, 1] = 'b';
            mycube.left[2, 2] = 'b';

            mycube.right[0, 0] = 'g';
            mycube.right[0, 1] = 'g';
            mycube.right[0, 2] = 'g';
            mycube.right[1, 0] = 'g';
            mycube.right[1, 1] = 'g';
            mycube.right[1, 2] = 'g';
            mycube.right[2, 0] = 'g';
            mycube.right[2, 1] = 'g';
            mycube.right[2, 2] = 'g';

            mycube.up[0, 0] = 'y';
            mycube.up[0, 1] = 'y';
            mycube.up[0, 2] = 'y';
            mycube.up[1, 0] = 'y';
            mycube.up[1, 1] = 'y';
            mycube.up[1, 2] = 'y';
            mycube.up[2, 0] = 'y';
            mycube.up[2, 1] = 'y';
            mycube.up[2, 2] = 'y';

            mycube.down[0, 0] = 'w';
            mycube.down[0, 1] = 'w';
            mycube.down[0, 2] = 'w';
            mycube.down[1, 0] = 'w';
            mycube.down[1, 1] = 'w';
            mycube.down[1, 2] = 'w';
            mycube.down[2, 0] = 'w';
            mycube.down[2, 1] = 'w';
            mycube.down[2, 2] = 'w';

            //按空格分隔公式,并删除多余空格
            string[] exp = txt_upset.Text.Trim().Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

            for (int i = 0; i < exp.Length; i++)
            {
                if (exp[i] == "F")
                {
                    mycube.F(mycube, 1);
                }
                else if (exp[i] == "F2")
                {
                    mycube.F(mycube, 2);
                }
                else if (exp[i] == "F'")
                {
                    mycube.f(mycube, 1);
                }
                else if (exp[i] == "F2'")
                {
                    mycube.f(mycube, 2);
                }

                else if (exp[i] == "B")
                {
                    mycube.B(mycube, 1);
                }
                else if (exp[i] == "B2")
                {
                    mycube.B(mycube, 2);
                }
                else if (exp[i] == "B'")
                {
                    mycube.b(mycube, 1);
                }
                else if (exp[i] == "B2'")
                {
                    mycube.b(mycube, 2);
                }

                else if (exp[i] == "L")
                {
                    mycube.L(mycube, 1);
                }
                else if (exp[i] == "L2")
                {
                    mycube.L(mycube, 2);
                }
                else if (exp[i] == "L'")
                {
                    mycube.l(mycube, 1);
                }
                else if (exp[i] == "L2'")
                {
                    mycube.l(mycube, 2);
                }

                else if (exp[i] == "R")
                {
                    mycube.R(mycube, 1);
                }
                else if (exp[i] == "R2")
                {
                    mycube.R(mycube, 2);
                }
                else if (exp[i] == "R'")
                {
                    mycube.r(mycube, 1);
                }
                else if (exp[i] == "R2'")
                {
                    mycube.r(mycube, 2);
                }

                else if (exp[i] == "U")
                {
                    mycube.U(mycube, 1);
                }
                else if (exp[i] == "U2")
                {
                    mycube.U(mycube, 2);
                }
                else if (exp[i] == "U'")
                {
                    mycube.u(mycube, 1);
                }
                else if (exp[i] == "U2'")
                {
                    mycube.u(mycube, 2);
                }

                else if (exp[i] == "D")
                {
                    mycube.D(mycube, 1);
                }
                else if (exp[i] == "D2")
                {
                    mycube.D(mycube, 2);
                }
                else if (exp[i] == "D'")
                {
                    mycube.d(mycube, 1);
                }
                else if (exp[i] == "D2'")
                {
                    mycube.d(mycube, 2);
                }
            }
            for (int i = 0; i < backcolor.Length;)
            {
                for (int j = 0; j < 3; j++)
                {
                    for (int k = 0; k < 3; k++)
                    {
                        backcolor[i++] = rechange(mycube.up[j, k]);
                    }
                }
                for (int j = 0; j < 3; j++)
                {
                    for (int k = 0; k < 3; k++)
                    {
                        backcolor[i++] = rechange(mycube.down[j, k]);
                    }
                }
                for (int j = 0; j < 3; j++)
                {
                    for (int k = 0; k < 3; k++)
                    {
                        backcolor[i++] = rechange(mycube.left[j, k]);
                    }
                }
                for (int j = 0; j < 3; j++)
                {
                    for (int k = 0; k < 3; k++)
                    {
                        backcolor[i++] = rechange(mycube.right[j, k]);
                    }
                }
                for (int j = 0; j < 3; j++)
                {
                    for (int k = 0; k < 3; k++)
                    {
                        backcolor[i++] = rechange(mycube.front[j, k]);
                    }
                }
                for (int j = 0; j < 3; j++)
                {
                    for (int k = 0; k < 3; k++)
                    {
                        backcolor[i++] = rechange(mycube.back[j, k]);
                    }
                }
            }
            this.Close();
        }