/// <summary> /// Set the UI size for the maze and listen for property changed events /// </summary> private void Maze_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { _mazeViewModel = (MazeViewModel)this.DataContext; _mazeViewModel.PropertyChanged += MazeVM_PropertyChanged; SetMazeSize(this.ActualHeight, this.ActualWidth); }
/// <summary> /// Setting the viewmodel /// </summary> /// <param name="m"></param> public void SetVM(MazeViewModel m) { myVM = m as MultiViewModel; this.DataContext = myVM; MultiMazeModel tempModel = myVM.MyModel as MultiMazeModel; //Delegate for moving opponent's player on his board tempModel.OpponentMoved += delegate(Object sender, Key e) { int close = 10; this.Dispatcher.Invoke(() => { close = OpponentBoard.MovePlayer(e); //Opponent won if (close == -1 || close == 2) { LoserWindow lw = new LoserWindow(); lw.ShowDialog(); BackToMain(); } //Opponent closed game if (close == -2) { OtherPlayerQuit(); } }); }; myVM.VM_Maze = myVM.MyModel.MazeString(); }
private void UserKeyDown(object sender, KeyEventArgs e) { MazeViewModel maze = (MazeViewModel)this.DataContext; ICommand comm = null; if (e.Key == Key.Down) { comm = maze.KeyDown; } else if (e.Key == Key.Up) { comm = maze.KeyUp; } else if (e.Key == Key.Right) { comm = maze.KeyRight; } else if (e.Key == Key.Left) { comm = maze.KeyLeft; } try { if (comm.CanExecute(new object())) { comm.Execute(new object()); } } catch (Exception exc) { } }
/// <summary> /// Constructor. /// </summary> public MazeUserControl() { InitializeComponent(); board = new MazeBoard(myCanvas); // Add game ended function to event. board.GameDone += GameEnded; vm = new MazeViewModel(board); }
private void MazeLevelToViewModel(MazeLevel mazeLevel, MazeViewModel viewModel) { viewModel.Cells = new CellType[mazeLevel.Height, mazeLevel.Width]; foreach (var cell in mazeLevel.Cells .OrderBy(x => x.Y) .ThenBy(x => x.X)) { viewModel.Cells[cell.Y, cell.X] = CellTypeMapper(cell); //viewModel.Cells[cell.Y, cell.X].X = cell.X; //viewModel.Cells[cell.Y, cell.X].Y = cell.Y; } }
/// <summary> /// Constructor /// </summary> public SingleStartWindow() { myVM = new SingleViewModel(new SingleMazeModel()); this.DataContext = myVM; InitializeComponent(); int success = myVM.MyModel.Connect(); if (success < 0) { ConnectionFailedWindow c = new ConnectionFailedWindow(); c.Show(); } if (success >= 0) { GameInfo.btnStart.Click += BtnStart_Click; this.Show(); } }
public IActionResult GetSolution(MazeViewModel model) { try { var solver = MazeSolverFactory.CreateMazeSolver(MazeSolverType.BFS); var maze = _mapper.Map <MazeModel>(model); var solution = solver.SolveMaze(maze); var hash = new HashSet <int>(); int currentCellIndex = maze.MaxIndex; int start = 0; while (currentCellIndex != 0) { hash.Add(currentCellIndex); currentCellIndex = solution[currentCellIndex]; } hash.Add(start); return(Ok(hash)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public MainWindow() { InitializeComponent(); DataContext = new MazeViewModel(); }
public static void LoadMazeViewModel(MazeViewModel mvm) { MVM = mvm; }
public MazeView(MazeViewModel viewModel) { InitializeComponent(); DataContext = viewModel; }
/// <summary> /// Sets the view model for the window /// </summary> /// <param name="m"></param> public void SetVM(MazeViewModel m) { myVM = m; this.DataContext = myVM; myVM.VM_Maze = myVM.MyModel.MazeString(); }