Another Tick Tack Toe Question!?

Topics on common programming languages
User avatar
Trebor29
Lieutenant
Lieutenant
Posts: 75
Joined: Thu Apr 29, 2010 12:34 am

Another Tick Tack Toe Question!?

Post by Trebor29 » Fri Dec 24, 2010 9:11 pm

Hi all,
Ive made a 2 player Tick Tack Toe game and have got it all working with bells n whistles etc. But... where I have the winning combinations, there is a ridiculas amount of repeated code and was hoping somone might know of a better way to do this... maybe by checking through a loop or somthing to reduce the code.
There are 4 game modes; 3x3 , 4x4 , 5x5 , 6x6 playing grids. For each playing mode there are separate winning combinations for each. The playing grid size is selected by choosing a number 3 - 6 from a comboBox.... gridSizeComboBox.SelectedIndex == 0 contains the winning combinations for the first number in the comboBox, which is 3 (3x3).. gridSizeComboBox.SelectedIndex == 1, second number in the comboBox which is 4 (4x4) and so on...
Game buttons are created using a multi dimensional array - its a requirment! :mrgreen:

Here's the code:

Code: Select all

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Media;

namespace TickTackToeAssignment
{
    public partial class GamePlayForm : Form
    {
        int P1Score, P2Score, B, draw = 0;
        Button[,] tickTackButton;
        bool buttonChanged;

        public GamePlayForm()
        {
            InitializeComponent();
            
        }

        private void exitGameButton_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Do you really want to leave when we're having so much fun?", "Exit Game", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
            {
                if (MessageBox.Show("yOUr NOt gOinG AnyWHeRe!!!", "Escape", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
                {
                    Application.Exit();
                }
            }
        }

        private void mainMenuButton_Click(object sender, EventArgs e)
        {
            Form mainMenu = new WelcomeScreenForm();
            mainMenu.Show();
            this.Hide();
        }

        private void GamePlayForm_Load(object sender, EventArgs e)
        {
            SoundPlayer welcome = new SoundPlayer();
            welcome.SoundLocation = Application.StartupPath + "\\..\\..\\welcome.wav";
            welcome.Play();

            gridSizeComboBox.SelectedIndex = 0;
            playerTextBox.ReadOnly = true;

            P1ScoreLabel.Text = P1Score.ToString();
            P2ScoreLabel.Text = P2Score.ToString();
            drawnScoreLabel.Text = draw.ToString();
        }

        private void gridSizeComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (gridSizeComboBox.SelectedIndex == 0)
            {
                gridSizeLabel.Text = ("3 X");
            }
            if (gridSizeComboBox.SelectedIndex == 1)
            {
                gridSizeLabel.Text = ("4 X");
            }
            if (gridSizeComboBox.SelectedIndex == 2)
            {
                gridSizeLabel.Text = ("5 X");
            }
            if (gridSizeComboBox.SelectedIndex == 3)
            {
                gridSizeLabel.Text = ("6 X");
            }
        }

        private void playGameButton_Click(object sender, EventArgs e)
        {
            playerTextBox.Text = "PLAYER 1";
            groupBoxButtons.Controls.Clear();
            int gridSize = int.Parse(gridSizeComboBox.Text);

            GamePlayForm.ActiveForm.Size = new System.Drawing.Size((gridSizeComboBox.SelectedIndex * 88) + 540, (gridSizeComboBox.SelectedIndex * 88) + 420);
            groupBoxButtons.Size = new System.Drawing.Size((gridSizeComboBox.SelectedIndex * 88) + 400, (gridSizeComboBox.SelectedIndex * 88) + 320);

            tickTackButton = new Button[gridSize, gridSize];

            for (int i = 0; i < gridSize; i++)
            {
                for (int x = 0; x < gridSize; x++)
                {
                    tickTackButton[x, i] = new Button();
                    tickTackButton[x, i].Name = "tickTackButton" + x + ", " + i;
                    tickTackButton[x, i].Width = 75;
                    tickTackButton[x, i].Height = 75;
                    tickTackButton[x, i].Left = tickTackButton[x, i].Width + (x * 88);
                    tickTackButton[x, i].Top = tickTackButton[x, i].Top + tickTackButton[x, i].Top + 35 + (i * 88);
                    tickTackButton[x, i].Text = " ";
                    tickTackButton[x, i].BackColor = Color.Purple;
                    
                    groupBoxButtons.Controls.Add(tickTackButton[x, i]);
                    tickTackButton[x, i].Click += new EventHandler(Button_Click);

                    buttonChanged = false;
                }
            }
        }

