Exemplo n.º 1
0
        static void Main(string[] args)
        {
            Cube cube = new Cube();

            DrawFlatCube(cube);

            if (RESOLVE)
            {
                do
                {
                    DrawFlatCube(cube);
                    cube.Scramble(30);
                    CubeSolver solver = new CubeSolver(cube);

                    AlgorithmCollection solution = solver.Solve();
                    solution.Optimize();

                    foreach (AlgorithmViewPair pair in solution)
                    {
                        cube.SetView(pair.View);
                        DrawFlatCube(cube);
                        Wait();

                        foreach (Move move in pair.Algorithm)
                        {
                            cube.ExecuteMove(move);

                            Console.Clear();

                            DrawFlatCube(cube);

                            Wait();
                        }
                    }
                }while (Console.ReadKey().Key == ConsoleKey.Enter);
            }
            else
            {
                while (true)
                {
                    Console.Write("Inserisci mossa: ");
                    Move m = (Move)Enum.Parse(typeof(Move), Console.ReadLine());
                    cube.ExecuteMove(m);

                    DrawFlatCube(cube);
                }
            }

            Console.ReadLine();
        }
Exemplo n.º 2
0
        public AlgorithmCollection AdaptSolution(AlgorithmCollection sol)
        {
            AlgorithmCollection newSolution = new AlgorithmCollection();

            foreach (AlgorithmViewPair pair in sol)
            {
                foreach (Move move in pair.Algorithm)
                {
                    if (Math.Abs((int)move) == _generalmove)
                    {
                        newSolution.Add(new AlgorithmViewPair(new Move[] { move }, pair.View));
                    }
                }
            }

            return(null);
        }
        private AlgorithmCollection CurrentAlgorithm;                       // string = algo name, index as indentifier

        public AlgorithmSelectionController(AlgorithmSelectionViewModel algorithmSelectionViewModel, ComboBox AlgoComboBox)
        {
            //  Link references
            this.AlgorithmSelectionViewModel = algorithmSelectionViewModel;
            this.AlgorithmSelectionComboBox  = AlgoComboBox;

            // Serialize the contrainers
            this.SerializeAlgorithmDescriptions(ref this.AlgorithmSelectionDescriptions);
            this.SerializeAlgorithmNameList(ref this.FullyQualifiedAlgorithmNames);
            this.CurrentAlgorithm = AlgorithmCollection.DefaultText;

            // Data Model
            this.AlgorithmSelectionDataModel = new AlgorithmSelectionDataModel();
            this.AlgorithmSelectionDataModel.CurrentAlgorithm = this.CurrentAlgorithm;

            // View Model
            this.AlgorithmSelectionViewModel.UpdateComboBoxAnchor(this.AlgorithmSelectionComboBox);
            this.AlgorithmSelectionViewModel.UpdateSelectionsList(ref this.FullyQualifiedAlgorithmNames);
            this.AlgorithmSelectionViewModel.UpdateAlgorithmName(this.FullyQualifiedAlgorithmNames[0]);

            this.Update();
        }
 private void UpdateDataModel(int SelectionIndex)
 {
     this.AlgorithmSelectionDataModel.CurrentAlgorithm = this.CurrentAlgorithm;
 }
 private void UpdateControllerData(int SelectionIndex)
 {
     // the current algorithm
     this.CurrentAlgorithm = (AlgorithmCollection)SelectionIndex;
 }
Exemplo n.º 6
0
 public AlgorithmSelectionDataModel()
 {
     this.CurrentAlgorithm = AlgorithmCollection.DefaultText;
 }