.NET 4.x Рисование по координатам - C#
Формулировка задачи:
Доброго времени суток!
есть двумерный массив, заполненный значениями от 1 до 3 random. и два одномерных массива, хранящие координаты.
значения двумерного массива будут цветом квадрата( с этим разберусь позже).
собственно вопрос: как вместо
писать x[i] и y[j] и связать с set[i,j]?
Листинг программы
- public void skelet()
- {
- //Массивы координат х и у
- Random Rnd = new Random();
- int mx = 10;
- int my = 10;
- int i,j;
- int[] x = new int[mx];
- for (i = 0; i < mx; i++)
- {
- x[i] = 10 * i;
- }
- int[] y = new int[my];
- for (j = 0; j < my; j++)
- {
- y[j] = 10 * j;
- }
- //Двумерный массив
- int[,] set = new int[mx, my];
- for (i = 0; i < mx; i++)
- {
- for (j = 0; j < my; j++)
- {
- set[i, j] = Rnd.Next(1,4);
- }
- }
- }
- private void onPaint(object sender, PaintEventArgs e) // событие
- {
- Graphics g = e.Graphics;
- DrawKub(g, x0, y0);
- }
- int x0 = 100;
- int y0 = 200;
- void DrawKub(Graphics g, int x0, int y0)
- {
- Pen p1 = new Pen(Color.Blue, 1);
- Pen p2 = new Pen(Color.Red, 3);
- g.DrawLine(p1, x0 - 50, y0, x0, y0-50);
- g.DrawLine(p1, x0 - 50, y0 - 50, x0, y0);
- g.DrawRectangle(p1, x0-50, y0-50, 50, 50);
- }
Листинг программы
- int x0 = 100;
- int y0 = 200;
Решение задачи: «.NET 4.x Рисование по координатам»
textual
Листинг программы
- int k;
- Console.ReadKey();
- for (k = 0; k < my - 1; k++)
- {
- for (i = 1; i < mx; i++)
- {
- for (j = 0; j < my; j++)
- {
- if (set[i, j] == 0)
- {
- set[i, j] = set[i - 1, j];
- set[i - 1, j] = 0;
- }
- }
- }
- }
- //Убираются по горизонтали
- for (i = 0; i < mx; i++)
- {
- for (j = 0; j < my - 2; j++)
- {
- if ((set[i, j] != 0) && (set[i, j + 1] != 0) && (set[i, j + 2] != 0))
- {
- if ((set[i, j] == set[i, j + 1]) && (set[i, j] == set[i, j + 2]))
- {
- set[i, j] = 0;
- set[i, j + 1] = 0;
- set[i, j + 2] = 0;
- }
- }
- }
- }
- //Убираются по вертикали
- for (i = 0; i < mx - 2; i++)
- {
- for (j = 0; j < my; j++)
- {
- if ((set[i, j] != 0) && (set[i + 1, j] != 0) && (set[i + 2, j] != 0))
- {
- if ((set[i, j] == set[i + 1, j]) && (set[i, j] == set[i + 2, j]))
- {
- set[i, j] = 0;
- set[i + 1, j] = 0;
- set[i + 2, j] = 0;
- }
- }
- }
- // Убирается вся строка (как в тетрисе)
- for (i = 0; i < mx; i++)
- {
- for (j = 0; j < my; j++)
- {
- if ((set[i, 0] != 0) && (set[i, 2] != 0) && (set[i, 1] != 0) && (set[i, 2] != 0) && (set[i, 3] != 0) && (set[i, 4] != 0) && (set[i, 5] != 0) && (set[i, 6] != 0) && (set[i, 7] != 0) && (set[i, 8] != 0) && (set[i, 9] != 0))
- {
- set[i, 0] = 0;
- set[i, 1] = 0;
- set[i, 2] = 0;
- set[i, 3] = 0;
- set[i, 4] = 0;
- set[i, 5] = 0;
- set[i, 6] = 0;
- set[i, 7] = 0;
- set[i, 8] = 0;
- set[i, 9] = 0;
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д