コード例 #1
0
        static void Main(string[] args)
        {
            Debug.WriteLine("### GREEN CUBE TEST");

            List <Piece> pieceList = new List <Piece>();

            Piece orangePiece0 = new Piece("0010110100110101", 0, false, 0);
            Piece orangePiece1 = new Piece("0001101011010010", 0, false, 1);
            Piece orangePiece2 = new Piece("0101001000101101", 0, false, 2);
            Piece orangePiece3 = new Piece("1010110110100101", 0, false, 3);
            Piece orangePiece4 = new Piece("0010001000110101", 0, false, 4);
            Piece orangePiece5 = new Piece("0010000101011101", 0, false, 5);


            pieceList.Add(orangePiece0);
            pieceList.Add(orangePiece1);
            pieceList.Add(orangePiece2);
            pieceList.Add(orangePiece3);
            pieceList.Add(orangePiece4);
            pieceList.Add(orangePiece5);

            //Piece greenPiece0 = new Piece("1010010100101101", 0, false, 0);
            //Piece greenPiece1 = new Piece("1010110100100101", 0, false, 1);
            //Piece greenPiece2 = new Piece("0101001000100101", 0, false, 2);
            //Piece greenPiece3 = new Piece("0101110110101101", 0, false, 3);
            //Piece greenPiece4 = new Piece("0010001001010010", 0, false, 4);
            //Piece greenPiece5 = new Piece("0101101000100101", 0, false, 5);


            //pieceList.Add(greenPiece0);
            //pieceList.Add(greenPiece1);
            //pieceList.Add(greenPiece2);
            //pieceList.Add(greenPiece3);
            //pieceList.Add(greenPiece4);
            //pieceList.Add(greenPiece5);

            for (int p = 0; p < pieceList.Count; p++)
            {
                var piece = pieceList[p];

                string pieceString = string.Format("PIECE {0}: {1}", piece.PieceID, piece.PieceMaskString);
                Debug.WriteLine(pieceString + "\n");
            }


            // OLD CODE

            /*
             * List<Piece> orderedPiecesList = Calculator.CalculateCubeSolution(pieceList, new List<Piece>());
             * if (orderedPiecesList == null) Debug.WriteLine("No solution found! :(");
             * else
             * {
             *  Debug.WriteLine("\n\n\n~~~~~~~~~~~~~~~~~~\n\n\n\nSOLUTION:");
             *  for (int p = 0; p < orderedPiecesList.Count; p++)
             *  {
             *      var piece = orderedPiecesList[p];
             *
             *      string pieceString = string.Format("ORDERED PIECE #{0}: {1} - {2} rotation(s). {3}.", p, piece.PieceID, piece.Rotations, piece.IsFlipped ? "Flipped" : "Not Flipped");
             *      Debug.WriteLine(pieceString + "\n");
             *  }
             * }
             */
            // END OLD CODE


            List <Piece> solvedPiecesList = new List <Piece>();
            bool         solutionExists   = Calculator.FindSolution(pieceList, solvedPiecesList, out solvedPiecesList);

            if (!solutionExists)
            {
                Debug.WriteLine("No solution found! :(");
            }
            else
            {
                Debug.WriteLine("\n\n\n~~~~~~~~~~~~~~~~~~\n\n\n\nSOLUTION:");
                for (int p = 0; p < solvedPiecesList.Count; p++)
                {
                    var piece = solvedPiecesList[p];

                    string pieceString = string.Format("ORDERED PIECE #{0}: {1} - {2} rotation(s). {3}.", p, piece.PieceID, piece.Rotations, piece.IsFlipped ? "Flipped" : "Not Flipped");
                    Debug.WriteLine(pieceString + "\n");
                }
            }


            Console.Read();
        }