示例#1
0
        /// <summary>
        /// show viewmodel with VM name
        /// </summary>
        /// <param name="VMName"></param>
        public void ShowViewModel(string VMName)
        {
            BaseVM viewModel = null;

            switch (VMName)
            {
            case nameof(OnePlayerVM):
                viewModel = new OnePlayerVM();
                break;

            case nameof(TwoPlayerVM):
                viewModel = new TwoPlayerVM();
                break;

            case nameof(StartPageVM):
                viewModel = new StartPageVM();
                break;
            }
            CurrentViewModel = viewModel;
        }
示例#2
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            // initialize pageVM
            pageVM = pageVM ?? (OnePlayerVM)DataContext;

            // get cellID from Tag
            int cellID = int.Parse((sender as Button).Tag.ToString());

            #region User's move
            // user's move
            if (!pageVM.GameBoard.IsEmpty(cellID))
            {
                return;
            }

            pageVM.GameBoard.Place(cellID);

            // Winner?
            char?winner = pageVM.GameBoard.Winner;
            if (winner != null)
            {
                pageVM.GameTimer.StopTimer();
                WinnerTextBlock.Visibility = Visibility.Visible;
                return;
            }
            #endregion

            #region AI's move
            // AI's move
            pageVM.GameBot.BestMove();

            // Winner?
            winner = pageVM.GameBoard.Winner;
            if (winner != null)
            {
                pageVM.GameTimer.StopTimer();
                WinnerTextBlock.Visibility = Visibility.Visible;
            }
            #endregion
        }