        private void Button_Click(object sender, EventArgs e)
        {
            SoundPlayer buttonSound = new SoundPlayer();
            buttonSound.SoundLocation = Application.StartupPath + "\\..\\..\\buttonSound.wav";
            buttonSound.Play();

            Button clickedButton = (Button)sender;

            if (buttonChanged == false)
            {
                buttonChanged = true;
                clickedButton.Text = "X";
                clickedButton.Font = new System.Drawing.Font("chiller", 42, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
                clickedButton.Enabled = false;
                playerTextBox.Text = "PLAYER 2";
            }
            else
            {
                buttonChanged = false;
                clickedButton.Text = "O";
                clickedButton.Font = new System.Drawing.Font("chiller", 42, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
                clickedButton.Enabled = false;
                playerTextBox.Text = "PLAYER 1";
            }
            checkForWinner();

        }

        #region tickTackToe Game Results Generator

        private void checkForWinner()
        {   
            if(gridSizeComboBox.SelectedIndex == 0)
            {
                B++;
                //3x3 Col
                if ((tickTackButton[0, 0].Text == "X" && tickTackButton[0, 1].Text == "X" && tickTackButton[0, 2].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[1, 2].Text == "X")
                    || (tickTackButton[2, 0].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[2, 2].Text == "X")
                    // Row
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 0].Text == "X" && tickTackButton[2, 0].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 1].Text == "X")
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 2].Text == "X")
                     // Diag
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 2].Text == "X")
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 0].Text == "X"))
                {
                    int P = 1;
                    PlayerWins(P);
                }
                if ((tickTackButton[0, 0].Text == "O" && tickTackButton[0, 1].Text == "O" && tickTackButton[0, 2].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[1, 2].Text == "O")
                    || (tickTackButton[2, 0].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[2, 2].Text == "O")
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 0].Text == "O" && tickTackButton[2, 0].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 1].Text == "O")
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 2].Text == "O")
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 2].Text == "O")
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 0].Text == "O"))
                {
                    int P = 2;
                    PlayerWins(P);
                }
                else if (B == 9)
                {
                    int P = 0;
                    PlayerWins(P);
                            
                }
            }
            if (gridSizeComboBox.SelectedIndex == 1)
            {
                B++;
                //4x4 Col
                if ((tickTackButton[0, 0].Text == "X" && tickTackButton[0, 1].Text == "X" && tickTackButton[0, 2].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[0, 2].Text == "X" && tickTackButton[0, 3].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[1, 2].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[1, 3].Text == "X")
                    || (tickTackButton[2, 0].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[2, 2].Text == "X")
                    || (tickTackButton[2, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[2, 3].Text == "X")
                    || (tickTackButton[3, 0].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[3, 2].Text == "X")
                    || (tickTackButton[3, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[3, 3].Text == "X")
                    // Row
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 0].Text == "X" && tickTackButton[2, 0].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[2, 0].Text == "X" && tickTackButton[3, 0].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 1].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 1].Text == "X")
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 2].Text == "X")
                    || (tickTackButton[1, 2].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 2].Text == "X")
                    || (tickTackButton[0, 3].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[2, 3].Text == "X")
                    || (tickTackButton[1, 3].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 3].Text == "X")
                    // Diag
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 3].Text == "X")
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 2].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 3].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 2].Text == "X")
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 0].Text == "X")
                    || (tickTackButton[0, 3].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 1].Text == "X")
                    || (tickTackButton[1, 2].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 0].Text == "X")
                    || (tickTackButton[1, 3].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 1].Text == "X"))
                {
                    int P = 1;
                    PlayerWins(P);
                }
                // Col
                if ((tickTackButton[0, 0].Text == "O" && tickTackButton[0, 1].Text == "O" && tickTackButton[0, 2].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[0, 2].Text == "O" && tickTackButton[0, 3].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[1, 2].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[1, 3].Text == "O")
                    || (tickTackButton[2, 0].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[2, 2].Text == "O")
                    || (tickTackButton[2, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[2, 3].Text == "O")
                    || (tickTackButton[3, 0].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[3, 2].Text == "O")
                    || (tickTackButton[3, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[3, 3].Text == "O")
                    // Row
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 0].Text == "O" && tickTackButton[2, 0].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[2, 0].Text == "O" && tickTackButton[3, 0].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 1].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 1].Text == "O")
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 2].Text == "O")
                    || (tickTackButton[1, 2].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 2].Text == "O")
                    || (tickTackButton[0, 3].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[2, 3].Text == "O")
                    || (tickTackButton[1, 3].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 3].Text == "O")
                    // Diag
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 3].Text == "O")
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 2].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 3].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 2].Text == "O")
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 0].Text == "O")
                    || (tickTackButton[0, 3].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 1].Text == "O")
                    || (tickTackButton[1, 2].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 0].Text == "O")
                    || (tickTackButton[1, 3].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 1].Text == "O"))
                {
                    int P = 2;
                    PlayerWins(P); ;
                }
                else if (B == 16)
                {
                    int P = 0;
                    PlayerWins(P);

                }
            }
            if (gridSizeComboBox.SelectedIndex == 2)
            {
                B++;
                //5x5 Col
                if ((tickTackButton[0, 0].Text == "X" && tickTackButton[0, 1].Text == "X" && tickTackButton[0, 2].Text == "X" && tickTackButton[0, 3].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[0, 2].Text == "X" && tickTackButton[0, 3].Text == "X" && tickTackButton[0, 4].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[1, 3].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[1, 4].Text == "X")
                    || (tickTackButton[2, 0].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[2, 3].Text == "X")
                    || (tickTackButton[2, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[2, 4].Text == "X")
                    || (tickTackButton[3, 0].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[3, 3].Text == "X")
                    || (tickTackButton[3, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[3, 4].Text == "X")
                    || (tickTackButton[4, 0].Text == "X" && tickTackButton[4, 1].Text == "X" && tickTackButton[4, 2].Text == "X" && tickTackButton[4, 3].Text == "X")
                    || (tickTackButton[4, 1].Text == "X" && tickTackButton[4, 2].Text == "X" && tickTackButton[4, 3].Text == "X" && tickTackButton[4, 4].Text == "X")
                    // Row
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 0].Text == "X" && tickTackButton[2, 0].Text == "X" && tickTackButton[3, 0].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[2, 0].Text == "X" && tickTackButton[3, 0].Text == "X" && tickTackButton[4, 0].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 1].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[4, 1].Text == "X")
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 2].Text == "X")
                    || (tickTackButton[1, 2].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 2].Text == "X")
                    || (tickTackButton[0, 3].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 3].Text == "X")
                    || (tickTackButton[1, 3].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 3].Text == "X")
                    || (tickTackButton[0, 4].Text == "X" && tickTackButton[1, 4].Text == "X" && tickTackButton[2, 4].Text == "X" && tickTackButton[3, 4].Text == "X")
                    || (tickTackButton[1, 4].Text == "X" && tickTackButton[2, 4].Text == "X" && tickTackButton[3, 4].Text == "X" && tickTackButton[4, 4].Text == "X")
                    // Diag
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 4].Text == "X")
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 3].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 4].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 3].Text == "X")

                    || (tickTackButton[0, 3].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 0].Text == "X")
                    || (tickTackButton[0, 4].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 1].Text == "X")
                    || (tickTackButton[1, 3].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[4, 0].Text == "X")
                    || (tickTackButton[1, 4].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 1].Text == "X"))
                {
                    int P = 1;
                    PlayerWins(P);
                }
                // Col
                if ((tickTackButton[0, 0].Text == "O" && tickTackButton[0, 1].Text == "O" && tickTackButton[0, 2].Text == "O" && tickTackButton[0, 3].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[0, 2].Text == "O" && tickTackButton[0, 3].Text == "O" && tickTackButton[0, 4].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[1, 3].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[1, 4].Text == "O")
                    || (tickTackButton[2, 0].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[2, 3].Text == "O")
                    || (tickTackButton[2, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[2, 4].Text == "O")
                    || (tickTackButton[3, 0].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[3, 3].Text == "O")
                    || (tickTackButton[3, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[3, 4].Text == "O")
                    || (tickTackButton[4, 0].Text == "O" && tickTackButton[4, 1].Text == "O" && tickTackButton[4, 2].Text == "O" && tickTackButton[4, 3].Text == "O")
                    || (tickTackButton[4, 1].Text == "O" && tickTackButton[4, 2].Text == "O" && tickTackButton[4, 3].Text == "O" && tickTackButton[4, 4].Text == "O")
                    // Row
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 0].Text == "O" && tickTackButton[2, 0].Text == "O" && tickTackButton[3, 0].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[2, 0].Text == "O" && tickTackButton[3, 0].Text == "O" && tickTackButton[4, 0].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 1].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[4, 1].Text == "O")
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 2].Text == "O")
                    || (tickTackButton[1, 2].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 2].Text == "O")
                    || (tickTackButton[0, 3].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 3].Text == "O")
                    || (tickTackButton[1, 3].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 3].Text == "O")
                    || (tickTackButton[0, 4].Text == "O" && tickTackButton[1, 4].Text == "O" && tickTackButton[2, 4].Text == "O" && tickTackButton[3, 4].Text == "O")
                    || (tickTackButton[1, 4].Text == "O" && tickTackButton[2, 4].Text == "O" && tickTackButton[3, 4].Text == "O" && tickTackButton[4, 4].Text == "O")
                    // Diag
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 4].Text == "O")
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 3].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 4].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 3].Text == "O")

                    || (tickTackButton[0, 3].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 0].Text == "O")
                    || (tickTackButton[0, 4].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 1].Text == "O")
                    || (tickTackButton[1, 3].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[4, 0].Text == "O")
                    || (tickTackButton[1, 4].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 1].Text == "O"))
                {
                    int P = 2;
                    PlayerWins(P);
                }
                else if (B == 25)
                {
                    int P = 0;
                    PlayerWins(P);

                }

            }
            if (gridSizeComboBox.SelectedIndex == 3)
            {
                B++;
                //6x6 Col
                if ((tickTackButton[0, 0].Text == "X" && tickTackButton[0, 1].Text == "X" && tickTackButton[0, 2].Text == "X" && tickTackButton[0, 3].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[0, 2].Text == "X" && tickTackButton[0, 3].Text == "X" && tickTackButton[0, 4].Text == "X")
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[0, 3].Text == "X" && tickTackButton[0, 4].Text == "X" && tickTackButton[0, 5].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[1, 3].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[1, 4].Text == "X")
                    || (tickTackButton[1, 2].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[1, 4].Text == "X" && tickTackButton[1, 5].Text == "X")
                    || (tickTackButton[2, 0].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[2, 3].Text == "X")
                    || (tickTackButton[2, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[2, 4].Text == "X")
                    || (tickTackButton[2, 2].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[2, 4].Text == "X" && tickTackButton[2, 5].Text == "X")
                    || (tickTackButton[3, 0].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[3, 3].Text == "X")
                    || (tickTackButton[3, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[3, 4].Text == "X")
                    || (tickTackButton[3, 2].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[3, 4].Text == "X" && tickTackButton[3, 5].Text == "X")
                    || (tickTackButton[4, 0].Text == "X" && tickTackButton[4, 1].Text == "X" && tickTackButton[4, 2].Text == "X" && tickTackButton[4, 3].Text == "X")
                    || (tickTackButton[4, 1].Text == "X" && tickTackButton[4, 2].Text == "X" && tickTackButton[4, 3].Text == "X" && tickTackButton[4, 4].Text == "X")
                    || (tickTackButton[4, 2].Text == "X" && tickTackButton[4, 3].Text == "X" && tickTackButton[4, 4].Text == "X" && tickTackButton[4, 5].Text == "X")
                    || (tickTackButton[5, 0].Text == "X" && tickTackButton[5, 1].Text == "X" && tickTackButton[5, 2].Text == "X" && tickTackButton[5, 3].Text == "X")
                    || (tickTackButton[5, 1].Text == "X" && tickTackButton[5, 2].Text == "X" && tickTackButton[5, 3].Text == "X" && tickTackButton[5, 4].Text == "X")
                    || (tickTackButton[5, 2].Text == "X" && tickTackButton[5, 3].Text == "X" && tickTackButton[5, 4].Text == "X" && tickTackButton[5, 5].Text == "X")
                    // Row
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 0].Text == "X" && tickTackButton[2, 0].Text == "X" && tickTackButton[3, 0].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[2, 0].Text == "X" && tickTackButton[3, 0].Text == "X" && tickTackButton[4, 0].Text == "X")
                    || (tickTackButton[2, 0].Text == "X" && tickTackButton[3, 0].Text == "X" && tickTackButton[4, 0].Text == "X" && tickTackButton[5, 0].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 1].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[4, 1].Text == "X")
                    || (tickTackButton[2, 1].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[4, 1].Text == "X" && tickTackButton[5, 1].Text == "X")
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 2].Text == "X")
                    || (tickTackButton[1, 2].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 2].Text == "X")
                    || (tickTackButton[2, 2].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 2].Text == "X" && tickTackButton[5, 2].Text == "X")
                    || (tickTackButton[0, 3].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 3].Text == "X")
                    || (tickTackButton[1, 3].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 3].Text == "X")
                    || (tickTackButton[2, 3].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 3].Text == "X" && tickTackButton[5, 3].Text == "X")
                    || (tickTackButton[0, 4].Text == "X" && tickTackButton[1, 4].Text == "X" && tickTackButton[2, 4].Text == "X" && tickTackButton[3, 4].Text == "X")
                    || (tickTackButton[1, 4].Text == "X" && tickTackButton[2, 4].Text == "X" && tickTackButton[3, 4].Text == "X" && tickTackButton[4, 4].Text == "X")
                    || (tickTackButton[2, 4].Text == "X" && tickTackButton[3, 4].Text == "X" && tickTackButton[4, 4].Text == "X" && tickTackButton[5, 4].Text == "X")
                    || (tickTackButton[0, 5].Text == "X" && tickTackButton[1, 5].Text == "X" && tickTackButton[2, 5].Text == "X" && tickTackButton[3, 5].Text == "X")
                    || (tickTackButton[1, 5].Text == "X" && tickTackButton[2, 5].Text == "X" && tickTackButton[3, 5].Text == "X" && tickTackButton[4, 5].Text == "X")
                    || (tickTackButton[2, 5].Text == "X" && tickTackButton[3, 5].Text == "X" && tickTackButton[4, 5].Text == "X" && tickTackButton[5, 5].Text == "X")
                    // Diag
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[2, 4].Text == "X" && tickTackButton[3, 5].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 4].Text == "X")
                    || (tickTackButton[1, 2].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 4].Text == "X" && tickTackButton[4, 5].Text == "X")
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 3].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 4].Text == "X")
                    || (tickTackButton[2, 2].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 4].Text == "X" && tickTackButton[5, 5].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 3].Text == "X")
                    || (tickTackButton[2, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 3].Text == "X" && tickTackButton[5, 4].Text == "X")
                    || (tickTackButton[2, 0].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[4, 2].Text == "X" && tickTackButton[5, 3].Text == "X")

                    || (tickTackButton[0, 3].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 0].Text == "X")
                    || (tickTackButton[0, 4].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 1].Text == "X")
                    || (tickTackButton[1, 3].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[4, 0].Text == "X")
                    || (tickTackButton[0, 5].Text == "X" && tickTackButton[1, 4].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 2].Text == "X")
                    || (tickTackButton[1, 4].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 1].Text == "X")
                    || (tickTackButton[2, 3].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 1].Text == "X" && tickTackButton[5, 0].Text == "X")
                    || (tickTackButton[1, 5].Text == "X" && tickTackButton[2, 4].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 2].Text == "X")
                    || (tickTackButton[2, 4].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 2].Text == "X" && tickTackButton[5, 1].Text == "X")
                    || (tickTackButton[2, 5].Text == "X" && tickTackButton[3, 4].Text == "X" && tickTackButton[4, 3].Text == "X" && tickTackButton[5, 2].Text == "X"))
                {
                    int P = 1;
                    PlayerWins(P);
                }
                if ((tickTackButton[0, 0].Text == "O" && tickTackButton[0, 1].Text == "O" && tickTackButton[0, 2].Text == "O" && tickTackButton[0, 3].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[0, 2].Text == "O" && tickTackButton[0, 3].Text == "O" && tickTackButton[0, 4].Text == "O")
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[0, 3].Text == "O" && tickTackButton[0, 4].Text == "O" && tickTackButton[0, 5].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[1, 3].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[1, 4].Text == "O")
                    || (tickTackButton[1, 2].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[1, 4].Text == "O" && tickTackButton[1, 5].Text == "O")
                    || (tickTackButton[2, 0].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[2, 3].Text == "O")
                    || (tickTackButton[2, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[2, 4].Text == "O")
                    || (tickTackButton[2, 2].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[2, 4].Text == "O" && tickTackButton[2, 5].Text == "O")
                    || (tickTackButton[3, 0].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[3, 3].Text == "O")
                    || (tickTackButton[3, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[3, 4].Text == "O")
                    || (tickTackButton[3, 2].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[3, 4].Text == "O" && tickTackButton[3, 5].Text == "O")
                    || (tickTackButton[4, 0].Text == "O" && tickTackButton[4, 1].Text == "O" && tickTackButton[4, 2].Text == "O" && tickTackButton[4, 3].Text == "O")
                    || (tickTackButton[4, 1].Text == "O" && tickTackButton[4, 2].Text == "O" && tickTackButton[4, 3].Text == "O" && tickTackButton[4, 4].Text == "O")
                    || (tickTackButton[4, 2].Text == "O" && tickTackButton[4, 3].Text == "O" && tickTackButton[4, 4].Text == "O" && tickTackButton[4, 5].Text == "O")
                    || (tickTackButton[5, 0].Text == "O" && tickTackButton[5, 1].Text == "O" && tickTackButton[5, 2].Text == "O" && tickTackButton[5, 3].Text == "O")
                    || (tickTackButton[5, 1].Text == "O" && tickTackButton[5, 2].Text == "O" && tickTackButton[5, 3].Text == "O" && tickTackButton[5, 4].Text == "O")
                    || (tickTackButton[5, 2].Text == "O" && tickTackButton[5, 3].Text == "O" && tickTackButton[5, 4].Text == "O" && tickTackButton[5, 5].Text == "O")
                    // Row
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 0].Text == "O" && tickTackButton[2, 0].Text == "O" && tickTackButton[3, 0].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[2, 0].Text == "O" && tickTackButton[3, 0].Text == "O" && tickTackButton[4, 0].Text == "O")
                    || (tickTackButton[2, 0].Text == "O" && tickTackButton[3, 0].Text == "O" && tickTackButton[4, 0].Text == "O" && tickTackButton[5, 0].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 1].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[4, 1].Text == "O")
                    || (tickTackButton[2, 1].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[4, 1].Text == "O" && tickTackButton[5, 1].Text == "O")
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 2].Text == "O")
                    || (tickTackButton[1, 2].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 2].Text == "O")
                    || (tickTackButton[2, 2].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 2].Text == "O" && tickTackButton[5, 2].Text == "O")
                    || (tickTackButton[0, 3].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 3].Text == "O")
                    || (tickTackButton[1, 3].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 3].Text == "O")
                    || (tickTackButton[2, 3].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 3].Text == "O" && tickTackButton[5, 3].Text == "O")
                    || (tickTackButton[0, 4].Text == "O" && tickTackButton[1, 4].Text == "O" && tickTackButton[2, 4].Text == "O" && tickTackButton[3, 4].Text == "O")
                    || (tickTackButton[1, 4].Text == "O" && tickTackButton[2, 4].Text == "O" && tickTackButton[3, 4].Text == "O" && tickTackButton[4, 4].Text == "O")
                    || (tickTackButton[2, 4].Text == "O" && tickTackButton[3, 4].Text == "O" && tickTackButton[4, 4].Text == "O" && tickTackButton[5, 4].Text == "O")
                    || (tickTackButton[0, 5].Text == "O" && tickTackButton[1, 5].Text == "O" && tickTackButton[2, 5].Text == "O" && tickTackButton[3, 5].Text == "O")
                    || (tickTackButton[1, 5].Text == "O" && tickTackButton[2, 5].Text == "O" && tickTackButton[3, 5].Text == "O" && tickTackButton[4, 5].Text == "O")
                    || (tickTackButton[2, 5].Text == "O" && tickTackButton[3, 5].Text == "O" && tickTackButton[4, 5].Text == "O" && tickTackButton[5, 5].Text == "O")
                    // Diag
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[2, 4].Text == "O" && tickTackButton[3, 5].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 4].Text == "O")
                    || (tickTackButton[1, 2].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 4].Text == "O" && tickTackButton[4, 5].Text == "O")
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 3].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 4].Text == "O")
                    || (tickTackButton[2, 2].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 4].Text == "O" && tickTackButton[5, 5].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 3].Text == "O")
                    || (tickTackButton[2, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 3].Text == "O" && tickTackButton[5, 4].Text == "O")
                    || (tickTackButton[2, 0].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[4, 2].Text == "O" && tickTackButton[5, 3].Text == "O")

                    || (tickTackButton[0, 3].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 0].Text == "O")
                    || (tickTackButton[0, 4].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 1].Text == "O")
                    || (tickTackButton[1, 3].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[4, 0].Text == "O")
                    || (tickTackButton[0, 5].Text == "O" && tickTackButton[1, 4].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 2].Text == "O")
                    || (tickTackButton[1, 4].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 1].Text == "O")
                    || (tickTackButton[2, 3].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 1].Text == "O" && tickTackButton[5, 0].Text == "O")
                    || (tickTackButton[1, 5].Text == "O" && tickTackButton[2, 4].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 2].Text == "O")
                    || (tickTackButton[2, 4].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 2].Text == "O" && tickTackButton[5, 1].Text == "O")
                    || (tickTackButton[2, 5].Text == "O" && tickTackButton[3, 4].Text == "O" && tickTackButton[4, 3].Text == "O" && tickTackButton[5, 2].Text == "O"))
                {
                    int P = 2;
                    PlayerWins(P);
                }
                else if (B == 36)
                {
                    int P = 0;
                    PlayerWins(P);

                }
            }
        }

        #endregion

        private void PlayerWins(int p)
        {
            if (p == 1)
            {
                SoundPlayer P1Win = new SoundPlayer();
                P1Win.SoundLocation = Application.StartupPath + "\\..\\..\\P1Win.wav";
                P1Win.Play();
                playerTextBox.Text = "Player1 wins!";
                MessageBox.Show("PLAYER 1 IS THE WINNER", "RESULT", MessageBoxButtons.OK, MessageBoxIcon.Information);
                P1Score++;
                P1ScoreLabel.Text = P1Score.ToString();

                Reset();
            }
            if (p == 2)
            {
                SoundPlayer P2Win = new SoundPlayer();
                P2Win.SoundLocation = Application.StartupPath + "\\..\\..\\P2Win.wav";
                P2Win.Play();
                playerTextBox.Text = "Player2 wins!";
                MessageBox.Show("PLAYER 2 IS THE WINNER", "RESULT", MessageBoxButtons.OK, MessageBoxIcon.Information);
                P2Score++;
                P2ScoreLabel.Text = P2Score.ToString();

                Reset();
            }
            else if ((p != 1 && p != 2 && B == 9) || (p != 1 && p != 2 && B == 16) || (p != 1 && p != 2 && B == 25) || (p != 1 && p != 2 && B == 36))
            {
                SoundPlayer drawSound = new SoundPlayer();
                drawSound.SoundLocation = Application.StartupPath + "\\..\\..\\draw.wav";
                drawSound.Play();

                playerTextBox.Text = "Draw!";
                MessageBox.Show("IT'S A DRAW!", "RESULT", MessageBoxButtons.OK, MessageBoxIcon.Information);
                draw++;
                drawnScoreLabel.Text = draw.ToString();
                Reset();
            }
        }

        private void newGameButton_Click(object sender, EventArgs e)
        {
            P1ScoreLabel.Text = "0";
            P2ScoreLabel.Text = "0";
            drawnScoreLabel.Text = "0";
            playerTextBox.Clear();
            gridSizeLabel.Text = "3 X";
            gridSizeComboBox.SelectedIndex = 0;
            groupBoxButtons.Controls.Clear();
            groupBoxButtons.Size = new System.Drawing.Size(400, 320);
            GamePlayForm.ActiveForm.Size = new System.Drawing.Size(540, 420);
        }

        public void Reset()
        {
            groupBoxButtons.Controls.Clear();
            B = 0;
        }
    }
}
User avatar
Neo
Site Admin
Site Admin
Posts: 2642
Joined: Wed Jul 15, 2009 2:07 am
Location: Colombo

