Ejemplo n.º 1
0
        private void Window_KeyDown(object sender, KeyEventArgs e)
        {
            if (!termino)
            {
                //Identificar que boton se dio click para decidir que hacer
                //Hacer un movimiento hacia abajo.
                if (e.Key == Key.Down)
                {
                    turno++;

                    if (esteMero != null)
                    {
                        //Hacer un casting a la pieza origen para hacer el
                        //correcto metodo moverAbajo()
                        if (esteMero.GetType() == typeof(FichaLinea))
                        {
                            FichaLinea casting = (FichaLinea)esteMero;
                            casting.moverAbajo();
                        }
                        else if (esteMero.GetType() == typeof(FichaTanque))
                        {
                            FichaTanque casting = (FichaTanque)esteMero;
                            casting.moverAbajo();
                        }
                        else if (esteMero.GetType() == typeof(FichaLetraL))
                        {
                            FichaLetraL casting = (FichaLetraL)esteMero;
                            casting.moverAbajo();
                        }
                        else if (esteMero.GetType() == typeof(FichaSerpiente))
                        {
                            FichaSerpiente casting = (FichaSerpiente)esteMero;
                            casting.moverAbajo();
                        }
                        else if (esteMero.GetType() == typeof(FichaSerpienteInvertida))
                        {
                            FichaSerpienteInvertida casting = (FichaSerpienteInvertida)esteMero;
                            casting.moverAbajo();
                        }
                        else if (esteMero.GetType() == typeof(FichaCuadrado))
                        {
                            FichaCuadrado casting = (FichaCuadrado)esteMero;
                            casting.moverAbajo();
                        }


                        if (!esteMero.moverse)
                        {
                            verificarLineas();


                            ///////

                            bool finish = false;

                            for (int j = 0; j < 10; j++)
                            {
                                if (conteo[0, j] == 1)
                                {
                                    finish = true;
                                }
                            }

                            if (finish)
                            {
                                terminarPartida();
                            }
                            else
                            {
                                crearFicha2();
                            }
                        }

                        contador = 0;
                        seMovio  = true;
                    }
                }
                else if (e.Key == Key.Right)
                {
                    if (esteMero != null)
                    {
                        if (esteMero.GetType() == typeof(FichaLinea))
                        {
                            FichaLinea casting = (FichaLinea)esteMero;
                            casting.moverDerecha();
                        }
                        else if (esteMero.GetType() == typeof(FichaTanque))
                        {
                            FichaTanque casting = (FichaTanque)esteMero;
                            casting.moverDerecha();
                        }
                        else if (esteMero.GetType() == typeof(FichaLetraL))
                        {
                            FichaLetraL casting = (FichaLetraL)esteMero;
                            casting.moverDerecha();
                        }
                        else if (esteMero.GetType() == typeof(FichaSerpiente))
                        {
                            FichaSerpiente casting = (FichaSerpiente)esteMero;
                            casting.moverDerecha();
                        }
                        else if (esteMero.GetType() == typeof(FichaSerpienteInvertida))
                        {
                            FichaSerpienteInvertida casting = (FichaSerpienteInvertida)esteMero;
                            casting.moverDerecha();
                        }
                        else if (esteMero.GetType() == typeof(FichaCuadrado))
                        {
                            FichaCuadrado casting = (FichaCuadrado)esteMero;
                            casting.moverDerecha();
                        }
                    }
                }
                else if (e.Key == Key.Left)
                {
                    if (esteMero != null)
                    {
                        //esteMero.moverIzquierda();

                        if (esteMero.GetType() == typeof(FichaLinea))
                        {
                            FichaLinea casting = (FichaLinea)esteMero;
                            casting.moverIzquierda();
                        }
                        else if (esteMero.GetType() == typeof(FichaTanque))
                        {
                            FichaTanque casting = (FichaTanque)esteMero;
                            casting.moverIzquierda();
                        }
                        else if (esteMero.GetType() == typeof(FichaLetraL))
                        {
                            FichaLetraL casting = (FichaLetraL)esteMero;
                            casting.moverIzquierda();
                        }
                        else if (esteMero.GetType() == typeof(FichaSerpiente))
                        {
                            FichaSerpiente casting = (FichaSerpiente)esteMero;
                            casting.moverIzquierda();
                        }
                        else if (esteMero.GetType() == typeof(FichaSerpienteInvertida))
                        {
                            FichaSerpienteInvertida casting = (FichaSerpienteInvertida)esteMero;
                            casting.moverIzquierda();
                        }
                        else if (esteMero.GetType() == typeof(FichaCuadrado))
                        {
                            FichaCuadrado casting = (FichaCuadrado)esteMero;
                            casting.moverIzquierda();
                        }
                    }
                }
                else if (e.Key == Key.Up)
                {
                    if (esteMero != null)
                    {
                        if (esteMero.GetType() == typeof(FichaLinea))
                        {
                            FichaLinea casting = (FichaLinea)esteMero;
                            casting.girar();
                        }
                        else if (esteMero.GetType() == typeof(FichaTanque))
                        {
                            FichaTanque casting = (FichaTanque)esteMero;
                            casting.girar();
                        }
                        else if (esteMero.GetType() == typeof(FichaLetraL))
                        {
                            FichaLetraL casting = (FichaLetraL)esteMero;
                            casting.girar();
                        }
                        else if (esteMero.GetType() == typeof(FichaSerpiente))
                        {
                            FichaSerpiente casting = (FichaSerpiente)esteMero;
                            casting.girar();
                        }
                        else if (esteMero.GetType() == typeof(FichaSerpienteInvertida))
                        {
                            FichaSerpienteInvertida casting = (FichaSerpienteInvertida)esteMero;
                            casting.girar();
                        }
                    }
                }
                else if (e.Key == Key.Space)
                {
                    if (esteMero != null)
                    {
                        while (esteMero.moverse)
                        {
                            if (esteMero.GetType() == typeof(FichaLinea))
                            {
                                FichaLinea casting = (FichaLinea)esteMero;
                                casting.moverAbajo();
                            }
                            else if (esteMero.GetType() == typeof(FichaTanque))
                            {
                                FichaTanque casting = (FichaTanque)esteMero;
                                casting.moverAbajo();
                            }
                            else if (esteMero.GetType() == typeof(FichaLetraL))
                            {
                                FichaLetraL casting = (FichaLetraL)esteMero;
                                casting.moverAbajo();
                            }
                            else if (esteMero.GetType() == typeof(FichaSerpiente))
                            {
                                FichaSerpiente casting = (FichaSerpiente)esteMero;
                                casting.moverAbajo();
                            }
                            else if (esteMero.GetType() == typeof(FichaSerpienteInvertida))
                            {
                                FichaSerpienteInvertida casting = (FichaSerpienteInvertida)esteMero;
                                casting.moverAbajo();
                            }
                            else if (esteMero.GetType() == typeof(FichaCuadrado))
                            {
                                FichaCuadrado casting = (FichaCuadrado)esteMero;
                                casting.moverAbajo();
                            }
                        }



                        verificarLineas();
                        /////

                        //crearFicha();
                        bool finish = false;

                        for (int j = 0; j < 10; j++)
                        {
                            if (conteo[0, j] == 1)
                            {
                                finish = true;
                            }
                        }

                        if (finish)
                        {
                            terminarPartida();
                        }
                        else
                        {
                            //crearFicha();
                            crearFicha2();
                        }
                    }
                }
                else if (e.Key == Key.C)
                {
                    //Verificar cuales casillas estan reconocidas como ocupadas
                    // Y cuales no -- "Testeto"
                    string array = "";
                    for (int i = 0; i < 20; i++)
                    {
                        for (int j = 0; j < 10; j++)
                        {
                            array += conteo[i, j] + " ";
                        }
                        array += "\n";
                    }
                    MessageBox.Show(array);

                    ////
                }
            }
        }
