Как создать закрашенный круг при щелчке в прямоугольнике? - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь создать игру Реверси (вот изображение того, что я пытаюсь сделать:

enter image description here).

У меня большие трудности со следующей проблемой: я хочу иметь возможность нарисовать красный или синий заполненный круг при щелчке в прямоугольнике. Я, однако, понятия не имею, как это сделать. Было бы лучше использовать массив 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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...