using System;
using System.Drawing;
using System.Windows.Forms;
public class figura
{
public enum kolory { niebieski , zolty , czerwony , brazowy,
zielony};
public enum figury { L, odw_L, palka, kwadrat, trojkat,
piorun, odw_piorun };
public bool[,] siatka;
public figury jaka;
public Color kolor;
public int kat;
private static Random losuj = new Random();
public figura()
{
kat = 0;
siatka = new bool[4, 4];
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
siatka[i, j] = false;
kolory nowy_kolor =
(kolory)losuj.Next(4);
switch (nowy_kolor)
{
case kolory.niebieski:
kolor = Color.LightBlue; break;
case kolory.zolty:
kolor = Color.LemonChiffon; break;
case kolory.brazowy:
kolor = Color.BurlyWood; break;
case kolory.czerwony:
kolor = Color.Coral; break;
case kolory.zielony:
kolor = Color.YellowGreen; break;
default:
kolor = Color.Black; break;
}
figury nowa_figura = (figury)losuj.Next(6);
switch (nowa_figura)
{
// L
case figury.L:
siatka[0, 0] = siatka[0, 1] = siatka[0, 2] = siatka[1, 2] = true;
jaka = figury.L;
break;
// odwrocone
L
case
figury.odw_L:
siatka[1, 0] = siatka[1, 1] = siatka[1, 2] = siatka[0, 2] = true;
jaka = figury.odw_L;
break;
// palka
case
figury.palka:
siatka[0, 0] = siatka[0, 1] = siatka[0, 2] = siatka[0, 3] = true;
jaka = figury.palka;
break;
// kwadrat
case
figury.kwadrat:
siatka[0, 0] = siatka[1, 0] = siatka[0, 1] = siatka[1, 1] = true;
jaka = figury.kwadrat;
break;
// trojkat
case
figury.trojkat:
siatka[1, 0] = siatka[0, 1] = siatka[1, 1] = siatka[2, 1] = true;
jaka = figury.trojkat;
break;
// piorun
case
figury.piorun:
siatka[0, 0] = siatka[0, 1] = siatka[1, 1] = siatka[1, 2] = true;
jaka = figury.piorun;
break;
// odwrocony
piorun
case
figury.odw_piorun:
siatka[1, 0] = siatka[1, 1] = siatka[0, 1] = siatka[0, 2] = true;
jaka = figury.odw_piorun;
break;
}
}
public figura odwrocona(int fi)
{
if (fi != 0 && fi != 90 && fi != 180
&& fi != 270) return this;
figura nowa = new figura();
nowa.kat = fi;
nowa.kolor = kolor;
nowa.jaka = jaka;
for (int i = 0; i < 4; i++)
for (int j =
0; j < 4; j++)
nowa.siatka[i, j] = false;
switch (jaka)
{
case figury.L:
switch (fi)
{
case 0: nowa.siatka[0, 0] = nowa.siatka[0, 1] = nowa.siatka[0, 2] =
nowa.siatka[1, 2] = true; break;
case 90: nowa.siatka[0, 0] = nowa.siatka[1, 0] = nowa.siatka[2, 0] =
nowa.siatka[0, 1] = true; break;
case 180: nowa.siatka[0, 0] = nowa.siatka[1, 0] = nowa.siatka[1, 1] =
nowa.siatka[1, 2] = true; break;
case 270: nowa.siatka[2, 0] = nowa.siatka[0, 1] = nowa.siatka[1, 1] =
nowa.siatka[2, 1] = true; break;
}
break;
case figury.odw_L:
switch (fi)
{
case 0: nowa.siatka[1, 0] = nowa.siatka[1, 1] = nowa.siatka[1, 2] =
nowa.siatka[0, 2] = true; break;
case 90: nowa.siatka[0, 0] = nowa.siatka[0, 1] = nowa.siatka[1, 1] =
nowa.siatka[2, 1] = true; break;
case 180: nowa.siatka[0, 0] = nowa.siatka[0, 1] = nowa.siatka[0, 2] =
nowa.siatka[1, 0] = true; break;
case 270: nowa.siatka[0, 0] = nowa.siatka[1, 0] = nowa.siatka[2, 0] =
nowa.siatka[2, 1] = true; break;
}
break;
case figury.palka:
switch (fi)
{
case 0:
case 180:
nowa.siatka[0, 0] = nowa.siatka[0, 1] = nowa.siatka[0, 2] = nowa.siatka[0, 3] =
true; break;
case 90:
case 270:
nowa.siatka[0, 0] = nowa.siatka[1, 0] = nowa.siatka[2, 0] = nowa.siatka[3, 0] =
true; break;
}
break;
case figury.kwadrat:
nowa.siatka[0, 0] = nowa.siatka[1, 0] = nowa.siatka[0, 1] = nowa.siatka[1, 1] =
true; break;
case figury.trojkat:
switch (fi)
{
case 0: nowa.siatka[1, 0] = nowa.siatka[0, 1] = nowa.siatka[1, 1] =
nowa.siatka[2, 1] = true; break;
case 90: nowa.siatka[0, 0] = nowa.siatka[0, 1] = nowa.siatka[0, 2] =
nowa.siatka[1, 1] = true; break;
case 180: nowa.siatka[0, 0] = nowa.siatka[1, 0] = nowa.siatka[2, 0] =
nowa.siatka[1, 1] = true; break;
case 270: nowa.siatka[1, 0] = nowa.siatka[1, 1] = nowa.siatka[1, 2] =
nowa.siatka[0, 1] = true; break;
}
break;
case figury.piorun:
switch (fi)
{
case 0:
case 180:
nowa.siatka[0, 0] = nowa.siatka[0, 1] = nowa.siatka[1, 1] = nowa.siatka[1, 2] =
true; break;
case 90:
case 270:
nowa.siatka[1, 0] = nowa.siatka[2, 0] = nowa.siatka[0, 1] = nowa.siatka[1, 1] =
true; break;
}
break;
case figury.odw_piorun:
switch (fi)
{
case 0:
case 180:
nowa.siatka[1, 0] = nowa.siatka[1, 1] = nowa.siatka[0, 1] = nowa.siatka[0, 2] =
true; break;
case 90:
case 270:
nowa.siatka[0, 0] = nowa.siatka[1, 0] = nowa.siatka[1, 1] = nowa.siatka[2, 1] =
true; break;
}
break;
}
return nowa;
}
}