예제 #1
0
        /// <summary>
        /// Inicializa y prepara la ventana para el juego
        /// </summary>
        protected void PrepararVentana()
        {
            char[] letrasPalo = { 'o', 'e', 'c', 'b' };
            //Array con las letras iniciales de los palos para identificar
            // las posiciones de las cartas en el tablero


            int idCarta = 0;

            //Identificador de la carta actual para el reparto de cartas

            baraja.Barajar_nuevo();
            //1 - Se entrevera la baraja

            for (int fila = 0; fila < tbl_tablero.RowCount; fila++)
            //2 - Comenzamos a recorrer el tablero. Primero las filas...
            {
                for (int columna = 0; columna < tbl_tablero.ColumnCount; columna++)
                //... y luego las columnas. De esta manera ubicamos cada carta de
                // cada fila antes de pasar a la siguiente fila.
                {
                    Carta carta = baraja.baraja[idCarta];
                    //Tomamos una carta de la baraja

                    string posicion = letrasPalo[fila] + (columna + 1).ToString();
                    //Guardamos el código de su posición en el tablero

                    ButtonCarta bt = new ButtonCarta(carta, posicion);
                    //Creamos un botón para representar la carta en el tablero

                    bt.Size = new Size(104, 159);
                    //Definimos su tamaño

                    bt.Click += Carta_Click;
                    //Le agregamos un método a su evento 'Click'

                    bt.Enabled = false;
                    //Lo desabilitamos para evitar que se lo use antes de tiempo

                    tbl_tablero.Controls.Add(bt, columna, fila);
                    //Lo añadimos al tablero en la posición que establecimos

                    idCarta++;
                    //Avanzamos el identificador a la siguiente carta
                }
            }


            for (int vida = 0; vida < 4; vida++)
            //3 - Las cartas restantes las añadimos a la lista de vidas
            {
                Carta carta = baraja.baraja[idCarta];
                //Ubicamos la carta en la baraja

                cartasVidas.Add(carta);
                //La añadimos a la lista de vidas

                idCarta++;
                //Avanzamos el identificador a la siguiente carta
            }


            vida = cartasVidas[0];


            ButtonCarta btn_Vidas = new ButtonCarta(vida, "");

            btn_Vidas.Size = new Size(104, 159);
            //4 - Creamos el botón para las cartas de las vidas...

            btn_Vidas.Click += Vida_Click;
            //... le agregamos el evento correspondiente...

            btn_Vidas.Text      = cartasVidas.Count.ToString();
            btn_Vidas.Font      = new Font("Arial Black", 28, FontStyle.Regular);
            btn_Vidas.ForeColor = Color.White;
            //... y establecemos el texto del botón y su apariencia con las vidas


            btn_cartaEnMano      = new ButtonCarta();
            btn_cartaEnMano.Size = new Size(104, 159);
            //5 - Establecemos el botón para la carta en la mano

            tbl_control.Controls.Add(btn_Vidas, 0, 3);
            tbl_control.Controls.Add(btn_cartaEnMano, 0, 1);
            //6 - Añadimos los botones al tablero de control
        }
예제 #2
0
    protected void PrepararVentana()
    {
        Console.WriteLine("Barajando...");
        baraja.Barajar_nuevo();



        //Stream flujo = ensamble.GetManifestResourceStream("JuegoDeCartasGTK.imagen.baraja.basto1.png");
        int idCarta = 0;

        //Incializamos un int en 0 para indicar nuestra posición en la baraja

        for (uint fila = 0; fila < 4; fila++)
        //El primer FOR es para recorrer las filas del Gtk.Table
        // debe usarse un 'uint' en vez de 'int' debido a que el método Attach no
        // acepta una variable de tipo 'int'
        {
            for (uint columna = 0; columna < 11; columna++)
            //El segundo FOR es para recorrer las columnas del Gtk.Table
            {
                Carta carta = baraja.baraja[idCarta];
                //1 - Obtenemos la carta de la baraja

                Image imagen = new Image();
                //2 - Creamos una imagen

                ButtonCarta b = new ButtonCarta(carta);
                //3 - Creamos el botón para la carta con la clase Button modificada y le
                // asignamos la carta

                Stream flujo = ensamble.GetManifestResourceStream("JuegoDeCartasGTK.imagen.baraja.reves.png");
                //4 - Creamos un flujo de datos para obtener la imagen del botón

                imagen.Pixbuf = new Gdk.Pixbuf(flujo, 79, 130);
                //5 - Establecemos el flujo en el objeto imagen declarado antes

                flujo.Close();
                //6 - Cerramos el flujo de datos

                b.Image = imagen;

                //7 - Añadimos la imagen al botón

                b.Clicked += new EventHandler(CartaClick);
                //8 - Añadimos al botón el evento CartaClick que declaramos más abajo

                b.Show();
                //9 - Marcamos el botón para mostrarse

                tblTablero1.Attach(b, columna + 1, columna + 2, fila, fila + 1);
                //10 - Añadimos el botón a la posición actual en la tabla.
                // Para más detalles sobre el método Attach ver:

                idCarta++;
                //11 - Pasamos a la siguiente carta
            }

            //Asignar cartas de Vidas
            for (int columna = 0; columna < 4; columna++)
            {
            }
        }
    }