Re: Another Tick Tack Toe Question!?

Post by Neo » Sat Dec 25, 2010 12:07 am

Trebor, It will take a long time for me to find the problematic code from this. Can you put only the specific code, so that I can give it a quick look.
User avatar
Trebor29
Lieutenant
Lieutenant
Posts: 75
Joined: Thu Apr 29, 2010 12:34 am

Re: Another Tick Tack Toe Question!?

Post by Trebor29 » Sun Dec 26, 2010 8:03 pm

Hi Neo, Merry Christmas...

Ye sorry, I will reduce the code now. It does work fine, but Im sure you will agree that there is a lot of repeated code and I was just hoping there might be a better way of doing it.

Thanks.

Code: Select all


private void checkForWinner()
        {   
            if(gridSizeComboBox.SelectedIndex == 0)
            {
                B++;
                //3x3 Col
                if ((tickTackButton[0, 0].Text == "X" && tickTackButton[0, 1].Text == "X" && tickTackButton[0, 2].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[1, 2].Text == "X")
                    || (tickTackButton[2, 0].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[2, 2].Text == "X")
                    // Row
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 0].Text == "X" && tickTackButton[2, 0].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 1].Text == "X")
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 2].Text == "X")
                     // Diag
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 2].Text == "X")
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 0].Text == "X"))
                {
                    int P = 1;
                    PlayerWins(P);
                }
                if ((tickTackButton[0, 0].Text == "O" && tickTackButton[0, 1].Text == "O" && tickTackButton[0, 2].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[1, 2].Text == "O")
                    || (tickTackButton[2, 0].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[2, 2].Text == "O")
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 0].Text == "O" && tickTackButton[2, 0].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 1].Text == "O")
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 2].Text == "O")
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 2].Text == "O")
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 0].Text == "O"))
                {
                    int P = 2;
                    PlayerWins(P);
                }
                else if (B == 9)
                {
                    int P = 0;
                    PlayerWins(P);
                            
                }
            }
            if (gridSizeComboBox.SelectedIndex == 1)
            {
                B++;
                //4x4 Col
                if ((tickTackButton[0, 0].Text == "X" && tickTackButton[0, 1].Text == "X" && tickTackButton[0, 2].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[0, 2].Text == "X" && tickTackButton[0, 3].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[1, 2].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[1, 3].Text == "X")
                    || (tickTackButton[2, 0].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[2, 2].Text == "X")
                    || (tickTackButton[2, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[2, 3].Text == "X")
                    || (tickTackButton[3, 0].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[3, 2].Text == "X")
                    || (tickTackButton[3, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[3, 3].Text == "X")
                    // Row
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 0].Text == "X" && tickTackButton[2, 0].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[2, 0].Text == "X" && tickTackButton[3, 0].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 1].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 1].Text == "X")
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 2].Text == "X")
                    || (tickTackButton[1, 2].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 2].Text == "X")
                    || (tickTackButton[0, 3].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[2, 3].Text == "X")
                    || (tickTackButton[1, 3].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 3].Text == "X")
                    // Diag
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 3].Text == "X")
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 2].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 3].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 2].Text == "X")
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 0].Text == "X")
                    || (tickTackButton[0, 3].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 1].Text == "X")
                    || (tickTackButton[1, 2].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 0].Text == "X")
                    || (tickTackButton[1, 3].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 1].Text == "X"))
                {
                    int P = 1;
                    PlayerWins(P);
                }
                // Col
                if ((tickTackButton[0, 0].Text == "O" && tickTackButton[0, 1].Text == "O" && tickTackButton[0, 2].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[0, 2].Text == "O" && tickTackButton[0, 3].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[1, 2].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[1, 3].Text == "O")
                    || (tickTackButton[2, 0].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[2, 2].Text == "O")
                    || (tickTackButton[2, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[2, 3].Text == "O")
                    || (tickTackButton[3, 0].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[3, 2].Text == "O")
                    || (tickTackButton[3, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[3, 3].Text == "O")
                    // Row
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 0].Text == "O" && tickTackButton[2, 0].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[2, 0].Text == "O" && tickTackButton[3, 0].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 1].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 1].Text == "O")
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 2].Text == "O")
                    || (tickTackButton[1, 2].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 2].Text == "O")
                    || (tickTackButton[0, 3].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[2, 3].Text == "O")
                    || (tickTackButton[1, 3].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 3].Text == "O")
                    // Diag
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 3].Text == "O")
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 2].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 3].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 2].Text == "O")
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 0].Text == "O")
                    || (tickTackButton[0, 3].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 1].Text == "O")
                    || (tickTackButton[1, 2].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 0].Text == "O")
                    || (tickTackButton[1, 3].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 1].Text == "O"))
                {
                    int P = 2;
                    PlayerWins(P); ;
                }
                else if (B == 16)
                {
                    int P = 0;
                    PlayerWins(P);

                }
            }
            if (gridSizeComboBox.SelectedIndex == 2)
            {
                B++;
                //5x5 Col
                if ((tickTackButton[0, 0].Text == "X" && tickTackButton[0, 1].Text == "X" && tickTackButton[0, 2].Text == "X" && tickTackButton[0, 3].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[0, 2].Text == "X" && tickTackButton[0, 3].Text == "X" && tickTackButton[0, 4].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[1, 3].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[1, 4].Text == "X")
                    || (tickTackButton[2, 0].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[2, 3].Text == "X")
                    || (tickTackButton[2, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[2, 4].Text == "X")
                    || (tickTackButton[3, 0].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[3, 3].Text == "X")
                    || (tickTackButton[3, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[3, 4].Text == "X")
                    || (tickTackButton[4, 0].Text == "X" && tickTackButton[4, 1].Text == "X" && tickTackButton[4, 2].Text == "X" && tickTackButton[4, 3].Text == "X")
                    || (tickTackButton[4, 1].Text == "X" && tickTackButton[4, 2].Text == "X" && tickTackButton[4, 3].Text == "X" && tickTackButton[4, 4].Text == "X")
                    // Row
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 0].Text == "X" && tickTackButton[2, 0].Text == "X" && tickTackButton[3, 0].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[2, 0].Text == "X" && tickTackButton[3, 0].Text == "X" && tickTackButton[4, 0].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 1].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[4, 1].Text == "X")
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 2].Text == "X")
                    || (tickTackButton[1, 2].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 2].Text == "X")
                    || (tickTackButton[0, 3].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 3].Text == "X")
                    || (tickTackButton[1, 3].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 3].Text == "X")
                    || (tickTackButton[0, 4].Text == "X" && tickTackButton[1, 4].Text == "X" && tickTackButton[2, 4].Text == "X" && tickTackButton[3, 4].Text == "X")
                    || (tickTackButton[1, 4].Text == "X" && tickTackButton[2, 4].Text == "X" && tickTackButton[3, 4].Text == "X" && tickTackButton[4, 4].Text == "X")
                    // Diag
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 4].Text == "X")
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 3].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 4].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 3].Text == "X")

                    || (tickTackButton[0, 3].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 0].Text == "X")
                    || (tickTackButton[0, 4].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 1].Text == "X")
                    || (tickTackButton[1, 3].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[4, 0].Text == "X")
                    || (tickTackButton[1, 4].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 1].Text == "X"))
                {
                    int P = 1;
                    PlayerWins(P);
                }
                // Col
                if ((tickTackButton[0, 0].Text == "O" && tickTackButton[0, 1].Text == "O" && tickTackButton[0, 2].Text == "O" && tickTackButton[0, 3].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[0, 2].Text == "O" && tickTackButton[0, 3].Text == "O" && tickTackButton[0, 4].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[1, 3].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[1, 4].Text == "O")
                    || (tickTackButton[2, 0].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[2, 3].Text == "O")
                    || (tickTackButton[2, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[2, 4].Text == "O")
                    || (tickTackButton[3, 0].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[3, 3].Text == "O")
                    || (tickTackButton[3, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[3, 4].Text == "O")
                    || (tickTackButton[4, 0].Text == "O" && tickTackButton[4, 1].Text == "O" && tickTackButton[4, 2].Text == "O" && tickTackButton[4, 3].Text == "O")
                    || (tickTackButton[4, 1].Text == "O" && tickTackButton[4, 2].Text == "O" && tickTackButton[4, 3].Text == "O" && tickTackButton[4, 4].Text == "O")
                    // Row
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 0].Text == "O" && tickTackButton[2, 0].Text == "O" && tickTackButton[3, 0].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[2, 0].Text == "O" && tickTackButton[3, 0].Text == "O" && tickTackButton[4, 0].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 1].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[4, 1].Text == "O")
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 2].Text == "O")
                    || (tickTackButton[1, 2].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 2].Text == "O")
                    || (tickTackButton[0, 3].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 3].Text == "O")
                    || (tickTackButton[1, 3].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 3].Text == "O")
                    || (tickTackButton[0, 4].Text == "O" && tickTackButton[1, 4].Text == "O" && tickTackButton[2, 4].Text == "O" && tickTackButton[3, 4].Text == "O")
                    || (tickTackButton[1, 4].Text == "O" && tickTackButton[2, 4].Text == "O" && tickTackButton[3, 4].Text == "O" && tickTackButton[4, 4].Text == "O")
                    // Diag
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 4].Text == "O")
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 3].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 4].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 3].Text == "O")

                    || (tickTackButton[0, 3].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 0].Text == "O")
                    || (tickTackButton[0, 4].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 1].Text == "O")
                    || (tickTackButton[1, 3].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[4, 0].Text == "O")
                    || (tickTackButton[1, 4].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 1].Text == "O"))
                {
                    int P = 2;
                    PlayerWins(P);
                }
                else if (B == 25)
                {
                    int P = 0;
                    PlayerWins(P);

                }

            }
            if (gridSizeComboBox.SelectedIndex == 3)
            {
                B++;
                //6x6 Col
                if ((tickTackButton[0, 0].Text == "X" && tickTackButton[0, 1].Text == "X" && tickTackButton[0, 2].Text == "X" && tickTackButton[0, 3].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[0, 2].Text == "X" && tickTackButton[0, 3].Text == "X" && tickTackButton[0, 4].Text == "X")
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[0, 3].Text == "X" && tickTackButton[0, 4].Text == "X" && tickTackButton[0, 5].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[1, 3].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[1, 4].Text == "X")
                    || (tickTackButton[1, 2].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[1, 4].Text == "X" && tickTackButton[1, 5].Text == "X")
                    || (tickTackButton[2, 0].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[2, 3].Text == "X")
                    || (tickTackButton[2, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[2, 4].Text == "X")
                    || (tickTackButton[2, 2].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[2, 4].Text == "X" && tickTackButton[2, 5].Text == "X")
                    || (tickTackButton[3, 0].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[3, 3].Text == "X")
                    || (tickTackButton[3, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[3, 4].Text == "X")
                    || (tickTackButton[3, 2].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[3, 4].Text == "X" && tickTackButton[3, 5].Text == "X")
                    || (tickTackButton[4, 0].Text == "X" && tickTackButton[4, 1].Text == "X" && tickTackButton[4, 2].Text == "X" && tickTackButton[4, 3].Text == "X")
                    || (tickTackButton[4, 1].Text == "X" && tickTackButton[4, 2].Text == "X" && tickTackButton[4, 3].Text == "X" && tickTackButton[4, 4].Text == "X")
                    || (tickTackButton[4, 2].Text == "X" && tickTackButton[4, 3].Text == "X" && tickTackButton[4, 4].Text == "X" && tickTackButton[4, 5].Text == "X")
                    || (tickTackButton[5, 0].Text == "X" && tickTackButton[5, 1].Text == "X" && tickTackButton[5, 2].Text == "X" && tickTackButton[5, 3].Text == "X")
                    || (tickTackButton[5, 1].Text == "X" && tickTackButton[5, 2].Text == "X" && tickTackButton[5, 3].Text == "X" && tickTackButton[5, 4].Text == "X")
                    || (tickTackButton[5, 2].Text == "X" && tickTackButton[5, 3].Text == "X" && tickTackButton[5, 4].Text == "X" && tickTackButton[5, 5].Text == "X")
                    // Row
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 0].Text == "X" && tickTackButton[2, 0].Text == "X" && tickTackButton[3, 0].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[2, 0].Text == "X" && tickTackButton[3, 0].Text == "X" && tickTackButton[4, 0].Text == "X")
                    || (tickTackButton[2, 0].Text == "X" && tickTackButton[3, 0].Text == "X" && tickTackButton[4, 0].Text == "X" && tickTackButton[5, 0].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 1].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[4, 1].Text == "X")
                    || (tickTackButton[2, 1].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[4, 1].Text == "X" && tickTackButton[5, 1].Text == "X")
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 2].Text == "X")
                    || (tickTackButton[1, 2].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 2].Text == "X")
                    || (tickTackButton[2, 2].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 2].Text == "X" && tickTackButton[5, 2].Text == "X")
                    || (tickTackButton[0, 3].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 3].Text == "X")
                    || (tickTackButton[1, 3].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 3].Text == "X")
                    || (tickTackButton[2, 3].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 3].Text == "X" && tickTackButton[5, 3].Text == "X")
                    || (tickTackButton[0, 4].Text == "X" && tickTackButton[1, 4].Text == "X" && tickTackButton[2, 4].Text == "X" && tickTackButton[3, 4].Text == "X")
                    || (tickTackButton[1, 4].Text == "X" && tickTackButton[2, 4].Text == "X" && tickTackButton[3, 4].Text == "X" && tickTackButton[4, 4].Text == "X")
                    || (tickTackButton[2, 4].Text == "X" && tickTackButton[3, 4].Text == "X" && tickTackButton[4, 4].Text == "X" && tickTackButton[5, 4].Text == "X")
                    || (tickTackButton[0, 5].Text == "X" && tickTackButton[1, 5].Text == "X" && tickTackButton[2, 5].Text == "X" && tickTackButton[3, 5].Text == "X")
                    || (tickTackButton[1, 5].Text == "X" && tickTackButton[2, 5].Text == "X" && tickTackButton[3, 5].Text == "X" && tickTackButton[4, 5].Text == "X")
                    || (tickTackButton[2, 5].Text == "X" && tickTackButton[3, 5].Text == "X" && tickTackButton[4, 5].Text == "X" && tickTackButton[5, 5].Text == "X")
                    // Diag
                    || (tickTackButton[0, 2].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[2, 4].Text == "X" && tickTackButton[3, 5].Text == "X")
                    || (tickTackButton[0, 1].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 4].Text == "X")
                    || (tickTackButton[1, 2].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 4].Text == "X" && tickTackButton[4, 5].Text == "X")
                    || (tickTackButton[0, 0].Text == "X" && tickTackButton[1, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 3].Text == "X")
                    || (tickTackButton[1, 1].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 4].Text == "X")
                    || (tickTackButton[2, 2].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 4].Text == "X" && tickTackButton[5, 5].Text == "X")
                    || (tickTackButton[1, 0].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 3].Text == "X")
                    || (tickTackButton[2, 1].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 3].Text == "X" && tickTackButton[5, 4].Text == "X")
                    || (tickTackButton[2, 0].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[4, 2].Text == "X" && tickTackButton[5, 3].Text == "X")

                    || (tickTackButton[0, 3].Text == "X" && tickTackButton[1, 2].Text == "X" && tickTackButton[2, 1].Text == "X" && tickTackButton[3, 0].Text == "X")
                    || (tickTackButton[0, 4].Text == "X" && tickTackButton[1, 3].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 1].Text == "X")
                    || (tickTackButton[1, 3].Text == "X" && tickTackButton[2, 2].Text == "X" && tickTackButton[3, 1].Text == "X" && tickTackButton[4, 0].Text == "X")
                    || (tickTackButton[0, 5].Text == "X" && tickTackButton[1, 4].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 2].Text == "X")
                    || (tickTackButton[1, 4].Text == "X" && tickTackButton[2, 3].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 1].Text == "X")
                    || (tickTackButton[2, 3].Text == "X" && tickTackButton[3, 2].Text == "X" && tickTackButton[4, 1].Text == "X" && tickTackButton[5, 0].Text == "X")
                    || (tickTackButton[1, 5].Text == "X" && tickTackButton[2, 4].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 2].Text == "X")
                    || (tickTackButton[2, 4].Text == "X" && tickTackButton[3, 3].Text == "X" && tickTackButton[4, 2].Text == "X" && tickTackButton[5, 1].Text == "X")
                    || (tickTackButton[2, 5].Text == "X" && tickTackButton[3, 4].Text == "X" && tickTackButton[4, 3].Text == "X" && tickTackButton[5, 2].Text == "X"))
                {
                    int P = 1;
                    PlayerWins(P);
                }
                if ((tickTackButton[0, 0].Text == "O" && tickTackButton[0, 1].Text == "O" && tickTackButton[0, 2].Text == "O" && tickTackButton[0, 3].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[0, 2].Text == "O" && tickTackButton[0, 3].Text == "O" && tickTackButton[0, 4].Text == "O")
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[0, 3].Text == "O" && tickTackButton[0, 4].Text == "O" && tickTackButton[0, 5].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[1, 3].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[1, 4].Text == "O")
                    || (tickTackButton[1, 2].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[1, 4].Text == "O" && tickTackButton[1, 5].Text == "O")
                    || (tickTackButton[2, 0].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[2, 3].Text == "O")
                    || (tickTackButton[2, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[2, 4].Text == "O")
                    || (tickTackButton[2, 2].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[2, 4].Text == "O" && tickTackButton[2, 5].Text == "O")
                    || (tickTackButton[3, 0].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[3, 3].Text == "O")
                    || (tickTackButton[3, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[3, 4].Text == "O")
                    || (tickTackButton[3, 2].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[3, 4].Text == "O" && tickTackButton[3, 5].Text == "O")
                    || (tickTackButton[4, 0].Text == "O" && tickTackButton[4, 1].Text == "O" && tickTackButton[4, 2].Text == "O" && tickTackButton[4, 3].Text == "O")
                    || (tickTackButton[4, 1].Text == "O" && tickTackButton[4, 2].Text == "O" && tickTackButton[4, 3].Text == "O" && tickTackButton[4, 4].Text == "O")
                    || (tickTackButton[4, 2].Text == "O" && tickTackButton[4, 3].Text == "O" && tickTackButton[4, 4].Text == "O" && tickTackButton[4, 5].Text == "O")
                    || (tickTackButton[5, 0].Text == "O" && tickTackButton[5, 1].Text == "O" && tickTackButton[5, 2].Text == "O" && tickTackButton[5, 3].Text == "O")
                    || (tickTackButton[5, 1].Text == "O" && tickTackButton[5, 2].Text == "O" && tickTackButton[5, 3].Text == "O" && tickTackButton[5, 4].Text == "O")
                    || (tickTackButton[5, 2].Text == "O" && tickTackButton[5, 3].Text == "O" && tickTackButton[5, 4].Text == "O" && tickTackButton[5, 5].Text == "O")
                    // Row
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 0].Text == "O" && tickTackButton[2, 0].Text == "O" && tickTackButton[3, 0].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[2, 0].Text == "O" && tickTackButton[3, 0].Text == "O" && tickTackButton[4, 0].Text == "O")
                    || (tickTackButton[2, 0].Text == "O" && tickTackButton[3, 0].Text == "O" && tickTackButton[4, 0].Text == "O" && tickTackButton[5, 0].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 1].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[4, 1].Text == "O")
                    || (tickTackButton[2, 1].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[4, 1].Text == "O" && tickTackButton[5, 1].Text == "O")
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 2].Text == "O")
                    || (tickTackButton[1, 2].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 2].Text == "O")
                    || (tickTackButton[2, 2].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 2].Text == "O" && tickTackButton[5, 2].Text == "O")
                    || (tickTackButton[0, 3].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 3].Text == "O")
                    || (tickTackButton[1, 3].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 3].Text == "O")
                    || (tickTackButton[2, 3].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 3].Text == "O" && tickTackButton[5, 3].Text == "O")
                    || (tickTackButton[0, 4].Text == "O" && tickTackButton[1, 4].Text == "O" && tickTackButton[2, 4].Text == "O" && tickTackButton[3, 4].Text == "O")
                    || (tickTackButton[1, 4].Text == "O" && tickTackButton[2, 4].Text == "O" && tickTackButton[3, 4].Text == "O" && tickTackButton[4, 4].Text == "O")
                    || (tickTackButton[2, 4].Text == "O" && tickTackButton[3, 4].Text == "O" && tickTackButton[4, 4].Text == "O" && tickTackButton[5, 4].Text == "O")
                    || (tickTackButton[0, 5].Text == "O" && tickTackButton[1, 5].Text == "O" && tickTackButton[2, 5].Text == "O" && tickTackButton[3, 5].Text == "O")
                    || (tickTackButton[1, 5].Text == "O" && tickTackButton[2, 5].Text == "O" && tickTackButton[3, 5].Text == "O" && tickTackButton[4, 5].Text == "O")
                    || (tickTackButton[2, 5].Text == "O" && tickTackButton[3, 5].Text == "O" && tickTackButton[4, 5].Text == "O" && tickTackButton[5, 5].Text == "O")
                    // Diag
                    || (tickTackButton[0, 2].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[2, 4].Text == "O" && tickTackButton[3, 5].Text == "O")
                    || (tickTackButton[0, 1].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 4].Text == "O")
                    || (tickTackButton[1, 2].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 4].Text == "O" && tickTackButton[4, 5].Text == "O")
                    || (tickTackButton[0, 0].Text == "O" && tickTackButton[1, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 3].Text == "O")
                    || (tickTackButton[1, 1].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 4].Text == "O")
                    || (tickTackButton[2, 2].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 4].Text == "O" && tickTackButton[5, 5].Text == "O")
                    || (tickTackButton[1, 0].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 3].Text == "O")
                    || (tickTackButton[2, 1].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 3].Text == "O" && tickTackButton[5, 4].Text == "O")
                    || (tickTackButton[2, 0].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[4, 2].Text == "O" && tickTackButton[5, 3].Text == "O")

                    || (tickTackButton[0, 3].Text == "O" && tickTackButton[1, 2].Text == "O" && tickTackButton[2, 1].Text == "O" && tickTackButton[3, 0].Text == "O")
                    || (tickTackButton[0, 4].Text == "O" && tickTackButton[1, 3].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 1].Text == "O")
                    || (tickTackButton[1, 3].Text == "O" && tickTackButton[2, 2].Text == "O" && tickTackButton[3, 1].Text == "O" && tickTackButton[4, 0].Text == "O")
                    || (tickTackButton[0, 5].Text == "O" && tickTackButton[1, 4].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 2].Text == "O")
                    || (tickTackButton[1, 4].Text == "O" && tickTackButton[2, 3].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 1].Text == "O")
                    || (tickTackButton[2, 3].Text == "O" && tickTackButton[3, 2].Text == "O" && tickTackButton[4, 1].Text == "O" && tickTackButton[5, 0].Text == "O")
                    || (tickTackButton[1, 5].Text == "O" && tickTackButton[2, 4].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 2].Text == "O")
                    || (tickTackButton[2, 4].Text == "O" && tickTackButton[3, 3].Text == "O" && tickTackButton[4, 2].Text == "O" && tickTackButton[5, 1].Text == "O")
                    || (tickTackButton[2, 5].Text == "O" && tickTackButton[3, 4].Text == "O" && tickTackButton[4, 3].Text == "O" && tickTackButton[5, 2].Text == "O"))
                {
                    int P = 2;
                    PlayerWins(P);
                }
                else if (B == 36)
                {
                    int P = 0;
                    PlayerWins(P);

                }
            }
        }
