public WumpusViewModel(WumpusModel model) { _model = model; _model.OnStep += new EventHandler <WumpusEventArgs>(RefreshTable); _model.OnGameWon += new EventHandler <EventArgs>(Uncover); UncoverCommand = new DelegateCommand(p => Uncover()); UpCommand = new DelegateCommand(p => _model.IsGameOn, p => _model.StepUp()); DownCommand = new DelegateCommand(p => _model.IsGameOn, p => _model.StepDown()); LeftCommand = new DelegateCommand(p => _model.IsGameOn, p => _model.StepLeft()); RightCommand = new DelegateCommand(p => _model.IsGameOn, p => _model.StepRight()); StepCommand = new DelegateCommand(p => _model.IsGameOn, p => _model.Step((String)p)); ShootCommand = new DelegateCommand(p => _model.IsGameOn, p => { _model.Shoot((String)p); OnPropertyChanged("arrows"); }); NewGameOptionsCommand = new DelegateCommand(p => ShowNewGameOptions()); StartNewGameCommand = new DelegateCommand(p => StartNewGame()); TableSizeList = new List <int> { 4, 5, 6, 7, 8 }; NumberOfArrowsList = new List <int> { 1, 2, 3, 4, 5, 6 }; NumberOfBatsList = new List <int> { 3, 4, 5, 6 }; NumberOfPitsList = new List <int> { 3, 4, 5, 6 }; NewGameSettings = new GameSettings { NumberOfArrows = 6, NumberOfBats = 3, NumberOfPits = 3, TableSize = 8 }; }
private void App_Startup(object sender, StartupEventArgs e) { GameSettings settings = new GameSettings { TableSize = 6, NumberOfArrows = 6, NumberOfBats = 3, NumberOfPits = 3 }; _model = new WumpusModel(); _model.NewGame(settings); _viewModel = new WumpusViewModel(_model); _viewModel.NewGameOptions += new EventHandler <EventArgs>(App_ShowNewGameOptions); _viewModel.OnStartNewGame += new EventHandler <WumpusEventArgs>(App_StartNewGame); _viewModel.NewGame(settings); _view = new MainWindow(); _view.DataContext = _viewModel; _view.Show(); Console.WriteLine(_model.TableSize); }