Exemple #1
0
 //KMZWA8AWAA
 /// <summary>
 /// Constructor de la clase Juego
 /// </summary>
 /// <param name="mapas">Lista de mapas que se usaran en el juego</param>
 /// <param name="dificultad">Dificultad de juego</param>
 /// <param name="jugador">Datos del jugador</param>
 /// <param name="entradaVoz">Vaor booleano que indica el metodo de entrada del juego (Voz o teclado)</param>
 /// <param name="vidasPac">Vidas del jugador</param>
 /// <param name="hpPac">Valor de cada vida del Jugador</param>
 public Juego(Mapa mapa, String dificultad, DatosJugador jugador, Boolean entradaVoz, int vidasPac, int hpPac)
 {
     //this.listaDeMapaslvl1 = new List<Mapa>();
     //this.listaDeMapaslvl2 = new List<Mapa>();
     //this.listaDeMapaslvl3 = new List<Mapa>();
     this.mapaActual = mapa;
     this.fantasmasLvl1 = new List<Fantasma>();
     //this.fantasmasLvl2 = new List<Fantasma>();
     //this.fantasmasLvl3 = new List<Fantasma>();
     //this.separarMapasPorNivel(mapas);
     this.dificultad = dificultad;
     this.datosJugador = jugador;
     this.entradaPorVoz = entradaVoz;
     this.nivelActual = 1;
     this.r = new Random();
     this.configurarJuego(vidasPac, hpPac);
     this.estadoDelJuego = true;
     this.jugando = 1;
     this.tiempoFantasmasVulnerables = 0;
     this.tiempoAumentoVel = 0;
     this.tiempoFrutilla = 0;
     this.tiempoFrutaViva = 0;
     this.segundos = 0;
     this.iFrut = -1;
     this.jFrut = -1;
 }
 /// <summary>
 /// Constructor de la clase PacMan
 /// </summary>
 /// <param name="lado">Definira el ancho y alto del Pacman</param>
 /// <param name="x">Posicion en el eje coordenado X del Pacman</param>
 /// <param name="y">Posicion en el eje coordenado Y del Pacman</param>
 /// <param name="velocidad">Velocidad de desplazamiento del Pacman</param>
 /// <param name="nivel">Nivel actual del tablero</param>
 /// <param name="mapaActual">Tablero actual</param>
 /// <param name="vidas">Cantidad de vidas</param>
 /// <param name="hp">Valor de cada vida</param>
 /// <param name="i">Indica la posicion inicial en las filas de la matriz</param>
 /// <param name="j">Indica la posicion inicial en las columnas de la matriz</param>
 public PacMan(int lado, int x, int y, int velocidad, int nivel,  Mapa mapaActual, int vidas, int hp, int i, int j)
 {
     this.windth = lado;
     this.height = lado;
     this.x = x;
     this.y = y;
     this.velocidad = velocidad;
     this.nivel = nivel;
     this.mapaActual = mapaActual;
     this.vidas = vidas;
     this.hp = hp;
     this.hpTotal = hp;
     this.iAct = i;
     this.jAct = j;
     this.randCambairDir = new Random(DateTime.Now.Millisecond);
     this.configuracionInicialPacman();
 }
 /// <summary>
 /// Metodo contructor de la clase Fantasma
 /// </summary>
 /// <param name="direccion">Inica la direccion actual del fantasma</param>
 /// <param name="fantasma">Nombre que identifica al fantasma, puede ser ROJO, AZUL, NARANJA o ROSA</param>
 /// <param name="lado">Asigna el ancho y alto de la imagen del fantasma</param>
 /// <param name="x">Posicion en el eje coordenado X del fantasma</param>
 /// <param name="y">Posicion en el eje coordenado Y del fantasma</param>
 /// <param name="nivel">Nivel del tablero de juego actual</param>
 /// <param name="dificultad">Dificultad de juego Actual</param>
 /// <param name="m">Mapa actual en el que se esta juagdo</param>
 /// <param name="i">Posicion de la fila en la que se encuentra actualmente el fantasma</param>
 /// <param name="j">Posicion de la columna en la que se encuentra actualmente el fantasma</param>
 public Fantasma(int direccion, String fantasma, int lado, int x, int y, int nivel, String dificultad, Mapa m, int i, int j)
 {
     this.direccion = direccion;
     this.estado = 1;
     this.nombreFantasma = fantasma;
     this.windth = lado;
     this.height = lado;
     this.x = x;
     this.y = y;
     this.nivel = nivel;
     this.mapaActual = m;
     configuracionInicialDeFantasma(fantasma, nivel, dificultad);
     this.iAct = i;
     this.jAct = j;
     this.imagenActual = 0;
     this.randCambairDir = new Random(DateTime.Now.Millisecond);
 }
 private void graficarMapa(Mapa m, Graphics g)
 {
     dibujarControno(m, g);
     if (m.Dificultad == "Facil") {
         foreach (Celda celda in m.MatrizDiseño) {
             if (!celda.SePuedePasar) {
                 g.DrawImage(imagenPared[0], celda.X, celda.Y, celda.Width, celda.Heiht);
             }
         }
     } else if (m.Dificultad == "Medio") {
         foreach (Celda celda in m.MatrizDiseño) {
             if (!celda.SePuedePasar) {
                 g.DrawImage(imagenPared[3], celda.X, celda.Y, celda.Width, celda.Heiht);
             }
         }
     } else if (m.Dificultad == "Dificil") {
         foreach (Celda celda in m.MatrizDiseño) {
             if (!celda.SePuedePasar) {
                 g.DrawImage(imagenPared[2], celda.X, celda.Y, celda.Width, celda.Heiht);
             }
         }
     }
 }
 private void graficarBiscochos(Mapa m, Graphics g)
 {
     foreach (Celda celda in m.MatrizDiseño) {
         if (celda.SePuedePasar && celda.Valor == "O" && celda.Bisc.Estado) {
             switch (celda.Bisc.Tipo) {
                 case 1:
                     g.FillEllipse(Brushes.White, celda.Bisc.X, celda.Bisc.Y, 3, 3);
                     break;
                 case 2:
                     g.FillEllipse(Brushes.White, celda.Bisc.X, celda.Bisc.Y, 8, 8);
                     break;
                 case 3:
                     g.DrawImage(imgFruta, celda.Bisc.X, celda.Bisc.Y, 20, 20);
                     break;
             }
         }
     }
 }
        private void dibujarControno(Mapa m, Graphics g)
        {
            Point psi = new Point(m.MatrizDiseño[0, 0].X - 1, m.MatrizDiseño[0, 0].Y - 1);
            Point psd = new Point(m.MatrizDiseño[0, m.Columnas - 1].X + 20, m.MatrizDiseño[0, m.Columnas - 1].Y - 1);
            Point pii = new Point(m.MatrizDiseño[m.Filas - 1, 0].X - 1, m.MatrizDiseño[m.Filas - 1, 0].Y + 20);
            Point pid = new Point(m.MatrizDiseño[m.Filas - 1, m.Columnas - 1].X + 20, m.MatrizDiseño[m.Filas - 1, m.Columnas - 1].Y + 20);

            g.DrawLine(new Pen(Brushes.White, 1), psi, psd);
            g.DrawLine(new Pen(Brushes.White, 1), psi, pii);
            g.DrawLine(new Pen(Brushes.White, 1), pii, pid);
            g.DrawLine(new Pen(Brushes.White, 1), psd, pid);
        }
 /// <summary>
 /// Cambia de nivel al personaje
 /// </summary>
 /// <param name="m">Mapa del siguiente nivel</param>
 /// <param name="vel">Velocidad inicial del personaje</param>
 public void cambiarNivel(Mapa m, int vel)
 {
     this.mapaActual = m;
     this.nivel++;
     this.velocidad = vel;
 }
        private void btnAceptarConf_Click(object sender, EventArgs e)
        {
            if (txtNombre.Text != "" && cmbDificultad.SelectedIndex > -1 && cmbNivel.SelectedIndex > -1) {
                filas = (int)nudFilas.Value + 5;
                columnas = (int)nudColumnas.Value + 5;

                nivel = int.Parse(cmbNivel.SelectedItem.ToString());
                nombre = txtNombre.Text;
                dificultad = cmbDificultad.SelectedItem.ToString();
                mapa = new Mapa(filas, columnas, nivel, nombre, dificultad);

                for (int i = 0; i < columnas; i++) {
                    grdMapa.Columns.Add(new DataGridViewTextBoxColumn());
                    grdMapa.Columns[i].Width = 25;

                    grdMapa.Columns[i].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                }
                for (int i = 0; i < filas; i++) {
                    grdMapa.Rows.Add(new DataGridViewTextBoxCell());
                    grdMapa[0, i].Value = null;

                }

                for (int i = 0; i < filas; i++) {
                    for (int j = 0; j < columnas; j++) {
                        grdMapa[j, i].Value = "x";
                    }
                }
                int ic = (filas - 5) / 2;
                int jc = (columnas - 5) / 2;
                String[,] centro = generarCentroAleatorio();
                for (int i = 0; i < 5; i++) {
                    for (int j = 0; j < 5; j++) {
                        grdMapa[jc + i, ic + j].ReadOnly = true;
                        grdMapa[jc + i, ic + j].Value = centro[i, j];
                    }
                }
                btnAceptarConf.Enabled = false;
                txtNombre.Enabled = false;
                nudFilas.Enabled = false;
                nudColumnas.Enabled = false;
                cmbDificultad.Enabled = false;
                cmbNivel.Enabled = false;
                btnGuarConfDeMapa.Enabled = true;
                grdMapa.Visible = true;

                new Thread(evaluarMCamposMatriz).Start();
            } else {
                MessageBox.Show("Debe llenar todos los datos");
            }
        }
 private void cmbSeleccionMapa_SelectionChangeCommitted(object sender, EventArgs e)
 {
     foreach (Mapa mapa in this.listaDeMapas) {
         if (mapa.Nombre.Equals(cmbSeleccionMapa.SelectedItem.ToString())) {
             this.mapaAJugar = mapa;
             break;
         }
     }
 }