User avatar
Neo
Site Admin
Site Admin
Posts: 2642
Joined: Wed Jul 15, 2009 2:07 am
Location: Colombo

Re: Another Tick Tack Toe Question!?

Post by Neo » Mon Dec 27, 2010 9:21 am

I had to spend about an hour to optimise 300+ lines to 60 lines for you ;)
You can easily expand the code to support any NxN (may be 10x10) by adjusting arr_comb_X, arr_comb_O and arr_N. If you can improve your knowledge in more Data Structures and Algorithms, you will be able to think as this on computing problems.

Define these global variables (Before public Form1()).

Code: Select all

        // Global vars
        string[] arr_comb_X = { "XXX", "XXXX", "XXXXX", "XXXXXX" };
        string[] arr_comb_O = { "OOO", "OOOO", "OOOOO", "OOOOOO" };
        int[] arr_N = { 3, 4, 5, 6 };
This is the code for the function.

Code: Select all

        private void checkForWinner()
        {
            // Local vars
            int x, y, P, N, B_check;
            string str1, str2;
            string comb_X, comb_O;

            comb_X = arr_comb_X[gridSizeComboBox.SelectedIndex];
            comb_O = arr_comb_O[gridSizeComboBox.SelectedIndex];
            N = arr_N[gridSizeComboBox.SelectedIndex];
            B_check = N * N;
            B++;

            // row and col check
            P = 0;
            for (y = 0; y < N; y++){
                str1 = "";
                str2 = "";
	            for (x = 0; x < N; x++){
                    // row
                    str1 += tickTackButton[y, x].Text;
                    // col
                    str2 += tickTackButton[x, y].Text;
	            }

                if (str1 == comb_X || str2 == comb_X)
                {
		            P = 1;
		            PlayerWins(P);
		            break;
	            }
                else if (str1 == comb_O || str2 == comb_O)
                {
		            P = 2;
		            PlayerWins(P);
		            break;
	            }
            }

            // diag check
            if (P == 0){
	            str1 = "";
	            str2 = "";
	            for (x = 0; x < N; x++){
                    str1 += tickTackButton[x, x].Text; // forward
                    str2 += tickTackButton[x, N - 1 - x].Text; // backward
	            }

	            if (str1 == comb_X || str2 == comb_X){
		            P = 1;
		            PlayerWins(P);
	            }
	            else if (str1 == comb_O || str2 == comb_O){
		            P = 2;
		            PlayerWins(P);
	            }
            }

            // Passed number of chances
            if (B == B_check){
	            P = 0;
	            PlayerWins(P);	
            }
        }
