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); //// } } }
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; } }