Exemple #10
0
        /// <summary>
        /// Hace la configuracion basica del juego, crea los fantasmas y les da posiciones iniciales al igualq ue al pacman, crea las galletas y hubica los comodines
        /// </summary>
        /// <param name="vid"></param>
        /// <param name="hp"></param>
        private void configurarJuego(int vid, int hp)
        {
            if (listaDeMapaslvl1.Count > 0 && listaDeMapaslvl2.Count > 0 && listaDeMapaslvl3.Count > 0) {
                Random rdm = new Random();
                Lvl1 = listaDeMapaslvl1.ElementAt(rdm.Next(0, listaDeMapaslvl1.Count));
                Lvl2 = listaDeMapaslvl2.ElementAt(rdm.Next(0, listaDeMapaslvl2.Count));
                Lvl3 = listaDeMapaslvl3.ElementAt(rdm.Next(0, listaDeMapaslvl3.Count));

                mapaActual = Lvl1;

                Point[] centrolvl1 = Lvl1.posicionInicalFantasmas();
                int dirSalidalvl1 = Lvl1.direccionDeSalidaDelFantasma();
                Point[] centrolvl2 = Lvl2.posicionInicalFantasmas();
                int dirSalidalvl2 = Lvl2.direccionDeSalidaDelFantasma();
                Point[] centrolvl3 = Lvl3.posicionInicalFantasmas();
                int dirSalidalvl3 = Lvl3.direccionDeSalidaDelFantasma();
                //Fantasmas del nivel 1: 1 Rojo, 1 Rosa, 1 Naranja, 2 Azul
                fantasmasLvl1.Add(new Fantasma(dirSalidalvl1, "Rojo", 19, centrolvl1[1].X, centrolvl1[1].Y, 1, this.dificultad, Lvl1, centrolvl1[0].X, centrolvl1[0].Y));
                fantasmasLvl1.Add(new Fantasma(dirSalidalvl1, "Rosa", 19, centrolvl1[1].X, centrolvl1[1].Y, 1, this.dificultad, Lvl1, centrolvl1[0].X, centrolvl1[0].Y));
                fantasmasLvl1.Add(new Fantasma(dirSalidalvl1, "Naranja", 19, centrolvl1[1].X, centrolvl1[1].Y, 1, this.dificultad, Lvl1, centrolvl1[0].X, centrolvl1[0].Y));
                for (int i = 0; i < 2; i++) {
                    fantasmasLvl1.Add(new Fantasma(dirSalidalvl1, "Azul", 19, centrolvl1[1].X, centrolvl1[1].Y, 1, this.dificultad, Lvl1, centrolvl1[0].X, centrolvl1[0].Y));
                }
                //Fantasmas del nivel 2: 2 Rojo, 2 Rosa, 2 Naranja, 2 Azul
                for (int i = 0; i < 2; i++) {
                    fantasmasLvl2.Add(new Fantasma(dirSalidalvl2, "Rojo", 19, centrolvl2[1].X, centrolvl2[1].Y, 1, this.dificultad, Lvl2, centrolvl2[0].X, centrolvl2[0].Y));
                    fantasmasLvl2.Add(new Fantasma(dirSalidalvl2, "Rosa", 19, centrolvl2[1].X, centrolvl2[1].Y, 1, this.dificultad, Lvl2, centrolvl2[0].X, centrolvl2[0].Y));
                    fantasmasLvl2.Add(new Fantasma(dirSalidalvl2, "Naranja", 19, centrolvl2[1].X, centrolvl2[1].Y, 1, this.dificultad, Lvl2, centrolvl2[0].X, centrolvl2[0].Y));
                    fantasmasLvl2.Add(new Fantasma(dirSalidalvl2, "Azul", 19, centrolvl2[1].X, centrolvl2[1].Y, 1, this.dificultad, Lvl2, centrolvl2[0].X, centrolvl2[0].Y));
                }
                //Fantasmas del nivel 3: 2 Rojo, 2 Rosa, 3 Naranja, 3 Azul
                for (int i = 0; i < 2; i++) {
                    fantasmasLvl3.Add(new Fantasma(dirSalidalvl3, "Rojo", 19, centrolvl3[1].X, centrolvl3[1].Y, 1, this.dificultad, Lvl3, centrolvl3[0].X, centrolvl3[0].Y));
                    fantasmasLvl3.Add(new Fantasma(dirSalidalvl3, "Rosa", 19, centrolvl3[1].X, centrolvl3[1].Y, 1, this.dificultad, Lvl3, centrolvl3[0].X, centrolvl3[0].Y));
                }
                for (int i = 0; i < 3; i++) {
                    fantasmasLvl3.Add(new Fantasma(dirSalidalvl3, "Naranja", 19, centrolvl3[1].X, centrolvl3[1].Y, 1, this.dificultad, Lvl3, centrolvl3[0].X, centrolvl3[0].Y));
                    fantasmasLvl3.Add(new Fantasma(dirSalidalvl3, "Azul", 19, centrolvl3[1].X, centrolvl3[1].Y, 1, this.dificultad, Lvl3, centrolvl3[0].X, centrolvl3[0].Y));
                }
                hubicarPacmanEnMapaActualInicial(vid, hp);
                hubicarComodines();
            } else {

            }
        }
Exemple #11
0
        /// <summary>
        /// Cambia el nivel del juego, cambia el mapa y demas banderas de estado
        /// </summary>
        public void cambiarNivel()
        {
            this.nivelActual++;
            if (this.nivelActual == 4) {
                this.jugando = 2;
            } else {
                this.mapaActual = this.siguienteNivel();
                this.hubicarComodines();
                this.pacMan.cambiarNivel(this.mapaActual, this.velocidadMayor());
                this.tiempoAumentoVel = 0;
                this.tiempoFantasmasVulnerables = 0;
                this.tiempoFrutilla = 0;
                this.tiempoFrutaViva = 0;
                rehubicarPacman();

            }
        }