Пример #1
0
        //Método para iniciar o xogo
        public void iniciarXogo()
        {
            partida = new Partida(4, 0, 0);
            cargarCartasMemoria();
            baraxarCartas();
            configPanelXogo();

            //Carga os meus user controls no taboleiro
            int contadorFichas = 0;

            for (var i = 0; i < partida.tamanoColFil; i++)
            {
                for (var j = 0; j < partida.tamanoColFil; j++)
                {
                    CartaLib.ucImaxe uc = new CartaLib.ucImaxe();
                    PictureBox       pb = uc.getImaxe();
                    pb.Dock     = DockStyle.Fill;
                    pb.SizeMode = PictureBoxSizeMode.StretchImage;
                    pb.Image    = (Image)myManager.GetObject(partida.listaCartas[contadorFichas].rutaImagenReverso);
                    uc.getImaxe().Click += new System.EventHandler(this.btnCarta_Click);
                    tablaPanel.Controls.Add(uc, j, i);
                    contadorFichas++;
                }
            }

            tablaPanel.Dock = DockStyle.Fill;
            PanelXogo.Controls.Add(tablaPanel);
        }
Пример #2
0
        //Función de clickar nunha carta
        private void btnCarta_Click(object sender, EventArgs e)
        {
            if (indPrimario == -1 | indSecundario == -1)
            {
                partida.contMovementos++;
                lblMovementosEdit.Text = partida.contMovementos.ToString();

                cartaSeleccionada = (PictureBox)sender;

                CartaLib.ucImaxe ucCartaSeleccionada = (CartaLib.ucImaxe)cartaSeleccionada.Parent;
                int col = tablaPanel.GetCellPosition(ucCartaSeleccionada).Column;
                int row = tablaPanel.GetCellPosition(ucCartaSeleccionada).Row;

                int contPosicion = 0;
                switch (row)
                {
                case 0:
                    row = row + 1;
                    break;

                case 1:
                    row = row + 4;
                    break;

                case 2:
                    row = row + 7;
                    break;

                case 3:
                    row = row + 10;
                    break;

                default:
                    break;
                }
                contPosicion = row + col;

                cartaSeleccionada.Image = (Image)myManager.GetObject(partida.listaCartas[contPosicion - 1].rutaImagen);

                //guardo el primer índice pulsado
                if (indPrimario == -1)
                {
                    indPrimario        = contPosicion - 1;
                    cartaSeleccionada1 = cartaSeleccionada;
                }
                else
                {
                    indSecundario      = contPosicion - 1;
                    cartaSeleccionada2 = cartaSeleccionada;
                    if (indPrimario == indSecundario)
                    {
                        cartaSeleccionada1.Image = (Image)myManager.GetObject(partida.listaCartas[indPrimario].rutaImagenReverso);
                        cartaSeleccionada2.Image = (Image)myManager.GetObject(partida.listaCartas[indSecundario].rutaImagenReverso);
                        indPrimario   = -1;
                        indSecundario = -1;
                    }
                    else if (partida.listaCartas[indPrimario].idCarta != partida.listaCartas[indSecundario].idCarta)
                    {
                        foreach (CartaLib.ucImaxe item in tablaPanel.Controls)
                        {
                            item.Enabled = false;
                        }
                        tTempo.Enabled = true;
                        tTempo.Start();
                        foreach (CartaLib.ucImaxe item in tablaPanel.Controls)
                        {
                            item.Enabled = true;
                        }
                    }
                    else
                    {
                        partida.contCantidadCartasXiradas++;
                        partida.contCantidadCartasXiradas++;
                        cartaSeleccionada1.Enabled = false;
                        cartaSeleccionada2.Enabled = false;
                        indPrimario   = -1;
                        indSecundario = -1;

                        if (partida.contCantidadCartasXiradas == 16)
                        {
                            string nomeUsu = Microsoft.VisualBasic.Interaction.InputBox(StringResources.tiganas + "\n\n" + StringResources.teunome, StringResources.tiganas, StringResources.anonimo);
                            if (nomeUsu.CompareTo("") != 0)
                            {
                                guardarMovementos(partida.contMovementos.ToString(), nomeUsu);
                            }

                            DialogResult result = MessageBox.Show(StringResources.desexas, StringResources.fin, MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk);


                            if (result == DialogResult.Yes)
                            {
                                btnXogoNovo_Click(null, null);
                            }
                            else
                            {
                                Application.Exit();
                            }
                        }
                    }
                }
            }
        }