public bool RevisarColor(Ficha f1, Ficha f2, Ficha f3, Ficha f4, TipoFicha tipo) { if (f1 != null && f2 != null && f3 != null && f4 != null) { return(((int)tipo == f1.Color) && ((int)tipo == f2.Color) && ((int)tipo == f3.Color) && ((int)tipo == f4.Color)); } return(false); }
public BoardCell(int alto, int ancho, int x, int y) { this.x = x; this.y = y; influenciaBlanco = 0; influenciaRojo = 0; ficha = TipoFicha.Vacio; /// Calcular las propiedades del tablero // Definir el equipo if (x > (alto / 2)) { equipo = Equipo.Blanco; } else if (x < (alto / 2)) { equipo = Equipo.Rojo; } else { equipo = Equipo.Ninguno; } // Definir si es un corner corner = (x == 1 || x == (alto - 2)) && (y == 0 || y == (ancho - 1)); // Definir si es parte del área area = ((x >= 1 && x <= 4) || (x >= (alto - 5) && x <= (alto - 2))) && (y >= 1 && y <= (ancho - 2)); areaChica = ((x >= 1 && x <= 2) || (x >= (alto - 3) && x <= (alto - 2))) && (y >= 2 && y <= (ancho - 3)); // Definir si es un arco arco = x == 0 || x == (alto - 1); // Definir si es una casilla especial especial = (x == 1 || x == (alto - 2)) && (y == 0 || y == (ancho - 1) || (y >= 3 && y <= 7)); }
private Bitmap[] crearArregloFichas(TipoFicha num) { Bitmap[] arr = new Bitmap[3]; switch (num) { case TipoFicha.rojo: arr[0] = Resources.fichaRoja3; arr[1] = Resources.fichaRoja2; arr[2] = Resources.fichaRoja1; break; case TipoFicha.verde: arr[0] = Resources.fichaVerde3; arr[1] = Resources.fichaVerde2; arr[2] = Resources.fichaVerde1; break; case TipoFicha.amarillo: arr[0] = Resources.fichaAmarillo3; arr[1] = Resources.fichaAmarillo2; arr[2] = Resources.fichaAmarillo1; break; case TipoFicha.azul: arr[0] = Resources.fichaAzul3; arr[1] = Resources.fichaAzul2; arr[2] = Resources.fichaAzul1; break; default: break; } return(arr); }
public TipoFicha Tipo { get; set; } // el tipo de ficha que contiene la Casilla // constructor de Casilla public Casilla( int pos, TipoFicha t ) { this.Posicion = pos; this.Tipo = t; } // fin del constructor Casilla
public static void Main() { TipoFicha[] fichas /* Los datos en si */ = new TipoFicha[1000]; int numeroFichas = 0; /* Número de fichas que ya tenemos */ int i; /* Para bucles */ int opcion; /* La opcion del menu que elija el usuario */ string textoBuscar; /* Para cuando preguntemos al usuario */ long tamanyoBuscar; /* Para buscar por tamaño */ do { /* Menu principal */ Console.WriteLine(); Console.WriteLine("Escoja una opción:"); Console.WriteLine("1.- Añadir datos de un nuevo fichero"); Console.WriteLine("2.- Mostrar los nombres de todos los ficheros"); Console.WriteLine("3.- Mostrar ficheros que sean de mas de un cierto tamaño"); Console.WriteLine("4.- Ver datos de un fichero"); Console.WriteLine("5.- Contiene"); Console.WriteLine("6.- Borrar"); Console.WriteLine("7.- Modificar"); Console.WriteLine("8.- ordenar"); Console.WriteLine("9.- Salir"); opcion = Convert.ToInt32(Console.ReadLine()); /* Hacemos una cosa u otra según la opción escogida */ switch (opcion) { case 1: /* Añadir un dato nuevo */ if (numeroFichas < 1000) { /* Si queda hueco */ Console.WriteLine("Introduce el nombre del fichero: "); fichas[numeroFichas].nombreFich = Console.ReadLine(); while (fichas[numeroFichas].nombreFich == "") { Console.WriteLine("espacio vacio"); Console.WriteLine("Introduce nuevamente el nombre del fichero: "); fichas[numeroFichas].nombreFich = Console.ReadLine(); } Console.WriteLine("Introduce el tamaño en KB: "); fichas[numeroFichas].tamanyo = Convert.ToInt32(Console.ReadLine()); /* Y ya tenemos una ficha más */ while (fichas[numeroFichas].tamanyo < 0) { Console.WriteLine("error de tamaño"); Console.WriteLine("Introduce nuevamente el tamaño en KB: "); fichas[numeroFichas].tamanyo = Convert.ToInt32(Console.ReadLine()); } numeroFichas++; } else /* Si no hay hueco para más fichas, avisamos */ { Console.WriteLine("Máximo de fichas alcanzado (1000)!"); } break; case 2: /* Mostrar todos */ for (i = 0; i < numeroFichas; i++) { Console.WriteLine("Nombre: {0} Tamaño: {1} KB", fichas[i].nombreFich, fichas[i].tamanyo); } break; case 3: /* Mostrar según el tamaño */ Console.WriteLine("¿A partir de que tamaño quieres que te muestre?"); tamanyoBuscar = Convert.ToInt64(Console.ReadLine()); for (i = 0; i < numeroFichas; i++) { if (fichas[i].tamanyo >= tamanyoBuscar) { Console.WriteLine("Nombre: {0} Tamaño: {1} KB", fichas[i].nombreFich, fichas[i].tamanyo); } } break; case 4: /* Ver todos los datos (pocos) de un fichero */ Console.WriteLine("¿De qué fichero quieres ver todos los datos?"); textoBuscar = Console.ReadLine(); for (i = 0; i < numeroFichas; i++) { if (fichas[i].nombreFich == textoBuscar) { Console.WriteLine("Nombre: {0} Tamaño: {1} KB", fichas[i].nombreFich, fichas[i].tamanyo); } } break; case 5: Console.WriteLine("5.- Contiene"); string contiene = Console.ReadLine(); string con = "" + contiene; while (contiene != "") { for (i = 0; i < numeroFichas; i++) { if (fichas[i].nombreFich.ToLower().Contains(con.ToLower())) { Console.WriteLine("Nombre: {0} Tamaño: {1} KB", fichas[i].nombreFich, fichas[i].tamanyo); } } contiene = Console.ReadLine(); con += contiene; } break; case 6: Console.WriteLine("6.- Borrar"); Console.WriteLine("fichero queres eliminar"); for (i = 0; i < numeroFichas; i++) { Console.WriteLine("Id: {2} Nombre: {0} Tamaño: {1} KB", fichas[i].nombreFich, fichas[i].tamanyo, i + 1); } int eliminar = Convert.ToInt32(Console.ReadLine()); eliminar--; for (i = eliminar; i < numeroFichas; i++) { fichas[i] = fichas[i + 1]; } numeroFichas--; break; case 7: Console.WriteLine("7.- Modificar"); Console.WriteLine("fichero queres eliminar"); for (i = 0; i < numeroFichas; i++) { Console.WriteLine("Id: {2} Nombre: {0} Tamaño: {1} KB", fichas[i].nombreFich, fichas[i].tamanyo, i + 1); } int buscar = Convert.ToInt32(Console.ReadLine()); buscar--; TipoFicha ficha = new TipoFicha(); Console.WriteLine("Introduce el nombre del fichero: "); ficha.nombreFich = Console.ReadLine(); while (ficha.nombreFich == "") { ficha.nombreFich = fichas[buscar].nombreFich; } Console.WriteLine("Introduce el tamaño en KB: "); ficha.tamanyo = Convert.ToInt32(Console.ReadLine()); /* Y ya tenemos una ficha más */ while (ficha.tamanyo < 0) { ficha.tamanyo = fichas[buscar].tamanyo; } fichas[buscar] = ficha; break; case 8: Console.WriteLine("8.- ordenar"); TipoFicha tipoFicha; for (i = 0; i < numeroFichas - 1; i++) { for (int j = i + 1; j < numeroFichas; j++) { if (fichas[i].nombreFich.CompareTo(fichas[j].nombreFich) > 0) { tipoFicha = fichas[i]; fichas[i] = fichas[j]; fichas[j] = tipoFicha; } } } break; case 9: /* Salir: avisamos de que salimos */ Console.WriteLine("Fin del programa"); break; default: /* Otra opcion: no válida */ Console.WriteLine("Opción desconocida!"); break; } } while (opcion != 9); /* Si la opcion es 5, terminamos */ }
public static void Main() { TipoFicha[] fichas /* Los datos en si */ = new TipoFicha[1000]; int numeroFichas = 0; /* Número de fichas que ya tenemos */ int i; /* Para bucles */ int opcion; /* La opcion del menu que elija el usuario */ string textoBuscar; /* Para cuando preguntemos al usuario */ long tamanyoBuscar; /* Para buscar por tamaño */ do { /* Menu principal */ Console.WriteLine(); Console.WriteLine("Escoja una opción:"); Console.WriteLine("1.- Añadir datos de un nuevo fichero"); Console.WriteLine("2.- Mostrar los nombres de todos los ficheros"); Console.WriteLine("3.- Mostrar ficheros que sean de mas de un cierto tamaño"); Console.WriteLine("4.- Ver datos de un fichero"); Console.WriteLine("5.- Salir"); opcion = Convert.ToInt32(Console.ReadLine()); /* Hacemos una cosa u otra según la opción escogida */ switch (opcion) { case 1: /* Añadir un dato nuevo */ if (numeroFichas < 1000) { /* Si queda hueco */ Console.WriteLine("Introduce el nombre del fichero: "); fichas[numeroFichas].nombreFich = Console.ReadLine(); while (fichas[numeroFichas].nombreFich == "") { Console.WriteLine("espacio vacio"); Console.WriteLine("Introduce nuevamente el nombre del fichero: "); fichas[numeroFichas].nombreFich = Console.ReadLine(); } Console.WriteLine("Introduce el tamaño en KB: "); fichas[numeroFichas].tamanyo = Convert.ToInt32(Console.ReadLine()); /* Y ya tenemos una ficha más */ while (fichas[numeroFichas].tamanyo < 0) { Console.WriteLine("error de tamaño"); Console.WriteLine("Introduce nuevamente el tamaño en KB: "); fichas[numeroFichas].tamanyo = Convert.ToInt32(Console.ReadLine()); } numeroFichas++; } else /* Si no hay hueco para más fichas, avisamos */ { Console.WriteLine("Máximo de fichas alcanzado (1000)!"); } break; case 2: /* Mostrar todos */ for (i = 0; i < numeroFichas; i++) { Console.WriteLine("Nombre: {0}; Tamaño: {1} KB", fichas[i].nombreFich, fichas[i].tamanyo); } break; case 3: /* Mostrar según el tamaño */ Console.WriteLine("¿A partir de que tamaño quieres que te muestre?"); tamanyoBuscar = Convert.ToInt64(Console.ReadLine()); for (i = 0; i < numeroFichas; i++) { if (fichas[i].tamanyo >= tamanyoBuscar) { Console.WriteLine("Nombre: {0}; Tamaño: {1} KB", fichas[i].nombreFich, fichas[i].tamanyo); } } break; case 4: /* Ver todos los datos (pocos) de un fichero */ Console.WriteLine("¿De qué fichero quieres ver todos los datos?"); textoBuscar = Console.ReadLine(); for (i = 0; i < numeroFichas; i++) { if (fichas[i].nombreFich == textoBuscar) { Console.WriteLine("Nombre: {0}; Tamaño: {1} KB", fichas[i].nombreFich, fichas[i].tamanyo); } } break; case 5: /* Salir: avisamos de que salimos */ Console.WriteLine("Fin del programa"); break; default: /* Otra opcion: no válida */ Console.WriteLine("Opción desconocida!"); break; } } while (opcion != 5); /* Si la opcion es 5, terminamos */ } /* Hacemos una cosa u otra según la opción escogida */
// Modifica la influencia de las casillas adyacentes a una posicion void modificarInfluencia(int x, int y, TipoFicha ficha, bool negativo) { for (int i = (x - 1); i <= (x + 1); i++) { for (int j = (y - 1); j <= (y + 1); j++) { if (i > 0 && i < (alto - 1) && j >= 0 && j < ancho) { board[i, j].modificarInfluencia(ficha, negativo); } } } }
private void setFicha(int x, int y, TipoFicha ficha) { TipoFicha fichaPrevia = board[x, y].ficha; board[x, y].ficha = ficha; if (ficha == TipoFicha.Vacio) { modificarInfluencia(x, y, fichaPrevia, true); } else { modificarInfluencia(x, y, ficha, false); } }
public void modificarInfluencia(TipoFicha ficha, bool negativo) { int Cantidad = 1 * (negativo ? -1 : 1); if (ficha == TipoFicha.BlancoArquero || ficha == TipoFicha.RojoArquero) { Cantidad *= 6; } if (ficha == TipoFicha.BlancoFicha || ficha == TipoFicha.BlancoArquero) { influenciaBlanco += Cantidad; } else if (ficha == TipoFicha.RojoFicha || ficha == TipoFicha.RojoArquero) { influenciaRojo += Cantidad; } }