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(); }
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; }
public AlgorithmSelectionDataModel() { this.CurrentAlgorithm = AlgorithmCollection.DefaultText; }