public OrientacionPieza NuevaOrientacion() { OrientacionPieza op = OrientacionPieza.Arriba; Random r = new Random(); int x = r.Next(1, 5); switch (x) { case 1: op = OrientacionPieza.Arriba; break; case 2: op = OrientacionPieza.Abajo; break; case 3: op = OrientacionPieza.Derecha; break; case 4: op = OrientacionPieza.Izquierda; break; } return(op); }
public void MoverIzquierda(ref List <Cuadro> PiezaO, Tablero tab, OrientacionPieza op) { bool mover = true; foreach (Cuadro c in PiezaO) { if (c.Estado == false) { foreach (Cuadro t in tab.cuadritos) { if (t.Estado == true) { if ((t.coordenadas.X == PiezaO[2].coordenadas.X - 20 && t.coordenadas.Y == PiezaO[2].coordenadas.Y) || (t.coordenadas.X == PiezaO[0].coordenadas.X - 20 && t.coordenadas.Y == PiezaO[0].coordenadas.Y)) { //c.coordenadas.X -= 20; mover = false; break; } } } if ((PiezaO[2].coordenadas.X == 0)) { mover = false; } } } foreach (Cuadro c in PiezaO) { if (mover) { c.coordenadas.X -= 20; } } }
public void MoverDerecha(ref List <Cuadro> PiezaO, Tablero tab, OrientacionPieza op) { bool mover = true; foreach (Cuadro c in PiezaO) { if (c.Estado == false) { foreach (Cuadro t in tab.cuadritos) { if (t.Estado == true) { if ((t.coordenadas.X == PiezaO[3].coordenadas.X + 20 && t.coordenadas.Y == PiezaO[3].coordenadas.Y) || (t.coordenadas.X == PiezaO[1].coordenadas.X + 20 && t.coordenadas.Y == PiezaO[1].coordenadas.Y)) { //c.coordenadas.X -= 20; mover = false; break; } } } if ((PiezaO[PiezaO.Count - 1].coordenadas.X == 180)) { mover = false; } } } foreach (Cuadro c in PiezaO) { if (mover) { c.coordenadas.X += 20; } } }
public List <Cuadro> Formar(Point co, OrientacionPieza op) { List <Cuadro> PiezaL = new List <Cuadro>(); bool agrega = false; if (op == OrientacionPieza.Arriba) { for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { if (i == 0) { agrega = true; } else if (i == 1) { agrega = false; } if (i == 1 && j == 2) { agrega = true; } if (agrega == true) { PiezaL.Add(new Cuadro(co)); } co.Y += 20; } co.Y -= 60; co.X += 20; } } if (op == OrientacionPieza.Izquierda) { PiezaL.Add(new Cuadro(new Point(co.X - 40, co.Y))); PiezaL.Add(new Cuadro(new Point(co.X - 20, co.Y))); PiezaL.Add(new Cuadro(new Point(co.X, co.Y))); PiezaL.Add(new Cuadro(new Point(co.X, co.Y - 20))); } if (op == OrientacionPieza.Abajo) { PiezaL.Add(new Cuadro(new Point(co.X, co.Y + 20))); PiezaL.Add(new Cuadro(new Point(co.X, co.Y))); PiezaL.Add(new Cuadro(new Point(co.X, co.Y - 20))); PiezaL.Add(new Cuadro(new Point(co.X - 20, co.Y - 20))); } if (op == OrientacionPieza.Derecha) { PiezaL.Add(new Cuadro(new Point(co.X + 40, co.Y))); PiezaL.Add(new Cuadro(new Point(co.X + 20, co.Y))); PiezaL.Add(new Cuadro(new Point(co.X, co.Y))); PiezaL.Add(new Cuadro(new Point(co.X, co.Y + 20))); } return(PiezaL); }
public bool MoverAbajo(ref List <Cuadro> PiezaO, Tablero tab, OrientacionPieza op) { bool verificar = false; foreach (Cuadro c in PiezaO) { if (c.Estado == false) { foreach (Cuadro ta in tab.cuadritos) { if (ta.Estado == true) { if ((ta.coordenadas.X == PiezaO[PiezaO.Count - 1].coordenadas.X && ta.coordenadas.Y - 20 == PiezaO[PiezaO.Count - 1].coordenadas.Y) || (ta.coordenadas.X == PiezaO[PiezaO.Count - 2].coordenadas.X && ta.coordenadas.Y - 20 == PiezaO[PiezaO.Count - 2].coordenadas.Y && ta.coordenadas.Y - 20 == PiezaO[PiezaO.Count - 1].coordenadas.Y)) { foreach (Cuadro c2 in PiezaO) { foreach (Cuadro t in tab.cuadritos) { if (c2.coordenadas.X == t.coordenadas.X && c2.coordenadas.Y == t.coordenadas.Y) { t.Estado = true; t.Brocha4 = c2.Brocha; } } c2.Estado = true; } verificar = true; break; } } } c.coordenadas.Y += 20; if (PiezaO[PiezaO.Count - 1].coordenadas.Y == 380) { foreach (Cuadro c2 in PiezaO) { foreach (Cuadro t in tab.cuadritos) { if (c2.coordenadas.X == t.coordenadas.X && c2.coordenadas.Y == t.coordenadas.Y) { t.Estado = true; t.Brocha4 = c2.Brocha; } } c2.Estado = true; } verificar = true; break; } } } return(verificar); }
public List <Cuadro> Formar(Point co, OrientacionPieza op) { List <Cuadro> PiezaO = new List <Cuadro>(); for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { PiezaO.Add(new Cuadro(co)); co.X += 20; } co.X -= 40; co.Y += 20; } return(PiezaO); }
public List <Cuadro> Formar(Point co, OrientacionPieza op) { List <Cuadro> PiezaI = new List <Cuadro>(); if (op == OrientacionPieza.Arriba) { for (int i = 0; i < 4; i++) { PiezaI.Add(new Cuadro(co)); co.X += 20; } } if (op == OrientacionPieza.Izquierda) { co.Y -= 20; for (int i = 0; i < 4; i++) { PiezaI.Add(new Cuadro(co)); co.Y += 20; } } if (op == OrientacionPieza.Abajo) { co.X -= 20; for (int i = 0; i < 4; i++) { PiezaI.Add(new Cuadro(co)); co.X += 20; } } if (op == OrientacionPieza.Derecha) { co.Y -= 20; for (int i = 0; i < 4; i++) { PiezaI.Add(new Cuadro(co)); co.Y += 20; } } return(PiezaI); }
public List <Cuadro> Rotar(Tablero tab, ref OrientacionPieza op, List <Cuadro> Pieza) { switch (op) { case OrientacionPieza.Arriba: op = OrientacionPieza.Izquierda; break; case OrientacionPieza.Izquierda: op = OrientacionPieza.Abajo; break; case OrientacionPieza.Abajo: op = OrientacionPieza.Derecha; break; case OrientacionPieza.Derecha: op = OrientacionPieza.Arriba; break; } return(Formar(Pieza[1].coordenadas, op)); }
public bool MoverAbajo(ref List <Cuadro> PiezaT, Tablero tab, OrientacionPieza op) { bool verificar = false; if (op == OrientacionPieza.Arriba) { foreach (Cuadro c in PiezaT) { if (c.Estado == false) { foreach (Cuadro ta in tab.cuadritos) { if (ta.Estado == true) { if ((ta.coordenadas.X == PiezaT[3].coordenadas.X && ta.coordenadas.Y - 20 == PiezaT[3].coordenadas.Y) || (ta.coordenadas.X == PiezaT[0].coordenadas.X && ta.coordenadas.Y - 20 == PiezaT[0].coordenadas.Y && ta.coordenadas.Y == PiezaT[3].coordenadas.Y) || (ta.coordenadas.X == PiezaT[2].coordenadas.X && ta.coordenadas.Y - 20 == PiezaT[2].coordenadas.Y && ta.coordenadas.Y - 20 == PiezaT[0].coordenadas.Y && ta.coordenadas.Y == PiezaT[3].coordenadas.Y)) { foreach (Cuadro c2 in PiezaT) { foreach (Cuadro t in tab.cuadritos) { if (c2.coordenadas.X == t.coordenadas.X && c2.coordenadas.Y == t.coordenadas.Y) { t.Estado = true; t.Brocha4 = c2.Brocha6; } } c2.Estado = true; } verificar = true; break; } } } c.coordenadas.Y += 20; if (PiezaT[PiezaT.Count - 1].coordenadas.Y == 380) { foreach (Cuadro c2 in PiezaT) { foreach (Cuadro t in tab.cuadritos) { if (c2.coordenadas.X == t.coordenadas.X && c2.coordenadas.Y == t.coordenadas.Y) { t.Estado = true; t.Brocha4 = c2.Brocha6; } } c2.Estado = true; } verificar = true; break; } } } } if (op == OrientacionPieza.Izquierda) { foreach (Cuadro c in PiezaT) { if (c.Estado == false) { foreach (Cuadro ta in tab.cuadritos) { if (ta.Estado == true) { if ((ta.coordenadas.X == PiezaT[3].coordenadas.X && ta.coordenadas.Y - 20 == PiezaT[3].coordenadas.Y) || (ta.coordenadas.X == PiezaT[0].coordenadas.X && ta.coordenadas.Y - 20 == PiezaT[0].coordenadas.Y && PiezaT[3].coordenadas.Y == ta.coordenadas.Y - 40)) { foreach (Cuadro c2 in PiezaT) { foreach (Cuadro t in tab.cuadritos) { if (c2.coordenadas.X == t.coordenadas.X && c2.coordenadas.Y == t.coordenadas.Y) { t.Estado = true; t.Brocha4 = c2.Brocha6; } } c2.Estado = true; } verificar = true; break; } } } c.coordenadas.Y += 20; if (PiezaT[0].coordenadas.Y == 380 && PiezaT[3].coordenadas.Y == 360) { foreach (Cuadro c2 in PiezaT) { foreach (Cuadro t in tab.cuadritos) { if (c2.coordenadas.X == t.coordenadas.X && c2.coordenadas.Y == t.coordenadas.Y) { t.Estado = true; t.Brocha4 = c2.Brocha6; } } c2.Estado = true; } verificar = true; break; } } } } if (op == OrientacionPieza.Abajo) { foreach (Cuadro c in PiezaT) { if (c.Estado == false) { foreach (Cuadro ta in tab.cuadritos) { if (ta.Estado == true) { if ((ta.coordenadas.X == PiezaT[1].coordenadas.X && ta.coordenadas.Y - 20 == PiezaT[1].coordenadas.Y && ta.coordenadas.Y - 40 == PiezaT[3].coordenadas.Y) || (ta.coordenadas.X == PiezaT[0].coordenadas.X && ta.coordenadas.Y - 20 == PiezaT[0].coordenadas.Y && ta.coordenadas.Y - 40 == PiezaT[3].coordenadas.Y) || (ta.coordenadas.X == PiezaT[2].coordenadas.X && ta.coordenadas.Y - 20 == PiezaT[2].coordenadas.Y && ta.coordenadas.Y - 40 == PiezaT[3].coordenadas.Y)) { foreach (Cuadro c2 in PiezaT) { foreach (Cuadro t in tab.cuadritos) { if (c2.coordenadas.X == t.coordenadas.X && c2.coordenadas.Y == t.coordenadas.Y) { t.Estado = true; t.Brocha4 = c2.Brocha6; } } c2.Estado = true; } verificar = true; break; } } } c.coordenadas.Y += 20; if (PiezaT[1].coordenadas.Y == 380 && PiezaT[3].coordenadas.Y == 360) { foreach (Cuadro c2 in PiezaT) { foreach (Cuadro t in tab.cuadritos) { if (c2.coordenadas.X == t.coordenadas.X && c2.coordenadas.Y == t.coordenadas.Y) { t.Estado = true; t.Brocha4 = c2.Brocha6; } } c2.Estado = true; } verificar = true; break; } } } } if (op == OrientacionPieza.Derecha) { foreach (Cuadro c in PiezaT) { if (c.Estado == false) { foreach (Cuadro ta in tab.cuadritos) { if (ta.Estado == true) { if ((ta.coordenadas.X == PiezaT[3].coordenadas.X && ta.coordenadas.Y - 20 == PiezaT[3].coordenadas.Y) || (ta.coordenadas.X == PiezaT[2].coordenadas.X && ta.coordenadas.Y - 20 == PiezaT[2].coordenadas.Y && ta.coordenadas.Y - 40 == PiezaT[3].coordenadas.Y)) { foreach (Cuadro c2 in PiezaT) { foreach (Cuadro t in tab.cuadritos) { if (c2.coordenadas.X == t.coordenadas.X && c2.coordenadas.Y == t.coordenadas.Y) { t.Estado = true; t.Brocha4 = c2.Brocha6; } } c2.Estado = true; } verificar = true; break; } } } c.coordenadas.Y += 20; if (PiezaT[2].coordenadas.Y == 380 && PiezaT[3].coordenadas.Y == 360) { foreach (Cuadro c2 in PiezaT) { foreach (Cuadro t in tab.cuadritos) { if (c2.coordenadas.X == t.coordenadas.X && c2.coordenadas.Y == t.coordenadas.Y) { t.Estado = true; t.Brocha4 = c2.Brocha6; } } c2.Estado = true; } verificar = true; break; } } } } return(verificar); }
public void MoverIzquierda(ref List <Cuadro> PiezaT, Tablero tab, OrientacionPieza op) { bool mover = true; if (op == OrientacionPieza.Arriba) { foreach (Cuadro c in PiezaT) { if (c.Estado == false) { foreach (Cuadro t in tab.cuadritos) { if (t.Estado == true) { if ((t.coordenadas.X == PiezaT[3].coordenadas.X - 20 && t.coordenadas.Y == PiezaT[3].coordenadas.Y) || (t.coordenadas.X == PiezaT[0].coordenadas.X - 20 && t.coordenadas.Y == PiezaT[0].coordenadas.Y)) { //c.coordenadas.X -= 20; mover = false; break; } } } if ((PiezaT[0].coordenadas.X == 0)) { mover = false; } } } } if (op == OrientacionPieza.Izquierda) { foreach (Cuadro c in PiezaT) { if (c.Estado == false) { foreach (Cuadro t in tab.cuadritos) { if (t.Estado == true) { if ((t.coordenadas.X == PiezaT[2].coordenadas.X - 20 && t.coordenadas.Y == PiezaT[2].coordenadas.Y) || (t.coordenadas.X == PiezaT[1].coordenadas.X - 20 && t.coordenadas.Y == PiezaT[1].coordenadas.Y) || (t.coordenadas.X == PiezaT[0].coordenadas.X - 20 && t.coordenadas.Y == PiezaT[0].coordenadas.Y)) { //c.coordenadas.X -= 20; mover = false; break; } } } if ((PiezaT[1].coordenadas.X == 0)) { mover = false; } } } } if (op == OrientacionPieza.Abajo) { foreach (Cuadro c in PiezaT) { if (c.Estado == false) { foreach (Cuadro t in tab.cuadritos) { if (t.Estado == true) { if ((t.coordenadas.X == PiezaT[3].coordenadas.X - 20 && t.coordenadas.Y == PiezaT[3].coordenadas.Y) || (t.coordenadas.X == PiezaT[2].coordenadas.X - 20 && t.coordenadas.Y == PiezaT[2].coordenadas.Y)) { //c.coordenadas.X -= 20; mover = false; break; } } } if ((PiezaT[0].coordenadas.X == 0)) { mover = false; } } } } if (op == OrientacionPieza.Derecha) { foreach (Cuadro c in PiezaT) { if (c.Estado == false) { foreach (Cuadro t in tab.cuadritos) { if (t.Estado == true) { if ((t.coordenadas.X == PiezaT[2].coordenadas.X - 20 && t.coordenadas.Y == PiezaT[2].coordenadas.Y) || (t.coordenadas.X == PiezaT[1].coordenadas.X - 20 && t.coordenadas.Y == PiezaT[1].coordenadas.Y) || (t.coordenadas.X == PiezaT[0].coordenadas.X - 20 && t.coordenadas.Y == PiezaT[0].coordenadas.Y)) { //c.coordenadas.X -= 20; mover = false; break; } } } if ((PiezaT[1].coordenadas.X == 0)) { mover = false; } } } } foreach (Cuadro c in PiezaT) { if (mover) { c.coordenadas.X -= 20; } } }
public Pieza(IPieza _pieza, Point co, OrientacionPieza op) { pieza = _pieza; PiezaO = pieza.Formar(co, op); }
public List <Cuadro> Rotar(Tablero tab, ref OrientacionPieza op, List <Cuadro> Pieza) { return(Pieza); }