Определение координат для создания фигур

необходимо создать приложение, располагающее 4 вида разных фигур на определенном полотне. Я решил это сделать создав некоторые переменные для хранения информации о оставшемся свободном пространстве на определенной линии. Через туеву хучу if'ов находится свободное пространство для фигуры. Проблема заключается в том, что у меня не получается присвоить новые точки x и y после создания фигуры. Новая фигура создается там же, где и прошлая, что совершенно не подходит для поставленной задачи. Прошу помочь решить эту проблему, если возможно подробнее описать как это осуществить. С вставкой кода я не разобрался, поэтому прилагаю проект целиком.


Ответы (1 шт):

Автор решения: RaidenKudo
public void боковаяСторонаToolStripMenuItem_Click(object sender, EventArgs e)
    {
        if ((xline1 > xbok) && (yline1 > ybok))
        {
            prefigurax = x + 397;
            bok_s.Create(this, x, y, pictureBox1);

            MessageBox.Show("Фигура добавлена");
        }
        else if ((xline1 > xbok) && (yline2 > ybok))
        {
            xline1 = xline1 - xbok;
            yline1 = yline1 - ybok;
            x = prefigurax;
            y = prefiguray;
            prefigurax = prefigurax + xbok;
            bok_s.Create(this, x, y, pictureBox1);

            MessageBox.Show("Фигура добавлена");
        }
        else if ((xline1 > xbok) && (yline3 > ybok))
        {
            x = prefigurax;
            y = prefiguray;
            prefigurax = prefigurax + xbok;
            prefiguray = prefiguray + ybok;
            xline1 = xline1 - xbok;
            yline2 = yline2 - ybok;
            bok_s.Create(this, x, y, pictureBox1);

            MessageBox.Show("Фигура добавлена");
        }
        else if ((xline2 > xbok) && (yline1 > ybok))
        {
            x = prefigurax;
            y = prefiguray;
            prefigurax = prefigurax + xbok;
            x = xtopoint;
            y = y + ybok;
            xline1 = xline1 - xbok;
            yline3 = yline3 - ybok;
            bok_s.Create(this, x, y, pictureBox1);
            
            MessageBox.Show("Фигура добавлена");
        }
        else if (xline2 > xbok && yline2 > ybok)
        {
            x = prefigurax;
            y = prefiguray;
            prefigurax = prefigurax + xbok;
            prefiguray = prefiguray + ybok;
            xline2 = xline2 - xbok;
            yline1 = yline1 - ybok;
            bok_s.Create(this, x, y, pictureBox1);
            
            MessageBox.Show("Фигура добавлена");
        }
        else if (xline2 > xbok && yline3 > ybok)
        {
            x = prefigurax;
            y = prefiguray;
            prefigurax = prefigurax + xbok;
            prefiguray = prefiguray + ybok;
            xline2 = xline2 - xbok;
            yline2 = yline2 - ybok;
            bok_s.Create(this, x, y, pictureBox1);
        }
        else MessageBox.Show("Недостаточно места на листе.", "Ошибка!");

    }

Получилось вставить только кусок отвечающий за поиск свободного места. Еще для понятности переменные:

bok bok_s = new bok();
Dver dver_s = new Dver();
Stol stol_s = new Stol();
Polki polki_s = new Polki();
int x = 14;
int y = 29;
int xtopoint = 14;
int yline1 = 625; // Ha x 312
int yline2 = 625; // Ha x 624
int yline3 = 625; // Ha x 936
int xline1 = 1250; // на y 208
int xline2 = 1250; // Ha y 416
int xbok = 397;
int ybok = 252;
int prefigurax = 0;
int prefiguray = 0;
→ Ссылка