Let me know how it goes.
User avatar
Trebor29
Lieutenant
Lieutenant
Posts: 75
Joined: Thu Apr 29, 2010 12:34 am

Re: Another Tick Tack Toe Question!?

Post by Trebor29 » Tue Dec 28, 2010 12:39 am

Hi Neo..... hope you've had a good Christmas.

WoW, didnt expect you to spend an hour on it... Thank you ;)

It looks great, you've zapped it right down :ugeek: . I will let you know how it goes, wont do it now as tooo tired from all this Christmas eating n drinking! :D
Just one question; what is 'N' representing?

Thanks again Neo, all the best for 2011 :P

Trebor
User avatar
Neo
Site Admin
Site Admin
Posts: 2642
Joined: Wed Jul 15, 2009 2:07 am
Location: Colombo

Re: Another Tick Tack Toe Question!?

Post by Neo » Tue Dec 28, 2010 2:38 am

Just one question; what is 'N' representing?
N is set from array defined by int[] arr_N = { 3, 4, 5, 6 }; based on user selection on number of blocks per side in the board.
User avatar
Trebor29
Lieutenant
Lieutenant
Posts: 75
Joined: Thu Apr 29, 2010 12:34 am

Re: Another Tick Tack Toe Question!?

Post by Trebor29 » Thu Dec 30, 2010 11:50 pm

