Example #1
0
 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));
    }
Example #3
0
        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);
        }
Example #4
0
        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
Example #5
0
        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 */
        }
Example #6
0
        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;
        }
    }