Example #1
0
        //sender is thing being clicked
        private void ButtonClick(object sender, RoutedEventArgs e)
        {
            //Check Game End
            if (mGameEnded)
            {
                NewGame();
                return;
            }


            //Cast sender to a button
            //Find the buttons in the array
            var button = (Button)sender;
            var column = Grid.GetColumn(button);
            var row    = Grid.GetRow(button);
            var index  = column + (row * 3);

            if (mResults[index] != MarkType.Free)
            {
                return;
            }

            //Set the cell value based on player turn
            if (mPlayer1Turn)
            {
                mResults[index] = MarkType.Cross;
            }
            else
            {
                mResults[index] = MarkType.Circle;
            }

            //Show the button content
            if (mPlayer1Turn)
            {
                button.Content = "X";
            }
            else
            {
                button.Content = "O";
            }

            //Change Os to green
            if (!mPlayer1Turn)
            {
                button.Foreground = Brushes.Red;
            }

            //swap turns
            // This toggles booleans mPlayer1Turn ^= true;
            if (mPlayer1Turn)
            {
                mPlayer1Turn = false;
            }
            else
            {
                mPlayer1Turn = true;
            }

            CheckForWinner();
        }
Example #2
0
        /// <summary>
        /// button click Event Handler....
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        ///
        private void button_Click(object sender, RoutedEventArgs e)
        {
            var button = (Button)sender;

            var column = Grid.GetColumn(button);
            var row    = Grid.GetRow(button);

            var gridIndex = column + (row * 3);

            if (ticTac.PlayerState && ticTac.GameState)
            {
                if (ticTac.tileValues[gridIndex] != TicTac.BoxState.free)
                {
                    MessageBox.Show("Already Filled!");
                    /// return;
                }

                else
                {
                    ticTac.tileValues[gridIndex] = TicTac.BoxState.cross;
                    button.Content     = 'X';
                    ticTac.PlayerState = false;
                }
                ticTac.getWinner(TicTac.BoxState.cross);
            }


            if (!ticTac.PlayerState && ticTac.GameState)
            {
                var btn   = Container.Children.Cast <Button>().ToArray();
                var index = ticTac.computerPlay();
                btn[index].Content       = 'O';
                btn[index].Foreground    = Brushes.Red;
                ticTac.tileValues[index] = TicTac.BoxState.zero;
                ticTac.PlayerState       = true;
                ticTac.getWinner(TicTac.BoxState.zero);
            }

            if (ticTac.GameState != true)
            {
                ///MessageBox.Show(ticTac.winner.ToString());
                if (ticTac.winner == TicTac.IdentifyWinner.stalemate)
                {
                    Container.Children.Cast <Button>().ToList().ForEach(button =>
                    {
                        button.Background = Brushes.Gold;
                        button.Foreground = Brushes.Black;
                    });

                    MessageBox.Show($"{ticTac.winner.ToString()}");
                    this.newGame();
                }

                if (ticTac.winner == TicTac.IdentifyWinner.player || ticTac.winner == TicTac.IdentifyWinner.computer)
                {
                    var btn = Container.Children.Cast <Button>().ToArray();

                    for (int i = 0; i < ticTac.maxRowSize; ++i)
                    {
                        btn[ticTac.winSegments[i]].Background = Brushes.Green;
                    }
                    MessageBox.Show($"{ticTac.winner.ToString()} wins GameOver");
                    this.newGame();
                }
            }
        }