Ejemplo n.º 1
0
        public WhackAMoleViewModel(WhackAMoleModel model)
        {
            // játék csatlakoztatása
            _model = model;
            _model.GameAdvanced += new EventHandler <WhackAMoleEventArgs>(Model_GameAdvanced);
            _model.GameOver     += new EventHandler <WhackAMoleEventArgs>(Model_GameOver);
            _model.GameCreated  += new EventHandler <WhackAMoleEventArgs>(Model_GameCreated);

            // parancsok kezelése
            NewGameCommand = new DelegateCommand(param => OnNewGame());

            // játéktábla létrehozása
            Fields = new ObservableCollection <WhackAMoleField>();
            for (Int32 i = 0; i < _model.Table.Size; i++) // inicializáljuk a mezőket
            {
                for (Int32 j = 0; j < _model.Table.Size; j++)
                {
                    Fields.Add(new WhackAMoleField
                    {
                        Text        = String.Empty,
                        X           = i,
                        Y           = j,
                        Number      = i * _model.Table.Size + j, // a gomb sorszáma, amelyet felhasználunk az azonosításhoz
                        StepCommand = new DelegateCommand(param => StepGame(Convert.ToInt32(param)))
                                                                 // ha egy mezőre léptek, akkor jelezzük a léptetést, változtatjuk a lépésszámot
                    });
                }
            }


            RefreshTable();
        }
Ejemplo n.º 2
0
        private void App_Startup(object sender, StartupEventArgs e)
        {
            // modell létrehozása
            _model           = new WhackAMoleModel();
            _model.GameOver += new EventHandler <WhackAMoleEventArgs>(Model_GameOver);
            _model.NewGame();

            // nézemodell létrehozása
            _viewModel          = new WhackAMoleViewModel(_model);
            _viewModel.NewGame += new EventHandler(ViewModel_NewGame);

            // nézet létrehozása
            _view             = new MainWindow();
            _view.DataContext = _viewModel;
            //_view.Closing += new System.ComponentModel.CancelEventHandler(View_Closing); // eseménykezelés a bezáráshoz
            _view.Show();

            // időzítő létrehozása
            _timer          = new DispatcherTimer();
            _timer.Interval = TimeSpan.FromSeconds(1);
            _timer.Tick    += new EventHandler(Timer_Tick);
            _timer.Start();
        }