Oh yes.. I see it now, in the Global vars! :oops:

Thanks Neo.
User avatar
Trebor29
Lieutenant
Lieutenant
Posts: 75
Joined: Thu Apr 29, 2010 12:34 am

Re: Another Tick Tack Toe Question!?

Post by Trebor29 » Fri Dec 31, 2010 2:59 am

Hi Neo,
I have implemented that into my code and it works great.

The only thing I would like to change is the winning comb's; for grid sizes 3, 4, 5 and 6, the number of (X or O) in a line for a win is 3, 3, 4 and 4 consecutivly. (I think thats the right word)

I have changed arr_comb_X , arr_comb_O and arr_N so that it loops the correct number of times for a win. If possible I would like to change B_check = N * N as the value of N is no longer correct now I have changed arr_N. While Debuging I can see that gridSize has the correct value for B_check and was hoping there might be a way to use (= griSize * gridSize) as I think this would give the correct result. However, gridSize is determined in the playGameButton_Click() and can not be seen in the checkForWinner(). Is there a way to pass the value over?

The only alternative I can see would be to change the value of N, so that it goes through the loop the correct number of times. i.e. 3, 3, 4, 4.

I have written notes next to the areas mentioned above in CAPS. Ive sent all the code again, hope thats OK. :roll:

