Computer Science Canada

So, I'm attempting to create a grid on the screen, and to do so, I've implemented a multidimensional array of Rectangles

Author:  PuppetFoam [ Wed May 21, 2014 5:11 pm ]
Post subject:  So, I'm attempting to create a grid on the screen, and to do so, I've implemented a multidimensional array of Rectangles

So, I'm attempting to create a grid on the screen, and to do so, I've implemented a multidimensional array of Rectangles.

When the program starts, I use a for loop to increase the x and y coordinates to form the grid.
public Form1() {
InitializeComponent();

for (int x = 0; x < 12; x++) {
for (int y = 0; y < 12; y++) {
recArray[x, y] = new Rectangle(y * 50, x * 50, 100, 100);
}

Application.DoEvents();
}
}


My issue is trying to figure out when the user has clicked on a rectangle, and furthermore, which rectangle in the array that he/she has clicked on. As I will change the border to red when given the correct rectangle.

I'm using Visual Studio 2008, and here is my code so far.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Quoridor {
public partial class Form1 : Form {
Rectangle rect = new Rectangle();

private Pen pen = Pens.Black;

Rectangle[,] recArray = new Rectangle[12, 12];

public Form1() {
InitializeComponent();

for (int x = 0; x < 12; x++) {
for (int y = 0; y < 12; y++) {
recArray[x, y] = new Rectangle(y * 50, x * 50, 100, 100);
}

Application.DoEvents();
}
}

protected override void OnPaint(PaintEventArgs e) {
base.OnPaint(e);

rect.Location = new Point(2, 2);

rect.Size = new Size(100, 100);

for (int x = 0; x < 12; x++) {
for (int y = 0; y < 12; y++) {
e.Graphics.DrawRectangle(pen, recArray[x, y]);

Application.DoEvents();
}
}
}

private void Form1_Click(object sender, EventArgs e) {
Point cursor = this.PointToClient(Cursor.Position);

Refresh();
}
}
}


I'm making this into a real game, with classes and all. But keep in mind, this is my second month programming, so don't be harsh ^_^


: