.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;
}
}
}
}