Code: Select all

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Media;

namespace TickTackToeAssignment
{
    public partial class GamePlayForm : Form
    {
        // Global vars
        string[] arr_comb_X = { "XXX", "XXX", "XXXX", "XXXX" };
        string[] arr_comb_O = { "OOO", "OOO", "OOOO", "OOOO" };  // THESE ARE THE CORRECT WINS: 3,3,4,4
        int[] arr_N = { 3, 3, 4, 4 };

        int P1Score, P2Score, B, draw = 0;
        Button[,] tickTackButton;
        bool buttonChanged;

        public GamePlayForm()
        {
            InitializeComponent();
            
        }

        private void exitGameButton_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Do you really want to leave when we're having so much fun?", "Exit Game", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
            {
                if (MessageBox.Show("yOUr NOt gOinG AnyWHeRe!!!", "Escape", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
                {
                    Application.Exit();
                }
            }
        }

        private void mainMenuButton_Click(object sender, EventArgs e)
        {
            Form mainMenu = new WelcomeScreenForm();
            mainMenu.Show();
            this.Hide();
        }

        private void GamePlayForm_Load(object sender, EventArgs e)
        {
            SoundPlayer welcome = new SoundPlayer();
            welcome.SoundLocation = Application.StartupPath + "\\..\\..\\welcome.wav";
            welcome.Play();

            gridSizeComboBox.SelectedIndex = 0;
            playerTextBox.ReadOnly = true;

            P1ScoreLabel.Text = P1Score.ToString();
            P2ScoreLabel.Text = P2Score.ToString();
            drawnScoreLabel.Text = draw.ToString();
        }

        private void gridSizeComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (gridSizeComboBox.SelectedIndex == 0)
            {
                gridSizeLabel.Text = ("3 X");
            }
            if (gridSizeComboBox.SelectedIndex == 1)
            {
                gridSizeLabel.Text = ("4 X");
            }
            if (gridSizeComboBox.SelectedIndex == 2)
            {
                gridSizeLabel.Text = ("5 X");
            }
            if (gridSizeComboBox.SelectedIndex == 3)
            {
                gridSizeLabel.Text = ("6 X");
            }
        }

        private void playGameButton_Click(object sender, EventArgs e)
        {
            playerTextBox.Text = "PLAYER 1";
            groupBoxButtons.Controls.Clear();
            int gridSize = int.Parse(gridSizeComboBox.Text); // GRID SIZE !!!

            GamePlayForm.ActiveForm.Size = new System.Drawing.Size((gridSizeComboBox.SelectedIndex * 88) + 540, (gridSizeComboBox.SelectedIndex * 88) + 420);
            groupBoxButtons.Size = new System.Drawing.Size((gridSizeComboBox.SelectedIndex * 88) + 400, (gridSizeComboBox.SelectedIndex * 88) + 320);

            tickTackButton = new Button[gridSize, gridSize];

            for (int i = 0; i < gridSize; i++)
            {
                for (int x = 0; x < gridSize; x++)
                {
                    tickTackButton[x, i] = new Button();
                    tickTackButton[x, i].Name = "tickTackButton" + x + ", " + i;
                    tickTackButton[x, i].Width = 75;
                    tickTackButton[x, i].Height = 75;
                    tickTackButton[x, i].Left = tickTackButton[x, i].Width + (x * 88);
                    tickTackButton[x, i].Top = tickTackButton[x, i].Top + tickTackButton[x, i].Top + 35 + (i * 88);
                    tickTackButton[x, i].Text = " ";
                    tickTackButton[x, i].BackColor = Color.Purple;
                    
                    groupBoxButtons.Controls.Add(tickTackButton[x, i]);
                    tickTackButton[x, i].Click += new EventHandler(Button_Click);

                    buttonChanged = false;
                }
            }
        }

        private void Button_Click(object sender, EventArgs e)
        {
            SoundPlayer buttonSound = new SoundPlayer();
            buttonSound.SoundLocation = Application.StartupPath + "\\..\\..\\buttonSound.wav";
            buttonSound.Play();

            Button clickedButton = (Button)sender;

            if (buttonChanged == false)
            {
                buttonChanged = true;
                clickedButton.Text = "X";
                clickedButton.Font = new System.Drawing.Font("chiller", 42, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
                clickedButton.Enabled = false;
                playerTextBox.Text = "PLAYER 2";
            }
            else
            {
                buttonChanged = false;
                clickedButton.Text = "O";
                clickedButton.Font = new System.Drawing.Font("chiller", 42, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
                clickedButton.Enabled = false;
                playerTextBox.Text = "PLAYER 1";
            }
            checkForWinner();

        }

        #region tickTackToe Game Results Generator

        private void checkForWinner()
        {   
                // Local vars
                int x, y, P, N, B_check;
                string str1, str2;
                string comb_X, comb_O;

                comb_X = arr_comb_X[gridSizeComboBox.SelectedIndex];
                comb_O = arr_comb_O[gridSizeComboBox.SelectedIndex];
                N = arr_N[gridSizeComboBox.SelectedIndex];
                B_check = N * N;  // IS THERE A WAY TO MAKE THIS gridSize * gridSize ???
                B++;

                // row and col check
                P = 0;
                for (y = 0; y < N; y++){
                    str1 = "";
                    str2 = "";
                   for (x = 0; x < N; x++){
                        // row
                        str1 += tickTackButton[y, x].Text;
                        // col
                        str2 += tickTackButton[x, y].Text;
                   }

                    if (str1 == comb_X || str2 == comb_X)
                    {
                      P = 1;
                      PlayerWins(P);
                      break;
                   }
                    else if (str1 == comb_O || str2 == comb_O)
                    {
                      P = 2;
                      PlayerWins(P);
                      break;
                   }
                }

                // diag check
                if (P == 0){
                   str1 = "";
                   str2 = "";
                   for (x = 0; x < N; x++){
                        str1 += tickTackButton[x, x].Text; // forward
                        str2 += tickTackButton[x, N - 1 - x].Text; // backward
                   }

                   if (str1 == comb_X || str2 == comb_X){
                      P = 1;
                      PlayerWins(P);
                   }
                   else if (str1 == comb_O || str2 == comb_O){
                      P = 2;
                      PlayerWins(P);
                   }
                }

                // Passed number of chances
                if (B == B_check){
                   P = 0;
                   PlayerWins(P);   
                }
            }

        #endregion

        private void PlayerWins(int p)
        {
            if (p == 1)
            {
                SoundPlayer P1Win = new SoundPlayer();
                P1Win.SoundLocation = Application.StartupPath + "\\..\\..\\P1Win.wav";
                P1Win.Play();
                playerTextBox.Text = "Player1 wins!";
                MessageBox.Show("PLAYER 1 IS THE WINNER", "RESULT", MessageBoxButtons.OK, MessageBoxIcon.Information);
                P1Score++;
                P1ScoreLabel.Text = P1Score.ToString();

                Reset();
            }
            if (p == 2)
            {
                SoundPlayer P2Win = new SoundPlayer();
                P2Win.SoundLocation = Application.StartupPath + "\\..\\..\\P2Win.wav";
                P2Win.Play();
                playerTextBox.Text = "Player2 wins!";
                MessageBox.Show("PLAYER 2 IS THE WINNER", "RESULT", MessageBoxButtons.OK, MessageBoxIcon.Information);
                P2Score++;
                P2ScoreLabel.Text = P2Score.ToString();

                Reset();
            }
            else if ((p != 1 && p != 2 && B == 9) || (p != 1 && p != 2 && B == 16) || (p != 1 && p != 2 && B == 25) || (p != 1 && p != 2 && B == 36))
            {
                SoundPlayer drawSound = new SoundPlayer();
                drawSound.SoundLocation = Application.StartupPath + "\\..\\..\\draw.wav";
                drawSound.Play();

                playerTextBox.Text = "Draw!";
                MessageBox.Show("IT'S A DRAW!", "RESULT", MessageBoxButtons.OK, MessageBoxIcon.Information);
                draw++;
                drawnScoreLabel.Text = draw.ToString();
                Reset();
            }
        }

        private void newGameButton_Click(object sender, EventArgs e)
        {
            P1ScoreLabel.Text = "0";
            P2ScoreLabel.Text = "0";
            drawnScoreLabel.Text = "0";
            playerTextBox.Clear();
            gridSizeLabel.Text = "3 X";
            gridSizeComboBox.SelectedIndex = 0;
            groupBoxButtons.Controls.Clear();
            groupBoxButtons.Size = new System.Drawing.Size(400, 320);
            GamePlayForm.ActiveForm.Size = new System.Drawing.Size(540, 420);
        }

        public void Reset()
        {
            groupBoxButtons.Controls.Clear();
            B = 0;
        }
    }
}

User avatar
Trebor29
Lieutenant
Lieutenant
Posts: 75
Joined: Thu Apr 29, 2010 12:34 am

Re: Another Tick Tack Toe Question!?

Post by Trebor29 » Fri Dec 31, 2010 3:05 am

Ive sent the code again with some irrelevant areas minimised, incase all the code is too confusing:

Code: Select all

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Media;

namespace TickTackToeAssignment
{
    public partial class GamePlayForm : Form
    {
        // Global vars
        string[] arr_comb_X = { "XXX", "XXX", "XXXX", "XXXX" };
        string[] arr_comb_O = { "OOO", "OOO", "OOOO", "OOOO" };  // THESE ARE THE CORRECT WINS: 3,3,4,4
        int[] arr_N = { 3, 3, 4, 4 };

