public BlockDocuViewModel(BlockDocuModel model) { // játék csatlakoztatása _model = model; _model.GameAdvanced += new EventHandler <BlockDocuEventArgs>(Model_GameAdvanced); _model.GameOver += new EventHandler <BlockDocuEventArgs>(Model_GameOver); _model.GameCreated += new EventHandler <BlockDocuEventArgs>(Model_GameCreated); // parancsok kezelése NewGameCommand = new DelegateCommand(param => OnNewGame()); // játéktábla létrehozása Fields = new ObservableCollection <BlockDocuField>(); 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 BlockDocuField { 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(); }
private void BlockDocuView_Load(object sender, EventArgs e) { _model = new BlockDocuModel(); _model.GameAdvanced += new EventHandler <BlockDocuEventArgs>(Game_GameAdvanced); _model.GameOver += new EventHandler <BlockDocuEventArgs>(Game_GameOver); // időzítő létrehozása _timer = new Timer(); _timer.Interval = 1000; _timer.Tick += new EventHandler(Timer_Tick); // játéktábla és menük inicializálása GenerateTable(); // új játék indítása _model.NewGame(); SetupTable(); _timer.Start(); }
private void App_Startup(object sender, StartupEventArgs e) { // modell létrehozása _model = new BlockDocuModel(); _model.GameOver += new EventHandler <BlockDocuEventArgs>(Model_GameOver); _model.NewGame(); // nézemodell létrehozása _viewModel = new BlockDocuViewModel(_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(); }