/// <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;
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #4
0
        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);
 }