Ejemplo n.º 2
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {
                temporarizador.Interval = new TimeSpan(0, 0, 0, 0, 100);

                temporarizador.Tick += (s, a) => {
                    if (!termino)
                    {
                        //Cronometro.
                        milseg   += 100;
                        contador += 100;
                        lblmiliSegundos.Content = milseg;

                        if (milseg == 1000)
                        {
                            lblmiliSegundos.Content = (milseg = 0);
                            lblSegundos.Content     = ++seg;
                        }

                        if (seg == 60)
                        {
                            lblSegundos.Content = (seg = 0);
                            lblMinutos.Content  = ++min;
                        }

                        if (min == 60)
                        {
                            lblMinutos.Content = (min = 0);
                            lblHoras.Content   = ++hrs;
                        }

                        //En caso de que la ficha no se movio.
                        if (!seMovio && contador >= limite)
                        {
                            // Hacer un casting a la figura para ejecutar su metodo
                            // moverAbajo();
                            if (esteMero.GetType() == typeof(FichaLinea))
                            {
                                FichaLinea casting = (FichaLinea)esteMero;
                                casting.moverAbajo();
                            }
                            else if (esteMero.GetType() == typeof(FichaTanque))
                            {
                                FichaTanque casting = (FichaTanque)esteMero;
                                casting.moverAbajo();
                            }
                            else if (esteMero.GetType() == typeof(FichaLetraL))
                            {
                                FichaLetraL casting = (FichaLetraL)esteMero;
                                casting.moverAbajo();
                            }
                            else if (esteMero.GetType() == typeof(FichaSerpiente))
                            {
                                FichaSerpiente casting = (FichaSerpiente)esteMero;
                                casting.moverAbajo();
                            }
                            else if (esteMero.GetType() == typeof(FichaSerpienteInvertida))
                            {
                                FichaSerpienteInvertida casting = (FichaSerpienteInvertida)esteMero;
                                casting.moverAbajo();
                            }
                            else if (esteMero.GetType() == typeof(FichaCuadrado))
                            {
                                FichaCuadrado casting = (FichaCuadrado)esteMero;
                                casting.moverAbajo();
                            }


                            //En caso de que el movimientoAbajo anterior no fuera posible.
                            if (!esteMero.moverse)
                            {
                                verificarLineas();
                                bool finish = false;

                                //Verificar si se estanco en la fila 0.
                                for (int j = 0; j < 10; j++)
                                {
                                    if (conteo[0, j] == 1 && turno != 0)
                                    {
                                        finish = true;
                                    }
                                }

                                //Si es asi terminar la partida.
                                if (finish)
                                {
                                    terminarPartida();

                                    //De lo contrario crear una nueva figura.
                                }
                                else
                                {
                                    crearFicha2();
                                }
                            }

                            turno++;
                            contador = 0;
                        }
                        else
                        {
                            seMovio = false;
                        }
                    }
                };

                temporarizador.Start();
                //crearFicha();
                iniciarFichas();
            }
            catch (Exception ex)
            {
                string ilk = ex.Message;
            }
        }