/// <summary> /// Constructor of ViewModel. /// </summary> /// <param name="model">Model of the game.</param> public BlackHoleGameViewModel(BlackHoleGameModel model) { TableFields = new ObservableCollection<TableField>(); this.model = model; model.FieldChanged += new EventHandler<FieldChangedEventArgs>(Model_FieldChanged); model.GameStatusChanged += new EventHandler<GameStatusEventArgs>(Model_GameStatusChanged); model.ScoresChanged += new EventHandler<ScoresChangedEventArgs>(Model_ScoresChanged); model.GameWon += new EventHandler<GameWonEventArgs>(Model_GameWon); model.TableSizeChanged += new EventHandler<TableSizeChangedEventArgs>(Model_TableSizeChanged); model.LoadGameFinished += new EventHandler<EventArgs>(Model_LoadGameFinished); NewGameCommand = new DelegateCommand(param => { GenerateTable(Convert.ToInt32(param)); model.NewGame(Convert.ToInt32(param)); isSaveMenuEnabled = true; }); KeyDownCommand = new DelegateCommand(param => { return isSaveMenuEnabled; }, param => { model.MoveSelectedSpaceship(DirectionFromString(Convert.ToString(param))); }); LoadGameCommand = new DelegateCommand(param => OnLoadGame()); SaveGameCommand = new DelegateCommand(param => { return isSaveMenuEnabled; }, param => { OnSaveGame(); }); ExitGameCommand = new DelegateCommand(param => OnExitGame()); Points = ""; NextPlayer = "Start a new game."; isSaveMenuEnabled = false; }
/// <summary> /// Invoked when the application is launched normally by the end user. Other entry points /// will be used such as when the application is launched to open a specific file. /// </summary> /// <param name="e">Details about the launch request and process.</param> protected override void OnLaunched(LaunchActivatedEventArgs e) { dataAccess = new BlackHoleGameFileDataAccess(); model = new BlackHoleGameModel(dataAccess); viewModel = new BlackHoleGameViewModel(model); model.GameWon += new EventHandler<GameWonEventArgs>(Model_GameWon); viewModel.SaveGame += new EventHandler(ViewModel_SaveGame); viewModel.LoadGame += new EventHandler(ViewModel_LoadGame); Frame rootFrame = new Frame(); rootFrame.Language = Windows.Globalization.ApplicationLanguages.Languages[0]; rootFrame.DataContext = viewModel; rootFrame.NavigationFailed += OnNavigationFailed; Window.Current.Content = rootFrame; if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) { LoadAppState(); } if (!rootFrame.Navigate(typeof(MainPage), e.Arguments)) { throw new Exception("Failed to create initial page"); } Window.Current.Activate(); }
public BlackHoleGameForm() { InitializeComponent(); model = new BlackHoleGameModel(new BlackHoleGameFileDataAccess()); model.FieldChanged += new EventHandler<FieldChangedEventArgs>(Model_FieldChanged); model.GameStatusChanged += new EventHandler<GameStatusEventArgs>(Model_GameStatusChanged); model.ScoresChanged += new EventHandler<ScoresChangedEventArgs>(Model_ScoresChanged); model.GameWon += new EventHandler<GameWonEventArgs>(Model_GameWon); model.TableSizeChanged += new EventHandler<TableSizeChangedEventArgs>(Model_TableSizeChanged); }
private void App_Startup(object sender, StartupEventArgs e) { gameModel = new BlackHoleGameModel(new BlackHoleGameFileDataAccess()); gameModel.GameWon += new EventHandler<GameWonEventArgs>(Model_GameWon); gameViewModel = new BlackHoleGameViewModel(gameModel); gameViewModel.SaveGame += new EventHandler(ViewModel_SaveGame); gameViewModel.LoadGame += new EventHandler(ViewModel_LoadGame); gameViewModel.ExitGame += new EventHandler(ViewModel_ExitGame); gameView = new MainWindow(); gameView.DataContext = gameViewModel; gameView.Closing += new CancelEventHandler(View_Exit); gameView.Show(); }
public void Initialize() { model = new BlackHoleGameModel(null); }