public void Jugar(Tablero Tablero, int color, Ficha[] Ficha) { int x = 60; Ficha[] llena = new Ficha[x]; int contador = 0; while (contador < x) { llena[contador] = new Ficha(Tablero.Ficha[contador]); Transformar(llena[contador], color, 21); contador++; } Tablero nuevotab = new Tablero(llena); faker = new Bot(color, nuevotab, players); aux = new Bot(faker); Buscar(nuevotab, color, 0.5, 6.0, 1.0); noPlayers = faker.NJ; int con = 0; while (con < noPlayers) { movida[con] = new Ficha(faker.Jugada[con]); Transformar(movida[con], color, 5); con++; } }
public void buscarporcolor(int color, int nueva, int c, int pa, int pb, Ficha Ficha) { if (color == 0) { nueva = Ficha.Posicion; } if (color == 1) { nueva = cruce(-c, -pa); } if (color == 2) { nueva = cruce(pb, c); } if (color == 3) { nueva = cruce(-pa, -pb); } if (color == 4) { nueva = cruce(c, pa); } if (color == 5) { nueva = cruce(-pb, -c); } Ficha.Posicion = nueva; }
public void ActualizarTablero2() { for (int x = 0; x < 60; x++) { if (ficha[x].Color == listajugadores[0].kolor) { for (int i = 0; i < 10; i++) { ficha[x] = new Ficha(listajugadores[0].kolor, listajugadores[0].pos[i]); x++; } } } listajugadores[0].pos.Clear(); for (int z = 1; z < 6; z++) { if ((listajugadores[z].kolor != 0)) { for (int x = 0; x < 60; x++) { if (ficha[x].Color == listajugadores[z].kolor) { for (int i = 0; i < 10; i++) { ficha[x] = new Ficha(listajugadores[z].kolor, listajugadores[z].pos[i]); x++; } } } listajugadores[z].pos.Clear(); } } }
public void Agregar(Ficha ficha) { _jugada[NJ] = new Ficha(ficha); if (_nj > 0) { CalculoOp(_nj); } _nj++; }
public void Transformar(Ficha Ficha, int color, int max) { int x = Ficha.Posicion; int pa = puntoA[x]; int pb = puntoB[x]; int d = pb + 5; int nueva = 0; int c = -(pa + pb); buscarporcolor(color, nueva, c, pa, pb, Ficha); }
public void Saltar(Ficha Ficha, Tablero Tablero, Bot exploador) { int x = Ficha.Posicion; int posA = puntoA[x]; int posB = puntoB[x]; int A = 0; int B = 0; Ficha auxiliar = new Ficha(); Bot explorador = new Bot(exploador); realizarsalto(explorador, exploador, auxiliar, A, B, posA, posB, Tablero, Ficha); }
public string Jugar(Tablero T, int color, string pruebaDvalidacion) { _mejor = new Bot(color, Rotar(T, color), _jugadores); Encontrar(Rotar(T, color), color); Nj = _mejor.NJ; for (int i = 0; i < Nj; i++) { _jugada[i] = new Ficha(_mejor.Jugada[i]); invertir(_jugada[i], color); } return(this.toString2()); }
public void Jugar(Tablero T, int color) { _mejor = new Bot(color, Rotar(T, color), _jugadores); aux = new Bot(_mejor); Encontrar(Rotar(T, color), color); Nj = _mejor.NJ; for (int i = 0; i < Nj; i++) { _jugada[i] = new Ficha(_mejor.Jugada[i]); invertir(_jugada[i], color); } }
public void agregarJugador(string texto) { if (tableroanterior != texto) { turno = true; Ficha items = JsonConvert.DeserializeObject <Ficha>(texto); Color ccolor = Color.Black; LimpiarTablero(); foreach (var casilla in listaCasillas) { foreach (var item in items.tablero) { if (int.Parse((item.ficha[1])) == casilla.posi) { if (int.Parse(item.ficha[0]) == 0) { ccolor = Color.Red; ActualizarJugador(0, ccolor, item); } else if (int.Parse(item.ficha[0]) == 1) { ccolor = Color.Purple; ActualizarJugador(1, ccolor, item); } else if (int.Parse(item.ficha[0]) == 2) { ccolor = Color.Blue; ActualizarJugador(2, ccolor, item); } else if (int.Parse(item.ficha[0]) == 3) { ccolor = Color.Green; ActualizarJugador(3, ccolor, item); } else if (int.Parse(item.ficha[0]) == 4) { ccolor = Color.Yellow; ActualizarJugador(4, ccolor, item); } else if (int.Parse(item.ficha[0]) == 5) { ccolor = Color.Orange; ActualizarJugador(5, ccolor, item); } casilla.BackColor = ccolor; this.Controls.Add(casilla); } } } ActualizarTablero2(); } tableroanterior = texto; }
public bool MovimientoPermitido(Ficha Ficha, Tablero Tablero) { int x = Ficha.Posicion; bool puede = false; int posA = puntoA[x]; int posB = puntoB[x]; Ficha fichaAux; int A; int b; Bot explorador; for (int i = -1; i < 2; i++) { for (int j = -1; j < 2; j++) { explorador = new Bot(aux); if (i != (-j)) { A = posA + i; b = posB - j; if (cruce(A, b) != totalespacios) { if (BuscarFicha(A, b, Tablero)) { if (BuscarFicha(A + i, b - j, Tablero)) { } else { explorador.Agregar(Ficha); fichaAux = new Ficha(Ficha.Color, cruce(A + i, b - j)); explorador.Agregar(fichaAux); faker.NuevoOptimo(explorador); Saltar(fichaAux, Tablero, explorador); puede = true; } } else { explorador.Agregar(Ficha); fichaAux = new Ficha(Ficha.Color, cruce(A, b)); explorador.Agregar(fichaAux); faker.NuevoOptimo(explorador); puede = true; } } } } } return(puede); }
public bool PuedeMover(Ficha F, Tablero T) { int x = F.Posicion; bool puede = false; int a = CoorA[x]; int b = CoorB[x]; Ficha auxiliar; int alt; int blt; Bot scout; //la IA que atravesara todos los caminos imaginables for (int i = -1; i < 2; i++) { for (int j = -1; j < 2; j++) { scout = new Bot(aux); if (i != (-j)) { alt = a + i; blt = b - j; if (interseccion(alt, blt) != 121) { if (HayFicha(alt, blt, T)) { if (HayFicha(alt + i, blt - j, T)) { } else { scout.Agregar(F); auxiliar = new Ficha(F.Color, interseccion(alt + i, blt - j)); scout.Agregar(auxiliar); puede = true; _mejor.NuevoOptimo(scout); brincar(auxiliar, T, scout); } } else { scout.Agregar(F); auxiliar = new Ficha(F.Color, interseccion(alt, blt)); scout.Agregar(auxiliar); puede = true; _mejor.NuevoOptimo(scout); } } } } } return(puede); }
public Tablero Rotar(Tablero T, int color) { int x = 10 * (int)_jugadores; Ficha[] llena = new Ficha[x]; for (int i = 0; i < x; i++) { llena[i] = new Ficha(T.Ficha[i]); convertir(llena[i], color); } Tablero rotado = new Tablero(llena); return(rotado); }
public void invertir(Ficha F, int color) { int x = F.Posicion; int a = CoorA[x]; int b = CoorB[x]; int c = -(a + b); int nueva = 0; switch (color) { case 0: { nueva = F.Posicion; } break; case 1: { nueva = interseccion(-b, -c); } break; case 2: { nueva = interseccion(c, a); } break; case 3: { nueva = interseccion(-a, -b); } break; case 4: { nueva = interseccion(b, c); } break; case 5: { nueva = interseccion(-c, -a); } break; } F.Posicion = nueva; }
public void realizarsalto(Bot explorador, Bot exploador, Ficha auxiliar, int A, int B, int posA, int posB, Tablero Tablero, Ficha Ficha) { for (int i = -1; i < 2; i++) { for (int j = -1; j < 2; j++) { explorador = new Bot(exploador); if (i != (-j)) { A = posA + i; B = posB - j; buscarFicha(A, B, Tablero, i, j, explorador, auxiliar, Ficha); } } } }
public void buscarFicha(int A, int B, Tablero Tablero, int i, int j, Bot explorador, Ficha auxiliar, Ficha Ficha) { if (BuscarFicha(A, B, Tablero)) { if (BuscarFicha(A + i, B - j, Tablero)) { } else { int y = cruce(A + i, B - j); if (Recorrido(y, explorador)) { auxiliar = new Ficha(Ficha.Color, y); explorador.Agregar(auxiliar); faker.NuevoOptimo(explorador); Saltar(auxiliar, Tablero, explorador); } } } }
public void brincar(Ficha F, Tablero T, Bot exploador) { int x = F.Posicion; int a = CoorA[x]; int b = CoorB[x]; int alt; int blt; Ficha auxiliar; Bot scout; //la IA que atravesara todos los caminos imaginables for (int i = -1; i < 2; i++) { for (int j = -1; j < 2; j++) { scout = new Bot(exploador); if (i != (-j)) { alt = a + i; blt = b - j; if (HayFicha(alt, blt, T)) { if (HayFicha(alt + i, blt - j, T)) { } else { int y = interseccion(alt + i, blt - j); //if (y != scout.Jugada[scout.NJ - 2].Posicion && y != scout.Jugada[0].Posicion && y != scout.Jugada[1].Posicion) if (Recorrido(y, scout)) { auxiliar = new Ficha(F.Color, y); scout.Agregar(auxiliar); _mejor.NuevoOptimo(scout); brincar(auxiliar, T, scout); } } } } } } }
public Bot(Bot nuevo) { #region Coordenadas string a = "-8,-7,-7,-6,-6,-6,-5,-5,-5,-5,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-3,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,6,6,6,7,7,8"; string[] campA; campA = a.Split(','); string b = "4,3,4,2,3,4,1,2,3,4,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,-4,-3,-2,-1,0,1,2,3,4,5,6,7,-4,-3,-2,-1,0,1,2,3,4,5,6,-4,-3,-2,-1,0,1,2,3,4,5,-4,-3,-2,-1,0,1,2,3,4,-5,-4,-3,-2,-1,0,1,2,3,4,-6,-5,-4,-3,-2,-1,0,1,2,3,4,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,-4,-3,-2,-1,-4,-3,-2,-4,-3,-4"; string[] campB; campB = b.Split(','); for (int i = 0; i < 121; i++) { CoorA[i] = int.Parse(campA[i]); CoorB[i] = int.Parse(campB[i]); } #endregion _a = nuevo.A; _b = nuevo.B; _nj = nuevo.NJ; _optima = nuevo.Optima; for (int i = 0; i < _nj; i++) { _jugada[i] = new Ficha(nuevo.Jugada[i]); } }
public Ficha(Ficha ficha) { Color = ficha.Color; Posicion = ficha.Posicion; }
public void NuevoOptimo(Bot nuevo) { //if (nuevo.Jugada[0].Posicion < 90) { if (_a < nuevo.A) { _a = nuevo.A; _b = nuevo.B; _nj = nuevo.NJ; _optima = nuevo.Optima; for (int i = 0; i < _nj; i++) { _jugada[i] = new Ficha(nuevo.Jugada[i]); } } else { if (_a == nuevo.A && nuevo.Jugada[1].Posicion < 35) { if (_b > nuevo.B) { //if (nuevo.Jugada[0].Posicion < 90) { _a = nuevo.A; _b = nuevo.B; _nj = nuevo.NJ; _optima = nuevo.Optima; for (int i = 0; i < _nj; i++) { _jugada[i] = new Ficha(nuevo.Jugada[i]); } } } } } } /*else * { * if (_b > nuevo.B) * { * //if (nuevo.Jugada[0].Posicion < 90) * { * _a = nuevo.A; * _b = nuevo.B; * _nj = nuevo.NJ; * _optima = nuevo.Optima; * for (int i = 0; i < _nj; i++) * { * _jugada[i] = new Ficha(nuevo.Jugada[i]); * } * } * } * else * { * if (_a < nuevo.A) * { * _a = nuevo.A; * _b = nuevo.B; * _nj = nuevo.NJ; * _optima = nuevo.Optima; * for (int i = 0; i < _nj; i++) * { * _jugada[i] = new Ficha(nuevo.Jugada[i]); * } * } * } * }*/ }
public void tableroinicial() { ficha[0] = new Ficha(0, 120); ficha[1] = new Ficha(0, 119); ficha[2] = new Ficha(0, 118); ficha[3] = new Ficha(0, 117); ficha[4] = new Ficha(0, 116); ficha[5] = new Ficha(0, 115); ficha[6] = new Ficha(0, 114); ficha[7] = new Ficha(0, 113); ficha[8] = new Ficha(0, 112); ficha[9] = new Ficha(0, 111); ficha[10] = new Ficha(1, 110); ficha[11] = new Ficha(1, 97); ficha[12] = new Ficha(1, 109); ficha[13] = new Ficha(1, 85); ficha[14] = new Ficha(1, 96); ficha[15] = new Ficha(1, 108); ficha[16] = new Ficha(1, 74); ficha[17] = new Ficha(1, 84); ficha[18] = new Ficha(1, 95); ficha[19] = new Ficha(1, 107); ficha[20] = new Ficha(2, 22); ficha[21] = new Ficha(2, 21); ficha[22] = new Ficha(2, 34); ficha[23] = new Ficha(2, 20); ficha[24] = new Ficha(2, 33); ficha[25] = new Ficha(2, 45); ficha[26] = new Ficha(2, 19); ficha[27] = new Ficha(2, 32); ficha[28] = new Ficha(2, 44); ficha[29] = new Ficha(2, 55); ficha[30] = new Ficha(3, 0); ficha[31] = new Ficha(3, 1); ficha[32] = new Ficha(3, 2); ficha[33] = new Ficha(3, 3); ficha[34] = new Ficha(3, 4); ficha[35] = new Ficha(3, 5); ficha[36] = new Ficha(3, 6); ficha[37] = new Ficha(3, 7); ficha[38] = new Ficha(3, 8); ficha[39] = new Ficha(3, 9); ficha[40] = new Ficha(4, 10); ficha[41] = new Ficha(4, 23); ficha[42] = new Ficha(4, 11); ficha[43] = new Ficha(4, 35); ficha[44] = new Ficha(4, 24); ficha[45] = new Ficha(4, 12); ficha[46] = new Ficha(4, 46); ficha[47] = new Ficha(4, 36); ficha[48] = new Ficha(4, 25); ficha[49] = new Ficha(4, 13); ficha[50] = new Ficha(5, 98); ficha[51] = new Ficha(5, 99); ficha[52] = new Ficha(5, 86); ficha[53] = new Ficha(5, 100); ficha[54] = new Ficha(5, 87); ficha[55] = new Ficha(5, 75); ficha[56] = new Ficha(5, 101); ficha[57] = new Ficha(5, 88); ficha[58] = new Ficha(5, 76); ficha[59] = new Ficha(5, 65); T = new Tablero(ficha); }
public void tableroinicial3j() { ficha[0] = new Ficha(0, 120); ficha[1] = new Ficha(0, 119); ficha[2] = new Ficha(0, 118); ficha[3] = new Ficha(0, 117); ficha[4] = new Ficha(0, 116); ficha[5] = new Ficha(0, 115); ficha[6] = new Ficha(0, 114); ficha[7] = new Ficha(0, 113); ficha[8] = new Ficha(0, 112); ficha[9] = new Ficha(0, 111); ficha[10] = new Ficha(1, 60); ficha[11] = new Ficha(1, 60); ficha[12] = new Ficha(1, 60); ficha[13] = new Ficha(1, 60); ficha[14] = new Ficha(1, 60); ficha[15] = new Ficha(1, 60); ficha[16] = new Ficha(1, 60); ficha[17] = new Ficha(1, 60); ficha[18] = new Ficha(1, 60); ficha[19] = new Ficha(1, 60); ficha[20] = new Ficha(2, 22); ficha[21] = new Ficha(2, 21); ficha[22] = new Ficha(2, 34); ficha[23] = new Ficha(2, 20); ficha[24] = new Ficha(2, 33); ficha[25] = new Ficha(2, 45); ficha[26] = new Ficha(2, 19); ficha[27] = new Ficha(2, 32); ficha[28] = new Ficha(2, 44); ficha[29] = new Ficha(2, 55); ficha[30] = new Ficha(3, 60); ficha[31] = new Ficha(3, 60); ficha[32] = new Ficha(3, 60); ficha[33] = new Ficha(3, 60); ficha[34] = new Ficha(3, 60); ficha[35] = new Ficha(3, 60); ficha[36] = new Ficha(3, 60); ficha[37] = new Ficha(3, 60); ficha[38] = new Ficha(3, 60); ficha[39] = new Ficha(3, 60); ficha[40] = new Ficha(4, 10); ficha[41] = new Ficha(4, 23); ficha[42] = new Ficha(4, 11); ficha[43] = new Ficha(4, 35); ficha[44] = new Ficha(4, 24); ficha[45] = new Ficha(4, 12); ficha[46] = new Ficha(4, 46); ficha[47] = new Ficha(4, 36); ficha[48] = new Ficha(4, 25); ficha[49] = new Ficha(4, 13); ficha[50] = new Ficha(5, 60); ficha[51] = new Ficha(5, 60); ficha[52] = new Ficha(5, 60); ficha[53] = new Ficha(5, 60); ficha[54] = new Ficha(5, 60); ficha[55] = new Ficha(5, 60); ficha[56] = new Ficha(5, 60); ficha[57] = new Ficha(5, 60); ficha[58] = new Ficha(5, 60); ficha[59] = new Ficha(5, 60); T = new Tablero(ficha); T = new Tablero(ficha); }
public void ActualizarTablero() { for (int x = 0; x < 60; x++) { if (ficha[x].Color == jugador1.kolor) { for (int i = 0; i < 10; i++) { ficha[x] = new Ficha(jugador1.kolor, jugador1.pos[i]); x++; } } } jugador1.pos.Clear(); if ((jugador2.kolor != 0)) { for (int x = 0; x < 60; x++) { if (ficha[x].Color == jugador2.kolor) { for (int i = 0; i < 10; i++) { ficha[x] = new Ficha(jugador2.kolor, jugador2.pos[i]); x++; } } } jugador2.pos.Clear(); } if ((jugador3.kolor != 0)) { for (int x = 0; x < 60; x++) { if (ficha[x].Color == jugador3.kolor) { for (int i = 0; i < 10; i++) { ficha[x] = new Ficha(jugador3.kolor, jugador3.pos[i]); x++; } } } jugador3.pos.Clear(); } if ((jugador4.kolor != 0)) { for (int x = 0; x < 60; x++) { if (ficha[x].Color == jugador4.kolor) { for (int i = 0; i < 10; i++) { ficha[x] = new Ficha(jugador4.kolor, jugador4.pos[i]); x++; } } } jugador4.pos.Clear(); } if ((jugador5.kolor != 0)) { for (int x = 0; x < 60; x++) { if (ficha[x].Color == jugador5.kolor) { for (int i = 0; i < 10; i++) { ficha[x] = new Ficha(jugador5.kolor, jugador5.pos[i]); x++; } } } jugador5.pos.Clear(); } }