예제 #1
0
 private void ViewModel_NewGame(object sender, EventArgs e)
 {
     _newGame = new NewGameWindow();
     _newGame.ShowDialog();
     if (_newGame.DialogResult.GetValueOrDefault(true))
     {
         _viewModel.TableSize = _newGame.size;
         _model._tableSize    = _newGame.size;
         _model.NewGame();
     }
 }
예제 #2
0
        /// <summary>
        /// Játék megnyerésének eseménykezelése.
        /// </summary>
        private void Model_GameWon(object sender, GameWonEventArgs e)
        {
            switch (e.Player)
            {
            case Player.PlayerO:
                MessageBox.Show("A kör játékos győzött!", "Játék vége!", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                break;

            case Player.PlayerX:
                MessageBox.Show("A kereszt játékos győzött!", "Játék vége!", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                break;
            }
            _model.NewGame();
        }
예제 #3
0
        /// <summary>
        /// Tic-Tac-Toe játékmodell példányosítása.
        /// </summary>
        public TicTacToeViewModel(ITicTacToeModel model)
        {
            TableSize         = 10;
            _model            = model;
            _model._tableSize = TableSize;
            _model.NewGame();
            _model.GameStarted  += new EventHandler <GameStartedEventArgs>(Model_GameStarted);
            _model.GameLoaded   += Model_GameLoaded;
            _model.FieldChanged += new EventHandler <FieldChangedEventArgs>(Model_FieldChanged);
            _model.GameOver     += new EventHandler <GameOverEventArgs>(Model_GameOver);
            _model.TimePassed   += new EventHandler <TimePassedEventArgs>(Model_TimePassed);
            CurrentPlayer        = PlayerToField(_model._currentPlayer);

            // parancsok kezelése
            //NewGameCommand = new DelegateCommand(param => _model.NewGame());
            NewGameCommand   = new DelegateCommand(param => onNewGame());
            LoadGameCommand  = new DelegateCommand(param => OnLoadGame());
            SaveGameCommand  = new DelegateCommand(param => OnSaveGame());
            ExitGameCommand  = new DelegateCommand(param => OnGameExit());
            PauseGameCommand = new DelegateCommand(param => OnGamePause());

            // játéktábla létrehozása
            Fields = new ObservableCollection <TicTacToeField>();
            Refresh();
        }
예제 #4
0
        private void Model_GameOver(object sender, GameOverEventArgs e)
        {
            if (e.Winner == _model.PlayerOne)
            {
                MessageBox.Show("A kereszt játékos győzött!", "Játék vége!", MessageBoxButton.OK, MessageBoxImage.Asterisk);
            }
            else if (e.Winner == _model.PlayerTwo)
            {
                MessageBox.Show("A kör játékos győzött!", "Játék vége!", MessageBoxButton.OK, MessageBoxImage.Asterisk);
            }
            else
            {
                MessageBox.Show("A játék döntetlen!", "Játék vége!", MessageBoxButton.OK, MessageBoxImage.Asterisk);
            }

            _model.NewGame();
        }
예제 #5
0
        /// <summary>
        /// Tic-Tac-Toe játékmodell példányosítása.
        /// </summary>
        public TicTacToeViewModel(ITicTacToeModel model)
        {
            _model               = model;
            _model.GameStarted  += new EventHandler(Model_GameStarted);
            _model.FieldChanged += new EventHandler <FieldChangedEventArgs>(Model_FieldChanged);

            // parancsok kezelése
            NewGameCommand  = new DelegateCommand(param => _model.NewGame());
            LoadGameCommand = new DelegateCommand(param => OnLoadGame());
            SaveGameCommand = new DelegateCommand(param => OnSaveGame());
            ExitGameCommand = new DelegateCommand(param => OnGameExit());

            // játéktábla létrehozása
            Fields    = new ObservableCollection <TicTacToeField>();
            TableSize = 30;
            Refresh();
        }
예제 #6
0
        /// <summary>
        /// Alkalmazás indulásának eseménykezelője.
        /// </summary>
        private void App_Startup(object sender, StartupEventArgs e)
        {
            _dataAccess = new TicTacToeFileDataAccess();

            _model           = new BasicTicTacToeModel(_dataAccess);
            _model.GameWon  += new EventHandler <GameWonEventArgs>(Model_GameWon);
            _model.GameOver += new EventHandler(Model_GameOver);
            _model.NewGame();

            _viewModel           = new TicTacToeViewModel(_model);
            _viewModel.LoadGame += new EventHandler(ViewModel_LoadGame); // kezeljük a nézetmodell eseményeit
            _viewModel.SaveGame += new EventHandler(ViewModel_SaveGame);
            _viewModel.GameExit += new EventHandler(ViewModel_GameExit);

            _window             = new TicTacToeWindow();
            _window.DataContext = _viewModel;
            _window.Show();
        }
예제 #7
0
        public void Initialize(Player p1, Player p2)
        {
            _model = Activator.CreateInstanceFrom("TicTacToeModel.dll", "TicTacToeModel.TicTacToeModel")
                     .Unwrap() as ITicTacToeModel;
            _model.Initialize(p1, p2);
            _model.GameOver += new EventHandler <GameOverEventArgs>(Model_GameOver);

            _viewModel = Activator.CreateInstanceFrom("TicTacToeViewModel.dll", "TicTacToeViewModel.TicTacToeViewModel")
                         .Unwrap() as ITicTacToeViewModel;
            _viewModel.Initialize(_model);
            _viewModel.BackCommand = new DelegateCommand(p => ViewModel_GameExit());

            _model.NewGame();

            _window             = Activator.CreateInstanceFrom("TicTacToeView.dll", "TicTacToeView.TicTacToeWindow").Unwrap() as Window;
            _window.DataContext = _viewModel;
            _window.Closed     += new EventHandler(OnWindowClosed);
        }