        int P1Score, P2Score, B, draw = 0;
        Button[,] tickTackButton;
        bool buttonChanged;

        public GamePlayForm()
        {
            InitializeComponent();
            
        }

        private void exitGameButton_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Do you really want to leave when we're having so much fun?", "Exit Game", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
            {
                if (MessageBox.Show("yOUr NOt gOinG AnyWHeRe!!!", "Escape", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
                {
                    Application.Exit();
                }
            }
        }

        private void mainMenuButton_Click(object sender, EventArgs e)
        {
            Form mainMenu = new WelcomeScreenForm();
            mainMenu.Show();
            this.Hide();
        }

        private void GamePlayForm_Load(object sender, EventArgs e)
        {
            SoundPlayer welcome = new SoundPlayer();
            welcome.SoundLocation = Application.StartupPath + "\\..\\..\\welcome.wav";
            welcome.Play();

            gridSizeComboBox.SelectedIndex = 0;
            playerTextBox.ReadOnly = true;

            P1ScoreLabel.Text = P1Score.ToString();
            P2ScoreLabel.Text = P2Score.ToString();
            drawnScoreLabel.Text = draw.ToString();
        }

        private void gridSizeComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (gridSizeComboBox.SelectedIndex == 0)
            {
                gridSizeLabel.Text = ("3 X");
            }
            if (gridSizeComboBox.SelectedIndex == 1)
            {
                gridSizeLabel.Text = ("4 X");
            }
            if (gridSizeComboBox.SelectedIndex == 2)
            {
                gridSizeLabel.Text = ("5 X");
            }
            if (gridSizeComboBox.SelectedIndex == 3)
            {
                gridSizeLabel.Text = ("6 X");
            }
        }

        private void playGameButton_Click(object sender, EventArgs e)
        {
            playerTextBox.Text = "PLAYER 1";
            groupBoxButtons.Controls.Clear();
            int gridSize = int.Parse(gridSizeComboBox.Text); // GRID SIZE !!!

            GamePlayForm.ActiveForm.Size = new System.Drawing.Size((gridSizeComboBox.SelectedIndex * 88) + 540, (gridSizeComboBox.SelectedIndex * 88) + 420);
            groupBoxButtons.Size = new System.Drawing.Size((gridSizeComboBox.SelectedIndex * 88) + 400, (gridSizeComboBox.SelectedIndex * 88) + 320);

            tickTackButton = new Button[gridSize, gridSize];

            for (int i = 0; i < gridSize; i++)
            {
                for (int x = 0; x < gridSize; x++)
                {
                    tickTackButton[x, i] = new Button();
                    tickTackButton[x, i].Name = "tickTackButton" + x + ", " + i;
                    tickTackButton[x, i].Width = 75;
                    tickTackButton[x, i].Height = 75;
                    tickTackButton[x, i].Left = tickTackButton[x, i].Width + (x * 88);
                    tickTackButton[x, i].Top = tickTackButton[x, i].Top + tickTackButton[x, i].Top + 35 + (i * 88);
                    tickTackButton[x, i].Text = " ";
                    tickTackButton[x, i].BackColor = Color.Purple;
                    
                    groupBoxButtons.Controls.Add(tickTackButton[x, i]);
                    tickTackButton[x, i].Click += new EventHandler(Button_Click);

                    buttonChanged = false;
                }
            }
        }

        private void Button_Click(object sender, EventArgs e)
        {
            SoundPlayer buttonSound = new SoundPlayer();
            buttonSound.SoundLocation = Application.StartupPath + "\\..\\..\\buttonSound.wav";
            buttonSound.Play();

            Button clickedButton = (Button)sender;

            if (buttonChanged == false)
            {
                buttonChanged = true;
                clickedButton.Text = "X";
                clickedButton.Font = new System.Drawing.Font("chiller", 42, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
                clickedButton.Enabled = false;
                playerTextBox.Text = "PLAYER 2";
            }
            else
            {
                buttonChanged = false;
                clickedButton.Text = "O";
                clickedButton.Font = new System.Drawing.Font("chiller", 42, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
                clickedButton.Enabled = false;
                playerTextBox.Text = "PLAYER 1";
            }
            checkForWinner();

        }

        #region tickTackToe Game Results Generator

        private void checkForWinner()
        {   
                // Local vars
                int x, y, P, N, B_check;
                string str1, str2;
                string comb_X, comb_O;

                comb_X = arr_comb_X[gridSizeComboBox.SelectedIndex];
                comb_O = arr_comb_O[gridSizeComboBox.SelectedIndex];
                N = arr_N[gridSizeComboBox.SelectedIndex];
                B_check = N * N;  // IS THERE A WAY TO MAKE THIS gridSize * gridSize ???
                B++;

                // row and col check
                P = 0;
                for (y = 0; y < N; y++){
                    str1 = "";
                    str2 = "";
                   for (x = 0; x < N; x++){
                        // row
                        str1 += tickTackButton[y, x].Text;
                        // col
                        str2 += tickTackButton[x, y].Text;
                   }

                    if (str1 == comb_X || str2 == comb_X)
                    {
                      P = 1;
                      PlayerWins(P);
                      break;
                   }
                    else if (str1 == comb_O || str2 == comb_O)
                    {
                      P = 2;
                      PlayerWins(P);
                      break;
                   }
                }

                // diag check
                if (P == 0){
                   str1 = "";
                   str2 = "";
                   for (x = 0; x < N; x++){
                        str1 += tickTackButton[x, x].Text; // forward
                        str2 += tickTackButton[x, N - 1 - x].Text; // backward
                   }

                   if (str1 == comb_X || str2 == comb_X){
                      P = 1;
                      PlayerWins(P);
                   }
                   else if (str1 == comb_O || str2 == comb_O){
                      P = 2;
                      PlayerWins(P);
                   }
                }

                // Passed number of chances
                if (B == B_check){
                   P = 0;
                   PlayerWins(P);   
                }
            }

        #endregion

        private void PlayerWins(int p)
        {
            if (p == 1)
            {
                SoundPlayer P1Win = new SoundPlayer();
                P1Win.SoundLocation = Application.StartupPath + "\\..\\..\\P1Win.wav";
                P1Win.Play();
                playerTextBox.Text = "Player1 wins!";
                MessageBox.Show("PLAYER 1 IS THE WINNER", "RESULT", MessageBoxButtons.OK, MessageBoxIcon.Information);
                P1Score++;
                P1ScoreLabel.Text = P1Score.ToString();

                Reset();
            }
            if (p == 2)
            {
                SoundPlayer P2Win = new SoundPlayer();
                P2Win.SoundLocation = Application.StartupPath + "\\..\\..\\P2Win.wav";
                P2Win.Play();
                playerTextBox.Text = "Player2 wins!";
                MessageBox.Show("PLAYER 2 IS THE WINNER", "RESULT", MessageBoxButtons.OK, MessageBoxIcon.Information);
                P2Score++;
                P2ScoreLabel.Text = P2Score.ToString();

                Reset();
            }
            else if ((p != 1 && p != 2 && B == 9) || (p != 1 && p != 2 && B == 16) || (p != 1 && p != 2 && B == 25) || (p != 1 && p != 2 && B == 36))
            {
                SoundPlayer drawSound = new SoundPlayer();
                drawSound.SoundLocation = Application.StartupPath + "\\..\\..\\draw.wav";
                drawSound.Play();

                playerTextBox.Text = "Draw!";
                MessageBox.Show("IT'S A DRAW!", "RESULT", MessageBoxButtons.OK, MessageBoxIcon.Information);
                draw++;
                drawnScoreLabel.Text = draw.ToString();
                Reset();
            }
        }

        private void newGameButton_Click(object sender, EventArgs e)
        {
            P1ScoreLabel.Text = "0";
            P2ScoreLabel.Text = "0";
            drawnScoreLabel.Text = "0";
            playerTextBox.Clear();
            gridSizeLabel.Text = "3 X";
            gridSizeComboBox.SelectedIndex = 0;
            groupBoxButtons.Controls.Clear();
            groupBoxButtons.Size = new System.Drawing.Size(400, 320);
            GamePlayForm.ActiveForm.Size = new System.Drawing.Size(540, 420);
        }

        public void Reset()
        {
            groupBoxButtons.Controls.Clear();
            B = 0;
        }
    }
}
User avatar
Neo
Site Admin
Site Admin
Posts: 2642
Joined: Wed Jul 15, 2009 2:07 am
Location: Colombo

Re: Another Tick Tack Toe Question!?

Post by Neo » Fri Dec 31, 2010 5:35 am

Find following code in two positions,

Code: Select all

if (str1 == comb_X || str2 == comb_X)
Change to,

Code: Select all

if (str1.IndexOf(comb_X) != -1 || str2.IndexOf(comb_X) != -1)
Find following code in two positions,

Code: Select all

if (str1 == comb_O || str2 == comb_O)
Change to,

Code: Select all

if (str1.IndexOf(comb_O) != -1 || str2.IndexOf(comb_O) != -1)
I think that's all you want to change.
Post Reply

Return to “.Net & Other Programming”