Я пытаюсь создать игру Реверси (вот изображение того, что я пытаюсь сделать:
).
У меня большие трудности со следующей проблемой: я хочу иметь возможность нарисовать красный или синий заполненный круг при щелчке в прямоугольнике. Я, однако, понятия не имею, как это сделать. Было бы лучше использовать массив PictureBox вместо целочисленного массива для создания прямоугольников? Я просто хочу иметь возможность щелкнуть по квадрату и нарисовать красный / синий круг (в зависимости от того, кто его двигает) в центре прямоугольника. Должен ли я превратить поле в UserControl, если это имеет какое-то значение?
После того, как я смог это сделать, я должен проверить, разрешено ли игроку делать определенные движения с кругом, поэтому, возможно, мне следует создать новый класс кругов?
// breedteVeld = width of the field, hoogteVeld = height of the vield, vakOmvang = size of the rectangles
int[] breedteVeld= new int[6];
int[] hoogteVeld = new int[6];
int vakOmvang = 40;
public Reversi()
{
this.Size = new Size(vakOmvang * breedteVeld.Length + vakOmvang * 5, vakOmvang * hoogteVeld.Length + vakOmvang * 5);
this.Text = "Reversi";
Button nieuwSpel = new Button();
nieuwSpel.Text = "nieuw spel";
nieuwSpel.Location = new Point((breedteVeld.Length - breedteVeld.Length / 2) * vakOmvang, 20);
int nieuwSpelXLocatie = nieuwSpel.Location.X;
this.Controls.Add(nieuwSpel);
Button help = new Button();
help.Text = "help";
help.Location = new Point(nieuwSpelXLocatie + 100, 20);
this.Controls.Add(help);
this.Paint += tekenVeld;
}
public void tekenVeld(object o, PaintEventArgs pea)
{
Graphics gr = pea.Graphics;
for (int t = 0; t < breedteVeld.Length; t++)
for (int i = 0; i < hoogteVeld.Length; i++)
gr.DrawRectangle(Pens.Black, 2 * vakOmvang + t * vakOmvang, 2 * vakOmvang + i * vakOmvang, vakOmvang, vakOmvang);
}
}