public void InInitialize()
        {
            _model = new BekeritModel(null);

            //_model.GameAdvanced += new EventHandler<BekeritEventArgs>(Model_GameAdvanced);
            //_model.GameOver += new EventHandler<BekeritEventArgs>(Model_GameOver);
        }
Пример #2
0
        private void App_Startup(object sender, StartupEventArgs e)
        {
            BekeritDataAccess dataAccess;

            //dataAccess = new BekeritFileDataAccess(AppDomain.CurrentDomain.BaseDirectory); // fájl alapú mentés
            dataAccess = new BekeritDbDataAccess("name=BekeritModel"); // adatbázis alapú mentés

            // modell létrehozása
            _model           = new BekeritModel(dataAccess);
            _model.GameOver += new EventHandler <BekeritEventArgs>(Model_GameOver);
            _model.NewGame();

            // nézemodell létrehozása
            _viewModel = new BekeritViewModel(_model);

            _viewModel.NewGameSmall  += new EventHandler(ViewModel_NewGameSmall);
            _viewModel.NewGameMedium += new EventHandler(ViewModel_NewGameMedium);
            _viewModel.NewGameBig    += new EventHandler(ViewModel_NewGameBig);
            _viewModel.ExitGame      += new EventHandler(ViewModel_ExitGame);
            _viewModel.LoadGameOpen  += new EventHandler(ViewModel_LoadGameOpen);
            _viewModel.LoadGameClose += new EventHandler <String>(ViewModel_LoadGameClose);
            _viewModel.SaveGameOpen  += new EventHandler(ViewModel_SaveGameOpen);
            _viewModel.SaveGameClose += new EventHandler <String>(ViewModel_SaveGameClose);


            // 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();
        }
        public BekeritViewModel(BekeritModel model)
        {
            _model              = model;
            _model.GameOver    += new EventHandler <BekeritEventArgs>(Model_GameOver);
            _model.GameCreated += new EventHandler <BekeritEventArgs>(Model_GameCreated);

            NewGameSmallCommand  = new DelegateCommand(param => OnNewGameSmall());
            NewGameMediumCommand = new DelegateCommand(param => OnNewGameMedium());
            NewGameBigCommand    = new DelegateCommand(param => OnNewGameBig());

            SaveGameOpenCommand = new DelegateCommand(param => EnableSave, async param =>
            {
                Games = new ObservableCollection <SaveEntry>(await _model.ListGamesAsync());
                OnSaveGameOpen();
            });
            SaveGameCloseCommand = new DelegateCommand(
                param => NewName.Length > 0, // parancs végrehajthatóságának feltétele
                param => { OnSaveGameClose(NewName); });


            LoadGameOpenCommand = new DelegateCommand(async param =>
            {
                Games = new ObservableCollection <SaveEntry>(await _model.ListGamesAsync());
                OnLoadGameOpen();
            });
            LoadGameCloseCommand = new DelegateCommand(
                param => SelectedGame != null, // parancs végrehajthatóságának feltétele
                param => { OnLoadGameClose(SelectedGame.Name); });

            ExitCommand = new DelegateCommand(param => OnExitGame());

            // játéktábla létrehozása
            Fields = new ObservableCollection <BekeritField>();

            for (Int32 i = 0; i < _model._size; i++) // inicializáljuk a mezőket
            {
                for (Int32 j = 0; j < _model._size; j++)
                {
                    Fields.Add(new BekeritField
                    {
                        IsLocked    = false,
                        Player      = Model.Players.NoPlayer,
                        PlayerColor = Model.Players.NoPlayer,
                        Size        = 6,
                        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
                    });
                }
            }

            //FinishTable();
            EnableSave = true;
        }