Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating a Chess Board using Windows Forms

Tags:

winforms

What is the best way to create chess board using Windows Forms?

I am still new to graphics coding in winforms and I am not sure, which control to use for that?

The user should be able to put chess pieces into the board. I am trying to write Chess Diagram Editor.

Thank you

like image 320
user850010 Avatar asked May 23 '26 14:05

user850010


1 Answers

There are a lot of ways. Here's an alternative that gets you started with some WinForms concepts:

(It uses a 2D grid of Panel controls to create a chessboard. To extend it you might change the background picture of each Panel to show chess pieces. The game play is up to you to define.)

    // class member array of Panels to track chessboard tiles
    private Panel[,] _chessBoardPanels;

    // event handler of Form Load... init things here
    private void Form_Load(object sender, EventArgs e)
    {
        const int tileSize = 40;
        const int gridSize = 12;
        var clr1 = Color.DarkGray;
        var clr2 = Color.White;

        // initialize the "chess board"
        _chessBoardPanels = new Panel[gridSize, gridSize];

        // double for loop to handle all rows and columns
        for (var n = 0; n < gridSize; n++)
        {
            for (var m = 0; m < gridSize; m++)
            {
                // create new Panel control which will be one 
                // chess board tile
                var newPanel = new Panel
                {
                    Size = new Size(tileSize, tileSize),
                    Location = new Point(tileSize * n, tileSize * m)
                };

                // add to Form's Controls so that they show up
                Controls.Add(newPanel);

                // add to our 2d array of panels for future use
                _chessBoardPanels[n, m] = newPanel;

                // color the backgrounds
                if (n % 2 == 0)
                    newPanel.BackColor = m % 2 != 0 ? clr1 : clr2; 
                else
                    newPanel.BackColor = m % 2 != 0 ? clr2 : clr1;
            }
        }
    }
like image 69
Paul Sasik Avatar answered May 25 '26 07:05

Paul Sasik



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!