diff --git a/.gitattributes b/.gitattributes index 76141bda613cc0a12a7474a6bcd2886aaed4aaef..de0bfc06c9a034a2bb6cdd2566ab9e67a1aab487 100644 --- a/.gitattributes +++ b/.gitattributes @@ -271,3 +271,18 @@ subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/06-Loops[[:space:]]y[[: subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/06-Loops[[:space:]]y[[:space:]]arreglos/03-Contadores[[:space:]]y[[:space:]]Bucles[[:space:]]en[[:space:]]Programación[[:space:]]While[[:space:]]DoWhile[[:space:]]y[[:space:]]For.mp4 filter=lfs diff=lfs merge=lfs -text subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/06-Loops[[:space:]]y[[:space:]]arreglos/04-Arreglos[[:space:]]Unidimensionales[[:space:]]y[[:space:]]Bidimensionales[[:space:]]en[[:space:]]Programación.mp4 filter=lfs diff=lfs merge=lfs -text subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/06-Loops[[:space:]]y[[:space:]]arreglos/05-Dibujar[[:space:]]Mapas[[:space:]]y[[:space:]]Personajes[[:space:]]en[[:space:]]Juegos[[:space:]]con[[:space:]]Arreglos[[:space:]]en[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text +subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/06-Loops[[:space:]]y[[:space:]]arreglos/06-Movimiento[[:space:]]de[[:space:]]Personajes[[:space:]]en[[:space:]]Juegos[[:space:]]con[[:space:]]Python.mp4 filter=lfs diff=lfs merge=lfs -text +subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/06-Loops[[:space:]]y[[:space:]]arreglos/07-Programación[[:space:]]de[[:space:]]Mapas[[:space:]]Bidimensionales[[:space:]]en[[:space:]]Videojuegos.mp4 filter=lfs diff=lfs merge=lfs -text +subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/07-Lectura[[:space:]]de[[:space:]]Archivos/01-Lectura[[:space:]]y[[:space:]]escritura[[:space:]]de[[:space:]]archivos[[:space:]]en[[:space:]]C[[:space:]]con[[:space:]]fstream.mp4 filter=lfs diff=lfs merge=lfs -text +subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/07-Lectura[[:space:]]de[[:space:]]Archivos/02-Lectura[[:space:]]y[[:space:]]Escritura[[:space:]]de[[:space:]]Archivos[[:space:]]en[[:space:]]Programación.mp4 filter=lfs diff=lfs merge=lfs -text +subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/08-Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos/01-Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos[[:space:]]Conceptos[[:space:]]y[[:space:]]Beneficios.mp4 filter=lfs diff=lfs merge=lfs -text +subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/08-Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos/02-Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos[[:space:]]Clases[[:space:]]e[[:space:]]Instancias[[:space:]]en[[:space:]]Java.mp4 filter=lfs diff=lfs merge=lfs -text +subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/08-Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos/03-Encapsulación[[:space:]]de[[:space:]]Datos[[:space:]]en[[:space:]]Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos.mp4 filter=lfs diff=lfs merge=lfs -text +subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/08-Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos/04-Abstracción[[:space:]]en[[:space:]]Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos.mp4 filter=lfs diff=lfs merge=lfs -text +subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/08-Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos/05-Herencia[[:space:]]en[[:space:]]Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos[[:space:]]Clases[[:space:]]y[[:space:]]Constructores.mp4 filter=lfs diff=lfs merge=lfs -text +subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/09-Finalizando[[:space:]]nuestro[[:space:]]proyecto/01-Programación[[:space:]]de[[:space:]]un[[:space:]]Juego[[:space:]]de[[:space:]]Laberinto[[:space:]]en[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text +subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/09-Finalizando[[:space:]]nuestro[[:space:]]proyecto/02-Controles[[:space:]]básicos[[:space:]]de[[:space:]]movimiento[[:space:]]en[[:space:]]videojuegos[[:space:]]con[[:space:]]programación[[:space:]]en[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text +subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/09-Finalizando[[:space:]]nuestro[[:space:]]proyecto/03-Creación[[:space:]]de[[:space:]]Clases[[:space:]]para[[:space:]]Mapas[[:space:]]en[[:space:]]Juegos[[:space:]]de[[:space:]]Programación.mp4 filter=lfs diff=lfs merge=lfs -text +subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/09-Finalizando[[:space:]]nuestro[[:space:]]proyecto/04-Conexión[[:space:]]de[[:space:]]Jugador[[:space:]]y[[:space:]]Coordenadas[[:space:]]en[[:space:]]Mapas[[:space:]]de[[:space:]]Videojuegos.mp4 filter=lfs diff=lfs merge=lfs -text +subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/09-Finalizando[[:space:]]nuestro[[:space:]]proyecto/05-Carga[[:space:]]y[[:space:]]Lectura[[:space:]]de[[:space:]]Archivos[[:space:]]para[[:space:]]Mapas[[:space:]]en[[:space:]]Juegos.mp4 filter=lfs diff=lfs merge=lfs -text +subir/Curso[[:space:]]Práctico[[:space:]]de[[:space:]]C/09-Finalizando[[:space:]]nuestro[[:space:]]proyecto/06-Colisiones[[:space:]]y[[:space:]]Movimiento[[:space:]]en[[:space:]]Juegos[[:space:]]2D[[:space:]]con[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text diff --git "a/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/05-Dibujar Mapas y Personajes en Juegos con Arreglos en C.vtt" "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/05-Dibujar Mapas y Personajes en Juegos con Arreglos en C.vtt" new file mode 100644 index 0000000000000000000000000000000000000000..5d7d43b035681f0144efc426a63eec997bb71a5c --- /dev/null +++ "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/05-Dibujar Mapas y Personajes en Juegos con Arreglos en C.vtt" @@ -0,0 +1,230 @@ +WEBVTT + +00:03.540 --> 00:09.169 +Bienvenidos de vuelta a nuestro editor. Lo que vamos a hacer esta clase es dibujar el mapa de nuestro + +00:09.169 --> 00:12.949 +juego usando los arreglos y los clubs que vimos en las que las anteriores. + +00:14.039 --> 00:20.570 +Ahora un pequeño repaso para que sepan es Slash arriba, como ya lo hemos dicho muchas veces, es la + +00:20.570 --> 00:25.449 +librería que estamos usando para usar funciones y comandos para poder imprimir a esta consola. + +00:26.339 --> 00:32.240 +Esto Dakar es una pequeña palabra que nos permite usar con facilidad el Seul, la función que usamos + +00:32.240 --> 00:38.500 +para imprimir y otras más como el seis. Sí, eso eso es la quitáramos tendría que escribir así. + +00:38.530 --> 00:44.049 +Este de dos puntos se out porque por estoy haciendo referencia a la librería Quienes + + --> +. + +00:44.049 --> 00:47.649 +Sí, usando, pero poniendo esta que arriba puede escribirlo así nada más. + +00:48.840 --> 00:56.250 +CEO CTO Y esto de acá es nuestra función principal, que es lo nuestro programa empieza a correr. + +00:57.240 --> 01:04.459 +Ahora vamos a crear un arreglo unidimensional de caracteres Si Help hongo echar Todo + +01:04.489 --> 01:13.549 +Mac y que uno de cinco. Yo voy a decir que este arreglo de caracteres tiene esta información. + +01:15.040 --> 01:22.359 +Vamos a poder puros unos pero se dan cuenta estos unos nos home enteros. + +01:22.390 --> 01:28.049 +Esto somos son caracteres. Todos estamos escribiendo un montón de unos, pero de tipo carácter Símbolos + + --> +. + +01:31.870 --> 01:40.989 +Entonces, si le puedo play, deberá puede compilar sin un problema Y CTO listo + + --> +. + +01:41.000 --> 01:44.810 +No estamos imprimiendo nada en tu estudiamos alemana la consola, pero vamos a imprimir. + +01:44.840 --> 01:47.349 +Vamos ser un Ford para imprimió el contenido de nuestro arreglo. + +01:48.439 --> 01:54.739 +Si le puedan del Ford Era nuestro look que nos permite empezar con un bloque de + +01:54.739 --> 01:58.549 +inutilización que vas a tener entero y es igual a cero. + +01:59.340 --> 02:04.049 +Lo vamos a poner la condición que es mientras y sea menor que cinco. + +02:05.140 --> 02:15.449 +Y después de cada vuelta vamos a sumar uno. Hay y es igual y más un Ya que tenemos esto. + +02:16.139 --> 02:19.990 +Vamos, A referencia a nuestra variable guapa y vamos a ir iter. + +02:19.990 --> 02:34.599 +Ando con nuestro y por cada una de las posiciones Y esto lo vamos a mandar a nuestros de alto Ya + +02:34.599 --> 02:43.349 +con esto pudiendo le play Todos del que imprime cada una de nuestras, de esos números. + +02:46.340 --> 02:50.050 +Perfecto. Ahora lo que vamos a hacer es que vamos a crear otro personaje. + +02:50.740 --> 02:53.699 +Nuestro personaje va a funcionar en un mundo de una dimensión. + +02:53.729 --> 02:58.180 +Esto que es el que sólo se va a poder mover a la izquierda y a la derecha, Luego. + +02:58.189 --> 03:03.199 +Después de hacer esto, vamos a hacerlo en dos dimensiones, en un mapa Pero Pasemos primero por lo + +03:03.199 --> 03:13.770 +primero, voy a quitar el punto de parte para que mi red lo se dibuja en uno solo y + +03:13.770 --> 03:17.849 +voy a saber la variable que se va a encargar de saber dónde está mi personaje. + +03:18.840 --> 03:23.550 +Esto de dónde está mi personaje? Se refiere a la posición actual de mi personaje. + +03:27.939 --> 03:38.240 +Puede marchar pos de puesto en el personaje home foro le dos y quiero pos de Gasol y + +03:38.240 --> 03:44.389 +voy a decir que es igual a cero y en nuestro lo lo que vamos a hacer es que vamos + +03:44.389 --> 03:49.050 +tarde cuando antes de dibujar Si el número de mi tirador, eh? + +03:50.740 --> 03:58.419 +No es igual a la oposición de miedo si no es igual, vamos a dibujar mi mapa Como + +03:58.419 --> 04:10.849 +normalmente lo dibujamos Aunque perfecto, Pero si es si es igual dos alumnes parece caso. + +04:14.340 --> 04:19.439 +Vamos a dibujar el carácter que representa el jugador en este caso podemos ser una H + +04:19.470 --> 04:31.670 +porque es home Add le voy a cambiar este mundo por una Lo que vemos aquí es que mi Ford ver + +04:31.670 --> 04:37.149 +dibujando un mapa de izquierda a derecha, pero en el caso del cual El liberador que + +04:37.149 --> 04:42.449 +es y sea no sea igual al Gio pos per dibujando el contenido del arreglo. + +04:42.939 --> 04:48.050 +Pero si es igual que es como se fruta el medio por una H que quiere decir que mi pero + +04:48.050 --> 04:57.410 +está ahí Viendo le play Podemos ver Aquí está mi jugador CEO cambió este cero por + +04:57.410 --> 05:03.949 +un mundo Mi jugador en lugar de dibujarse en la jornada cero sea dibujar en la frenada uno + +05:07.740 --> 05:11.649 +y esta acabado Así nosotros puedo seguir manipulando donde va estar el jugador? + +05:14.040 --> 05:25.689 +Dos. Esta función La ocde llamar Rodó Mac Por buscará esta función porque ahorita tenemos nuestro dibujado + +05:25.689 --> 05:30.519 +de mapa en esta parte de acá, pero lo quiero separar un poco para que puedan seguir y + +05:30.519 --> 05:32.790 +no confundirnos. Y el dibujo de mapas Text Completamente. + +05:32.790 --> 05:42.949 +Aparte, lo que voy a hacer es que voy a cortar mi función Ford y le voy a pasar a cada Tags + +05:43.740 --> 05:47.860 +el parámetro que me citó. Si yo trato de poner play o gritar no es funcional porque + +05:47.860 --> 05:52.060 +va a decir verás cosas. Por ejemplo, si no pos un existe dentro. + +05:52.060 --> 05:56.939 +Este bloque existe aquí en el menú Stac, ha declarado Pero dentro de este bloque que + +05:56.939 --> 05:59.850 +está definido por estos dos pares estrella aves no existe. + +06:00.240 --> 06:06.500 +Entonces necesito pasárselo. Cuando lo llamó, voy a poner un inf- Geopost Cuando + +06:06.500 --> 06:11.850 +yo ya me esta función en mi función principal le voy a pasar la información a través del parámetro. + +06:12.339 --> 06:17.519 +Sí, trató de poner play otra vez. No me va a dejar porque va a decir Mac cuando se ha declarado Al + +06:17.519 --> 06:22.060 +Igual quien Mac destaca. Vamos a cambiar el nombre de mapa por alguien más para + +06:22.089 --> 06:29.449 +no confundirnos. Aun así no existe. Entonces lo tengo que pasar. + +06:29.480 --> 06:33.649 +Como se lo pasó? Es muy fácil. Se lo pasó como un parámetro. + +06:46.339 --> 06:49.550 +Si me pongo play Ya puede compilar sin ningún problema. + +06:50.040 --> 06:53.959 +Pero no va a dibujar nada porque porque no estoy llamando la función. + +06:53.970 --> 06:57.750 +Entonces en mi código principal voy a llamar y función dibujar mapa. + +06:59.240 --> 07:04.379 +Le voy a pasar la posición del héroe como el primer parámetro y como segundo parámetro lo voy a pasar + +07:04.379 --> 07:11.259 +el mapa que decir que este uno se lo estoy pasando K y todo este contenido sólo + +07:11.259 --> 07:16.120 +se pasando aquí. Entonces lo va a agarrar. Iba a dibujar el mapa Dice. + +07:16.120 --> 07:20.149 +Fijan nuestro Me in está más limpio y estemos en un problema con el dibujado el mapa puedes + +07:20.149 --> 07:28.959 +venir achicar nuestro código. Dibuja el mapa Si el poco play CTO Mis Git Un error Cuál + +07:28.959 --> 07:33.699 +es el error? El error dice que esperaba un punto y coma antes de este nuestro y a + +07:33.730 --> 07:38.649 +todos nos falta poner un punto y coma ahí para poder continuar. + +07:40.139 --> 07:47.040 +Se le ponemos play Rashi Mi mapa se dibuja bien y ya no lo tengo dentro de mí me en todo + +07:47.040 --> 07:51.629 +ese pedazo de código. En este primer ejemplo ya vimos como dibujar nuestro mapa encapsulado + +07:51.629 --> 07:56.930 +en una función para tener más espacio libre, limpio dentro, dentro del área principal y + +07:56.930 --> 08:02.269 +aparte, pondrán una cornada al jugador para que nuestro mapa cuando va dibujando bache, cárceles acordonadas + +08:02.269 --> 08:07.910 +al jugador y dibujé el, el símbolo del jugador. En el próximo, en la próxima clase vamos + +08:07.910 --> 08:13.649 +a aprender como en meter los inputs para manipular la posición a su jugador, así como arreglos bidimensionales + diff --git "a/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/05-Resumen.html" "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/05-Resumen.html" new file mode 100644 index 0000000000000000000000000000000000000000..7cc9c7ce8928a0f2c461c9d54741fe4381836dcb --- /dev/null +++ "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/05-Resumen.html" @@ -0,0 +1,96 @@ + + + + + + + Dibujar Mapas y Personajes en Juegos con Arreglos en C++ + + + +
+
+

Resumen

Vamos a crear una variable con la posición de nuestro personaje y otra con un arreglo de sus posibles posiciones. El objetivo de esto es que podamos crear un ciclo for y dibujar nuestro mundo e indicar en dónde se encuentra nuestro personaje.

+

Por ahora solo podemos movernos hacia la izquierda y hacia la derecha pero más adelante vamos a programar un mapa un poco más complicado.

+
+
+ + \ No newline at end of file diff --git "a/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/06-Movimiento de Personajes en Juegos con Python.mp4" "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/06-Movimiento de Personajes en Juegos con Python.mp4" new file mode 100644 index 0000000000000000000000000000000000000000..556ba3cf63c3016c11a5628ba1f14fcb784dd689 --- /dev/null +++ "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/06-Movimiento de Personajes en Juegos con Python.mp4" @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c88da4a409a2bae6c357864ce4b1f0ca664106a7127b2f716ffa2f123891439 +size 55951730 diff --git "a/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/06-Movimiento de Personajes en Juegos con Python.vtt" "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/06-Movimiento de Personajes en Juegos con Python.vtt" new file mode 100644 index 0000000000000000000000000000000000000000..1e8d9f12829f8bb3f105b26a922d21431532bfd6 --- /dev/null +++ "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/06-Movimiento de Personajes en Juegos con Python.vtt" @@ -0,0 +1,173 @@ +WEBVTT + +00:03.439 --> 00:08.250 +podemos seguir con nuestro juego. Ahora lo que vamos a hacer es poder meter información + +00:08.279 --> 00:12.449 +usando el Sein para poder mover su personaje. Pero cómo hacemos esto? + +00:12.480 --> 00:20.649 +Vamos a con los perfil. Entonces para poder cometer información, yo voy a hacer un carácter + +00:22.539 --> 00:28.949 +que va a representar el imputado directorio puede empezar como algo fácil. + +00:33.140 --> 00:42.469 +Voy a ganar un poquito esto porque está un poco desordenado puesto y lo que voy a hacer, que voy a + +00:42.469 --> 00:50.829 +pedir un CEIM y lo voy a aventar al imputado Si no recuerdan que era seguir. + +00:50.859 --> 00:56.759 +Es el comando que utilizamos para pedir a la consola que el usuario meta una entrada y + +00:56.759 --> 00:59.049 +lo estamos almacenando. En este carácter, imputó. + +00:59.840 --> 01:04.150 +Lo que vamos a decir es que Si nuestro imputa después de haber metido el input es + +01:06.340 --> 01:12.450 +igual igual a la letra de quién es el que nuestro héroe sea buena la derecha. + +01:14.739 --> 01:19.650 +Entonces decimos que la posición de nieve es igual. + +01:20.040 --> 01:31.849 +Así misma, más uno más uno perfecto. Y con eso voy a ir moviendo mi jugar a la derecha. + +01:32.340 --> 01:37.769 +Se lo que hacer a la izquierda. Lo que puede hacer es hacer un el Shift para preguntar nuevo en + +01:37.769 --> 01:42.849 +caso de que no haya sido del imputado. Poco Pierre estado aquí. + +01:42.879 --> 01:48.980 +Es decir, si mi Vim Push fue a luego sobre la izquierda es porque vamos a hay de de + +01:48.980 --> 01:57.680 +Waste, como los juegos como próximas DIR Edit. Entonces lo agarró, pero en lugar de sumar para + +01:57.680 --> 02:01.750 +ello en la izquierda tenemos que restar. Te voy a restar uno. + +02:06.140 --> 02:08.449 +Lo que voy a hacer es agarrarme dibujado el mapa. + +02:09.539 --> 02:18.189 +No voy a poder antes de pedir el imputó y acabamos en primer mensajito que diga No + + --> +, + +02:18.219 --> 02:22.449 +no, no sobra ningún mensaje todavía nos, pero para eso más con el play. + +02:27.039 --> 02:32.340 +Y si se fijan aquí, dibujo mi personaje en la función uno que era la estado por de folk y + +02:32.340 --> 02:36.229 +ahora está esperando Miki imputa Por eso está esperando y no terminó el programa Si + + --> +. + +02:36.229 --> 02:42.949 +Yo pongo de ahora lo dibujó en la posición cero uno dos. + +02:43.340 --> 02:47.650 +Eso quiere decir que luego voy a la derecha. Sí, yo repitiera lo mismo. + +02:49.969 --> 03:00.620 +Un probó a sobre la izquierda Felicidades Cabana ser el primer control del juego No + + --> +. + +03:00.620 --> 03:03.259 +Sabemos sorprendente porque sólo podemos ver a su personaje una vez. + +03:03.289 --> 03:09.300 +Como podemos hacer que sean múltiples veces Es muy fácil para Estamos otro look Este + +03:09.300 --> 03:15.199 +lo que va a pasar. Se va a llamar el Vim Blog Entonces decir Un goleando, que sea Que + + --> +. + +03:15.199 --> 03:20.650 +Pregunte si es de Moura. Va a estar como falso porque iniciado el juego no es un ritmo ver todavía + +03:21.639 --> 03:41.169 +Llega dentro Voy a poner Mientras Ya y mover sea falso Vamos copia nuestro código de los inputs. + +03:41.199 --> 03:51.409 +Tomas comer aquí adentro? Le la idea es mientras estemos mientras no se Vim over vamos + +03:51.409 --> 03:54.270 +estar preguntando el input i va a estar dibujando el mapa. + +03:54.300 --> 04:00.050 +Eso una y otra y otra vez hasta que ya seguimos ver para forzar el Vim mover Lo que voy a hacer es que + +04:01.039 --> 04:06.550 +voy a pedir una carácter Y si mi carácter es la letra P Supongamos por pausa puede + +04:06.550 --> 04:25.819 +ser cualquiera. Pues sí que que en poder Es según la verdadero CTO, sino como Play Si + +04:25.819 --> 04:27.920 +fijado esta mi personaje donde empezó? Quiero le uno. + +04:27.949 --> 04:31.829 +Si pongo de lo a dibujar a la derecha, Si pongo tres D. + +04:31.839 --> 04:37.519 +Lo estoy moviendo y lo puedo rezar. Perfecto. Entonces es un personaje que se mueve la izquierda y + +04:37.519 --> 04:42.430 +la derecha. Incluso podemos comer Times del lugar donde van saliendo Picos te hacen daño, etcétera + + --> +. + +04:42.430 --> 04:47.769 +Pero hoy de los dejar aquí Lo que tienen que recordar es Como. + +04:47.769 --> 04:52.199 +Estoy moviendo mi personaje. Solamente estoy ha sido una variable y estoy cmd el valor de esa variable + +04:52.199 --> 04:58.139 +entero del uno dos tres por de regreso y mi dibujado se encarga de preguntar Oye + + --> +, + +04:58.170 --> 05:01.250 +es el numero. Sí, dibujó el jugador, sino dibujó el mapa. + +05:01.639 --> 05:06.180 +Y también lo que hice fue, claro, otro look para mantener preguntando infinitamente Si + +05:06.209 --> 05:11.800 +Bueno, preguntar datos esto es, mientras no sea ni mover, voy a jugar, pero cuando ya sea ni mover + +05:11.829 --> 05:18.069 +en casa que yo pongo la letra P termino. Bueno, ahora logramos ya mover a nuestro personaje. + +05:18.100 --> 05:25.040 +Generaron luz del juego como nuestro White que mientras no sea ni mover va a seguir jugando Y + +05:25.040 --> 05:28.509 +esta call, pero en otro personaje no puede sólo mover seis que la derecha. + +05:28.540 --> 05:33.069 +No estamos un mapa para poder dibujarlo o no pueden decir le mapa pueden ser el matriz. + +05:33.079 --> 05:35.709 +Pero lo que vamos a estar para estos son arreglos dimensional. + +05:35.709 --> 05:38.250 +Es nos vemos la proxima clase para seguir con esto. + diff --git "a/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/06-Resumen.html" "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/06-Resumen.html" new file mode 100644 index 0000000000000000000000000000000000000000..a097f4fe76aad7bdbc8c3c5c5c8a37965dad41a3 --- /dev/null +++ "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/06-Resumen.html" @@ -0,0 +1,134 @@ + + + + + + + Movimiento de Personajes en Juegos con Python + + + +
+
+

Resumen

¿Cómo manejar el movimiento de nuestro personaje en un juego?

+

En la creación de videojuegos, el movimiento de personajes es un componente crucial para garantizar una experiencia fluida y atractiva para el jugador. Aquí exploraremos cómo implementar dicho movimiento utilizando un ciclo de comandos básicos que permite al personaje desplazarse a la derecha e izquierda.

+

¿Cómo se utiliza el comando de entrada?

+

Para mover un personaje dentro del juego, es esencial permitir la interacción del usuario mediante la entrada de datos. Usamos el comando input() para capturar la entrada desde la consola. Este comando solicita al jugador que ingrese una opción que definirá el movimiento del personaje. Así se almacena:

+
character_input = input()
+
+

¿Cómo validar el movimiento hacia la derecha?

+

Una vez recogida la entrada, se verifica si corresponde a la dirección deseada. En este ejemplo, movemos el personaje hacia la derecha si el usuario ingresa la letra 'd':

+
if character_input == 'd':
+    hero_position = hero_position + 1
+
+

Se suma uno a la posición actual para reflejar el desplazamiento del personaje hacia la derecha en el mapa del juego.

+

¿Qué sucede al intentar mover hacia la izquierda?

+

Mover al personaje hacia la izquierda implica restar uno a la posición actual. Para capturar este movimiento, verificamos si la entrada del usuario es la letra 'a':

+
elif character_input == 'a':
+    hero_position = hero_position - 1
+
+

¿Cómo mantener activo el juego con un ciclo?

+

Para asegurarnos de que el juego continúe corriendo, se implementa un bucle que siga solicitando entradas hasta que una condición de finalización se cumpla. Esto se logra con un bucle while:

+
game_over = False
+while not game_over:
+    character_input = input()
+    # Lógica de movimiento
+
+

¿Cómo y cuándo finaliza el juego?

+

El juego se detendrá si se recibe una entrada específica destinada a finalizar el ciclo. Por ejemplo, al recibir una letra 'p', la condición game over del juego se vuelve True, terminando así la ejecución del bucle:

+
if character_input == 'p':
+    game_over = True
+
+

¿Cómo se actualiza el mapa del juego?

+

Antes de solicitar la siguiente entrada, es fundamental actualizar el estado visual del juego para reflejar la nueva posición del personaje:

+
# Dibuja el mapa y el personaje en la nueva posición
+
+

Consejos prácticos:

+
    +
  • Manejo de colisiones: Considera incorporar lógica para manejar colisiones con objetos del juego que puedan dañar al personaje.
  • +
  • Feedback visual: Asegúrate de actualizar de forma continua el display del juego para dar feedback visual inmediato al jugador.
  • +
  • Pruebas y ajustes: Realiza pruebas para ajustar la sensibilidad y la velocidad del movimiento según las entradas del jugador.
  • +
+

Con una estructura de código clara y lógica sencilla, facilitarás una dinámica de juego interactiva y entretenida. ¡No subestimes la importancia de un movimiento fluido, y sigue explorando maneras innovadoras de enriquecer tus creaciones de juego!

+
+
+ + \ No newline at end of file diff --git "a/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/07-Programaci\303\263n de Mapas Bidimensionales en Videojuegos.mp4" "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/07-Programaci\303\263n de Mapas Bidimensionales en Videojuegos.mp4" new file mode 100644 index 0000000000000000000000000000000000000000..58e2e7d1526c0ab83a337e60afad648f11647fde --- /dev/null +++ "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/07-Programaci\303\263n de Mapas Bidimensionales en Videojuegos.mp4" @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40ed4aa1d17a87ce7561649883f0ffeb4f21353a9ee5359c405af126986a6980 +size 94556872 diff --git "a/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/07-Programaci\303\263n de Mapas Bidimensionales en Videojuegos.vtt" "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/07-Programaci\303\263n de Mapas Bidimensionales en Videojuegos.vtt" new file mode 100644 index 0000000000000000000000000000000000000000..f1d0a6a78007fa73c5f4e468f44f12ab593054e7 --- /dev/null +++ "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/07-Programaci\303\263n de Mapas Bidimensionales en Videojuegos.vtt" @@ -0,0 +1,278 @@ +WEBVTT + +00:03.439 --> 00:08.429 +venidos de vuelta. Y ahora que tenemos a nuestro personaje en una sola dimensión moviéndose izquiera + +00:08.429 --> 00:12.849 +a derecha no podemos dejarlo así porque Porque un fuego de una dimensión Aunque + +00:12.849 --> 00:15.949 +podemos algo divertido con el que nos que se mueva en mapa. + +00:15.980 --> 00:20.320 +Arriba, Abajo, Izquierda Derecha! Pero antes de eso, en estados el mapa Todo + +00:20.320 --> 00:24.809 +podemos hacer esto Si quisieron hacerlo con arreglos unidimensionales Tendremos + +00:24.809 --> 00:33.619 +que repetir múltiples veces. Por ejemplo, si quiero cinco Colum una columna de cinco unidades tendrá + +00:33.619 --> 00:38.640 +que ponerlo. Si, lo cual puede ser un poco confuso porque son diferentes arreglos y + +00:38.640 --> 00:42.250 +atender esta chica No Si ya salió, os paso el siguiente etcétera Lo. + +00:42.250 --> 00:47.539 +Bueno, es que para hacer esto vamos a hacer un arreglo de dos dimensiones o bidimensional Esto + +00:47.539 --> 00:53.920 +significa que a parte de ser una niña, que es el arreglo con home que tenemos tenemos + +00:53.950 --> 00:58.850 +múltiples líneas y ahora ya existen los conceptos de línea y columna. + +00:59.439 --> 01:02.500 +Entonces lo que voy a hacer es a mi mapa que ya tengo. + +01:02.530 --> 01:07.739 +Le voy a agregar cuantas el tamaño del cual Scott el tamaño en la columna ahorita + +01:07.769 --> 01:13.750 +sería debíamos uno Queremos ser los cinco es lo que voy a hacer es agregar el tamaño de las columnas + +01:14.769 --> 01:24.409 +Un por o Por perfecto, que es con con las mismas llaves cuadradas que están acá y + +01:24.420 --> 01:27.750 +le pongo el tamaño del club. La en este caso también va a ser de cinco. + +01:29.540 --> 01:37.900 +Y para llenarlas de información Sólo abro. Ya ves, Ya Cat entró, Pongo dentro de otras llaves, La + +01:37.900 --> 01:44.359 +información de cada fila, por ejemplo, esto sería mi primera fila. + +01:44.390 --> 01:49.049 +Necesitó cinco porque es el tamaño de las columnas y es el tamaño de las filas. + +01:50.439 --> 02:03.650 +Cero uno, dos, tres, cuatro. Y con eso ya tengo mi ahora lo dimensional de cinco por cinco. + +02:06.540 --> 02:15.330 +Si le pongo play, tengo un segundo CTO nos dice que hay un error. + +02:15.360 --> 02:20.550 +Eso quiere decir que le falta un punto y coma al final de las llaves. + +02:21.740 --> 02:26.189 +El olor que nos ha marcado es porque si recuerdan Nuestra función a dibujar mapa nos + +02:26.189 --> 02:33.039 +pide como parámetro un arreglo de una dimensión. Pero ahora me arreglo como lo cambiamos ya más de + +02:33.039 --> 02:36.580 +una dimensión. O sea, ya no tiene una línea. Ya tienen múltiples líneas. + +02:36.610 --> 02:42.340 +Entonces tenemos que actualizar nuestra función para decir o que, por favor, ahora me + +02:42.340 --> 02:48.900 +vas a espetar aceptar un arreglo de dos dimensiones de cinco por cinco y ya con eso va + +02:48.900 --> 02:55.110 +a poder con Pilar sin ningún problema. CTO y se se fichan. + +02:55.139 --> 03:01.569 +Está dibujando mi arreglo de cinco por cinco. Tenemos que ajustar ciertas cosas porque habita lo está + +03:01.569 --> 03:08.849 +dibujando como si fueran donde de una dimensión. Y es lo que vamos a hacer a continuación Todo + +03:08.849 --> 03:14.520 +estados usando nuestro arreglo de cinco por cinco a nuestra función Tenemos Push hartos Fors un + +03:14.520 --> 03:20.409 +Ford para las líneas y el otro Ford para las columnas o si ustedes prefieren que es lo que voy a hacer + +03:20.409 --> 03:25.280 +es un Ford, el primero para las columnas y el siguiente para las líneas Cientos + +03:25.310 --> 03:32.210 +mi Ford y va a ser para las columnas que se que este vez va extraen crudo dibujar cada columna y + +03:32.219 --> 03:35.650 +dentro de él voy a poner otro Ford que va a ser para dibujar las líneas. + +03:39.939 --> 03:45.449 +Puede traer mi Ford con un entero, pero no puede ser y porque y ya está declarado dentro de este bloque + + --> +. + +03:46.139 --> 03:49.780 +Entonces tengo que poner P Puede ser cualquier nombre. + +03:49.810 --> 03:56.449 +No se puede hacer aquí las pero voy a dejar horita por el propósito El ejemplo como P P + +03:56.449 --> 04:10.849 +empiezan cero Mientras P sea menor que cinco P más, más P, más uno. + +04:12.240 --> 04:16.899 +Entonces ya han dado nuestro Ford. Vamos a ganar el código que se encargaba de imprimir en la consola + +04:16.899 --> 04:21.759 +la información y lo vas a poner dentro. Entonces ya tenemos nuestros dos Folds. + +04:21.790 --> 04:25.000 +Ahora lo que nos falta es leer la información del mapa. + +04:25.029 --> 04:33.550 +Bien, para poder saber cual dibujar Si se fijan aquí se Sí, y no es igual o no? + +04:34.040 --> 04:37.529 +No es igual a la función del Ebre. Okey, pero ahí estamos. + +04:37.560 --> 04:41.379 +Otra jornada. Esa es la posición de héroe de la fila. + +04:41.389 --> 04:46.550 +O podemos decirlo en ellos y vamos a bregar con la segunda posición del héroe. + +04:47.939 --> 04:57.660 +Ahora en la altura de la columna o enter. Venimos acá, Clear nuestros. + +04:57.660 --> 05:09.949 +Nada variable es con el que se va lo uno y uno y a nuestro mapa se lo vamos a pasar. + +05:16.740 --> 05:19.449 +Si se fijan también llamamos aquí abajo en otra vez. + +05:19.939 --> 05:25.850 +Todos tenemos que actualizarlo. Colón de información Col. + +05:27.240 --> 05:33.750 +Y ahora es sin mi posición de Lorette. No es igual a la posición en X. + +05:34.139 --> 05:38.360 +Que es que actualizó Dibujado una información el mapa. + +05:38.389 --> 05:40.649 +Pero era mi información. El mapa es de dos dimensiones. + +05:41.139 --> 05:51.250 +Entonces tengo que agregar aquí Pero y así estamos viendo qué información tiene dibujarla? + +05:52.839 --> 05:57.449 +Y acá si, en caso de que mi posición en mi sea la misma que el jugador Tenemos + +05:57.449 --> 06:06.050 +que checar dentro Si es la cuestión en que también puedo copiar esto. + +06:08.240 --> 06:17.829 +Si Push siempe no es igual a mi posición, pero en jet Repito lo mismo que tal En + +06:17.860 --> 06:36.189 +otro caso Dibujo H Entonces Cambiamos un poco las cosas Se puede ver un poco extraño, pero sigue siendo + +06:36.189 --> 06:38.620 +exactamente lo mismo que en el arreglo de una dimensión. + +06:38.649 --> 06:45.259 +Aquí estados checando Si mi personaje está en posición de ni en X Si no está imprimo + +06:45.259 --> 06:52.279 +la información de mi mapa En el otro caso Checa mos ahora en Cher sino esta imprimo la fusión + +06:52.279 --> 06:57.910 +del mapa. Pero si los ambos esta quién es el que se cumplió Estos dos els Mi héroe + +06:57.910 --> 07:04.850 +se pone ahí. Si me pongo play Push a nombres, olores Como cambiamos el nombre nuestro héroe + +07:05.439 --> 07:18.490 +Hora cuando cambiamos el valor con los inputs Tags que utilizarlo Como play Y esa afición Ya + +07:18.490 --> 07:21.850 +lo estoy, ya estoy bien la información, pero se sigue dibujando. + +07:23.339 --> 07:25.949 +En una línea para hacer que sean múltiples líneas. + +07:28.839 --> 07:32.850 +Vamos a poner a fuera de este for Un salto de líder. + +07:37.540 --> 07:43.490 +Entonces primero será dibujar mejor BP va a dibujar una línea, va a salir y va a ser un salto de línea + +07:43.519 --> 07:52.490 +y dibujar la siguiente poniendo play Hay Podemos ver ya mi mapa de dos dimensiones y + +07:52.500 --> 07:57.740 +puedo perfectamente mover mi personaje a la derecha y la izquierda lo está dibujando arriba y abajo + +07:57.769 --> 08:02.310 +por como estaba fijado el mapa. Producción de reglar eso para que se dirigir Si + +08:02.310 --> 08:07.050 +se fija ahorita nuestro mapa por error está dibujado lo arriba y abajo. + +08:07.639 --> 08:12.490 +Eso ya no sirve para hacer nuestros controles de arriba abajo porque ya sabe, usted nos quiere derecha + + --> +, + +08:12.519 --> 08:16.750 +pero no de los que se que funcione con y de ese modo vamos a arreglarlo. + +08:17.139 --> 08:24.810 +El error que no está causando Es que estamos leyendo esta cornada X en el y Qué + + --> +. + +08:24.810 --> 08:27.579 +Y quién peques en Canadá y se encargaba de las columnas. + +08:27.610 --> 08:33.710 +Entonces estoy diciendo en X eso, las columnas y así no tiene que ser y se enter de las columnas. + +08:33.710 --> 08:38.309 +Entonces que me lo por un llegue y este de AKP pese en cada de las filas. + +08:38.340 --> 08:43.799 +Pensé que poner un X aca lo único que se fue intercambiar los valores porque nuestro mata en lugar estar + +08:43.830 --> 08:48.309 +dibujando lo así embelesando dibujando derecho, estado triunfando, hecho eco y + +08:48.309 --> 08:51.350 +ahora poniendo play van a ver que va a funcionar bien. + +08:53.539 --> 09:03.940 +Se fue a nuestra HD australes aquí si pongo de Ya sobre la izquierda y la derecha, si me salgo de mi + +09:03.940 --> 09:08.330 +a red de mi tamaño habita. No hay problema porque no estamos asesinando esa información al arreglo + + --> +, + +09:08.360 --> 09:12.629 +pero tiene que tener mucho cuidado con los salirse a la hora de asignar información al arreglo porque + +09:12.629 --> 09:17.919 +pueden quebrar su programa En el reto. Ustedes tienen que hacer que el jugador se mueva arriba + +09:17.929 --> 09:22.549 +y abajo que exhibieron. Nuestro error de apenas va a ser muy fácil, porque prácticamente yo lo hicimos + + --> +, + +09:22.940 --> 09:24.549 +pero bueno, los dejo con el reto. + diff --git "a/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/07-Resumen.html" "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/07-Resumen.html" new file mode 100644 index 0000000000000000000000000000000000000000..d559eae147b87e05dd3ef5eaf7a275219ee6cd1f --- /dev/null +++ "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/07-Resumen.html" @@ -0,0 +1,143 @@ + + + + + + + Programación de Mapas Bidimensionales en Videojuegos + + + +
+
+

Resumen

En esta clase debemos crear un mapa (un arreglo bidimensional) con todas las posibles posiciones de nuestro héroe. Esto significa que, además de nuestro ciclo for para imprimir cada posición de nuestra columnas, debemos crear otro ciclo para imprimir las columnas (o al revés).

+

Además, debemos verificar la posición de nuestro héroe en ambas partes, filas y columnas. La forma más rápida de hacerlo es creando dos nuevas variables, heroPosX y heroPosY, para validar sus posiciones en sus respectivos ciclos.

+

En reto de esta clase es programar la funcionalidad de que nuestro jugador pueda moverse por todo el mapa, incluyendo hacia arriba y abajo, no solo a la izquierda y a la derecha.

+

Puntos extra si puedes evitar que el jugador salga del mapa, es decir, que la posición de nuestro héroe no pueda ser menor ni mayor que las posiciones de nuestro arreglo bidimensional.

+

Código de la clase:

+
void DrawMap(int HeroPosX, int HeroPosY, char GameMap[5][5]) {
+  for(int i = 0; i < 5; i++) {
+     for(int p = 0; p < 5; p++) {
+      if (i != HeroPosY)
+      {
+        cout << GameMap[p][i];
+      }
+      else
+      {
+        if (i != HeroPosY)
+        {
+          cout << GameMap[p][i];
+        }
+        else
+        {
+          cout << 'H';
+        }
+      }
+    }
+
+    // Necesitamos un salto de línea para diferenciar
+    // las filas de las columnas:
+    cout << endl;
+  }
+}
+
+int main()
+{
+  // ...
+
+  int HeroPosX = 1;
+  int HeroPosy = 1;
+  char GameMap[5][5] =
+  {
+    {'1','1','1','1','1'},
+    {'1','1','1','1','1'},
+    {'1','1','1','1','1'},
+    {'1','1','1','1','1'},
+    {'1','1','1','1','1'},
+  }
+
+  // ...
+}
+
+
+
+ + \ No newline at end of file diff --git "a/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/08-Movimiento de Personajes en Cuatro Direcciones con CIN.mhtml" "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/08-Movimiento de Personajes en Cuatro Direcciones con CIN.mhtml" new file mode 100644 index 0000000000000000000000000000000000000000..e2e285b7a98e80dc34eace1b706d6bb21bf49358 --- /dev/null +++ "b/subir/Curso Pr\303\241ctico de C/06-Loops y arreglos/08-Movimiento de Personajes en Cuatro Direcciones con CIN.mhtml" @@ -0,0 +1,31814 @@ +From: +Snapshot-Content-Location: https://platzi.com/cursos/c-plus-plus-practico/reto-moviendo-a-mi-personaje-en-mi-arreglo-bidimen/ +Subject: Movimiento de Personajes en Cuatro Direcciones con CIN +Date: Sun, 9 Nov 2025 19:18:23 -0500 +MIME-Version: 1.0 +Content-Type: multipart/related; + type="text/html"; + boundary="----MultipartBoundary--9DT1cPeXXLyYkiE41L8sYjbHrLMWGShrHsYC8seeki----" + + +------MultipartBoundary--9DT1cPeXXLyYkiE41L8sYjbHrLMWGShrHsYC8seeki---- +Content-Type: text/html +Content-ID: +Content-Transfer-Encoding: quoted-printable +Content-Location: https://platzi.com/cursos/c-plus-plus-practico/reto-moviendo-a-mi-personaje-en-mi-arreglo-bidimen/ + + Movimiento de Personajes en Cu= +atro Direcciones con CIN
  • C= +onfirmar tu correo

    Enviamos un enlace de confirmaci= +=C3=B3n a tu correo electr=C3=B3nico tomalabecker68@gmail.com

    3D"Curso

    Movimiento de Personajes en Cuat= +ro Direcciones con CIN

    Clase 26 de 47 =E2=80=A2 Curso Pr= +=C3=A1ctico de C++

    Bienvenidos, en este tercer reto tiene= +n que lograr que su personaje se mueva en las direcciones izquierda, derech= +a, arriba y abajo. +En la clase anterior ya vimos como leer la entrada de datos usando = +CIN e interpretarla con condicionales para mover a mi personaje en= + dos direcciones (izquierda y derecha), tienen que hacer lo mismo para move= +rlo arriba y abajo. +Tip: Al igual que sumamos y restamos una variable que representa el movimie= +nto lateral, tenemos que crear otra que represente el movimiento vertical, = +manipularla y pas=C3=A1rsela como par=C3=A1metro al dibujado del mapa.

    <= +/div>
    = +
    3D"Jesus

    Jesus Ivan Villalobos de la Cruz

    student=E2=80=A2
    hace= + 6 a=C3=B1os
    3D"wasd.png"
      3D"Wlly<= +header class=3D"CommentLayout-module_CommentLayout__Content__fCbVx">

      Wlly Anderson Samata Ccoya

      student=E2=80=A2
      hace 4 = +a=C3=B1os

      me ayud=C3=B2 bastante

      <= +footer class=3D"CommentLayout-module_CommentLayout__Footer__EKW1g">
    3D"Manu=<= +header class=3D"CommentLayout-module_CommentLayout__Content__fCbVx">

    Manuel Dur=C3=A1n

    Bueno esta sencillo y no se me ocurrio como usar los arrays pa= +ra hacerlo en menos lineas, ademas de que me encontre de que la libreria io= +stream solo trae 4 funciones super basicas. Intente instalar otras libreria= +s como ncurses pero se me hizo un chungo y no queria quedarme pegado con el= + reto, asi que alli va mi esperpento... salu2

    +
    = +#include = +<iostream> +#include <stdlib.h<= +/span>> + +using namespace std; + +int fillMap(= +int xmap, int ymap, int xchar,= + int ychar) +{ + + for(int i=3D0; i<ymap; i++) + { + cout << endl; + for(int j=3D0; j<xmap; j++) + { + if(xchar =3D=3D i && ych= +ar =3D=3D= + j) + { + cout << "O"; + } + else + { + cout << " "; + } + } + } +} + +int main() +{ + char gameInput; + int xmap =3D 9; + int ymap =3D 9; + int xchar =3D 2; + int ychar =3D 2; + //char map [xmap][ymap]; + + cout << "bienvenido, presiona a,s,d,w + enter para mover tu perso= +naje" << endl + << "presiona q + enter para salir" << endl;<= +/span> + + while (gameInput !=3D 'q') + { + fillMap(xmap, ymap, xchar, ychar); + cin >> gameInput; + if (gameInput =3D=3D = +'a') + { + /* mueve personaje a la izquierda */ + ychar =3D ychar - 1; + } + else if (gameInp= +ut =3D=3D= + 'd')<= +/span> + { + /* mueve personaje a la derecha */ + ychar =3D ychar + 1; + } + else if (gameInp= +ut =3D=3D= + 's')<= +/span> + { + /* mueve personaje hacia abajo */ + xchar =3D xchar + 1; + } + else if (gameInp= +ut =3D=3D= + 'w')<= +/span> + { + /* mueve personaje hacia abajo */ + xchar =3D xchar - 1; + } + else + { + if (gameInput !=3D 'q') + { + cout << "tonto, te dije que ingreses a,s,d,w + ent= +er para mover tu personaje" << endl + << "y presiona q + enter para salir" = +<<<= +/span> endl; + } + } + + } + return 0; + +}
    = +Responder
    Reportar
    3D"Manuel

    M= +anuel Alejandro Aguilar T=C3=A9llez Gir=C3=B3n

    student=E2=80=A2
    hace 7 a=C3=B1os
    #include <iostream> +#include <stdlib.h<= +/span>> + +using namespace std; + +voi= +d print_menu()= +{<= +span> + cout << "Welcome to my liberynth" << = +endl; + cout << "Here's te controls" << endl<= +/span>; + cout << "[A] to move left" << endl<= +/span>; + cout << "[D] to move right" << endl<= +/span>; + cout << "[W] to move up" << endl; + cout << "[S] to move down" << endl<= +/span>; + cout << "[P] to end game" << endl; + cout << "Every move press enter" << e= +ndl; + cout << "Tap any button to start" << = +endl; +} + +voi= +d draw_map(int HeroPosition[2][1], string map[11][15]) { + + for(int i =3D 0; i < 11 ; i++){ + for(int j =3D 0; j < 15; j++){ + if (i !=3D HeroPosition[0][= +0]= + /* = +&& j !=3D HeroPosition[0][1] */){ + cout << map[i][j]; + } else { + if (j !=3D HeroPosition[0][= +1]= +){ + cout << map[i][j]; + }else{ + cout << " H "; + } + } + } + cout << ' ' << endl; + } + +} + +int change_position(char move, int HeroPosition[2][1], bool* endGame){ + //bool localEndGame =3D *endGame; + + switch (move) { + case 'a': + HeroPositi= +on[0][1]--; + break; + case 'd': + HeroPositi= +on[0][1]++; + break; + case 's': + HeroPositi= +on[0][0]++; + break; + case 'w': + HeroPositi= +on[0][0]--; + break; + case 'p': + *endGame =3D true; + break; + } + + return HeroPosition[2<= +/span>][1]; +} + +int main(){ + char move; + int HeroPositi= +on[2][1] =3D { + {= +1}= +, <= +/span>{13} + };<= +/span> + string map[11][15] = +=3D= + {= + + {"= +||", "= +=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D",= + "=3D=3D= +=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D= +=3D", = +"=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "||"}, + {"= +||", "= + ", " "= +, " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "||"}, + {"= +||", "= + ", "=3D=3D=3D=3D=3D", " ", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", <= +span class=3D"token" style=3D"color: rgb(80, 250, 123);">" ", "=3D=3D=3D=3D= +=3D", = +"=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D",= + "||"}, + {"= +||", "= + ", "=3D=3D=3D=3D=3D", " ", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", <= +span class=3D"token" style=3D"color: rgb(80, 250, 123);">" ", "=3D=3D=3D=3D= +=3D", = +"=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", " ", "||"}, + {"= +||", "= + ", "=3D=3D=3D=3D=3D", " ", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", <= +span class=3D"token" style=3D"color: rgb(80, 250, 123);">" ", " "<= +span class=3D"token" style=3D"color: rgb(248, 248, 242);">, " ",= + " * ", "=3D= +=3D=3D=3D=3D", " ", " * ", "||"}, + {"= +||", "= + ", "=3D=3D=3D=3D=3D", " * ", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", <= +span class=3D"token" style=3D"color: rgb(80, 250, 123);">" * ", "=3D=3D=3D=3D= +=3D", = +"=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D",= + "||"}, + {"= +||", "= + ", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D= +=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D= +=3D", = +"=3D=3D=3D=3D=3D", "||"}= +, + {"= +||", "= + ", " "= +, " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " S ", "||"}, + {"= +||", "= +=3D=3D=3D=3D=3D", " ", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", " "<= +/span>, "=3D= +=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D"<= +span class=3D"token" style=3D"color: rgb(248, 248, 242);">, "=3D=3D=3D= +=3D=3D",<= +/span> "||"}<= +/span>, + {"= +||", "= + * ", " "= +, " * ", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", " ", " ", " ", " ", " ", " ", = +" * ", "||"}, + {"= +||", "= +=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D",= + "=3D=3D= +=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "=3D=3D=3D=3D= +=3D", = +"=3D=3D=3D=3D=3D", "=3D=3D=3D=3D=3D", "||"} + };<= +/span> + bool endGame =3D false; + + p= +rint_menu= +()= +; + do { + cout << ' ' << endl; + cin >> move; + + system(<= +/span>"clear"); + + HeroPosition= +[2][1] =3D change_position(move, HeroPosition, &endGame= +); + + if (HeroPos= +ition[0][0] =3D=3D 0) + HeroPositi= +on[0][0]++; + else if (HeroPosition[0][0] = +=3D=3D 10) + HeroPositi= +on[0][0]--; + else if (HeroPosition[1][0] = +=3D=3D 0) + HeroPositi= +on[1][0]++; + else if (HeroPosition[1][0] = +=3D=3D 14) + HeroPositi= +on[1][0]--; + draw_map(HeroPosition, map= +)<= +span class=3D"token" style=3D"color: rgb(248, 248, 242);">; + } while(!endGame); + =20 +}
    +

    Se borra en cada input.

    = +Responder
    Reportar
    3D"Johan

    Johan Giuseppe Mateus = +Cifuentes

    student=E2=80=A2
    hace 5 a=C3=B1os
    = +
    #inc= +lude <= +iostream> + +using namespace std; + +voi= +d DrawMap(int HeroPosX, int HeroPosY, char GameMap[5][5]) +{ + system("CLS= +")= +; + for (int i =3D 0; i < 5; i =3D i= + += + 1<= +/span>) + { + for (int j =3D 0; j < 5; j =3D j + 1) + { + + if (i !=3D HeroPosY) + { + cout << GameMap[j][i]; + } + else + { + if (j !=3D HeroPosX) + { + cout << GameMap[j][i]; + } + else + { + cout << "H"; + } + } + } + cout << endl; + } +} + +int main() +{ + int HeroPosX= + =3D 1; + int HeroPosY= + =3D 1; + bool isGameOver =3D false; + char Input =3D ' '; + char GameMap= +[<= +span class=3D"token" style=3D"color: rgb(189, 147, 249);">5][5] =3D + { + {'1', '1'= +, '1',= + '1',<= +/span> '1'}, + {'1', '1'= +, '1',= + '1',<= +/span> '1'}, + {'1', '1'= +, '1',= + '1',<= +/span> '1'}, + {'1', '1'= +, '1',= + '1',<= +/span> '1'}, + {'1', '1'= +, '1',= + '1',<= +/span> '1'}, + }; + + DrawMap(HeroPosX, HeroPosY, GameMap); + + while (isGameOver =3D=3D false) + { + cin >> Input; + + if (Inp= +ut =3D=3D 'd') + { + Hero= +PosX +=3D 1; + } + else if (Input =3D=3D 'a') + { + Hero= +PosX -=3D 1; + } + else if (Input =3D=3D 'w') + { + Hero= +PosY -=3D 1; + } + else if (Input =3D=3D 's') + { + Hero= +PosY +=3D 1; + } + else if (Input =3D=3D 'f') + { + isGameOver =3D true; + } + + DrawMap(HeroPosX= +,<= +span> HeroPosY, GameMap); + } + + return 0; +}```= +
    Responder
    Reportar
    3D"Edward

    Edward Fernandez

    student= +=E2=80=A2
    hace 7 a=C3=B1os

    =C2=A1Hola a todos!<= +/p> +

    Les dejo mi propuesta para el reto, Le a=C3=B1ad=C3=AD las colisiones al= + jugador.

    +
    = +#include = +<iostream> + +using namespace std; + +/*= +=20 + @descr= +iption: Draw the map with the player's current position in the screen. + @param= + playerPosX: Current player's position on x axis. + @param= + playerPosY: Current player's position on y axis. + */= + +void DrawMap(int= + playerPosX, int playerPosY<= +span class=3D"token" style=3D"color: rgb(248, 248, 242);">) { + cout << endl; + =20 + for (int j=3D0; j<=3D6; j++) { + for (int i=3D0; i<=3D6; i++){ + // Add the map's edges and the left/right border. + if (i=3D=3D0 || i=3D=3D6) { + if (j=3D=3D0 || j= +=3D=3D6) cout = +<<<= +span> "*"<= +/span>; + else cout << "|"; + }=20 + // Add the top/bottom border. + else if <= +span class=3D"token" style=3D"color: rgb(248, 248, 242);">(j=3D=3D0= + || j= +=3D=3D6) cout = +<< "-"; + else { + // Draw the rest of the map. + if (i =3D=3D playerP= +osX and j =3D=3D playerPosY) cout << "P"; + else cout << "."; + } + } + cout << endl; + } + + cout << endl << endl; +} + +int main(){ + int playerPosX =3D 1; + int playerPosY =3D 1; + char input =3D ' '; + bool gameOver =3D false; + + cout << "Bienvenido jugador" << endl; + + while (!gameOver) { + cout << "=C2=BFQu=C3=A9 quieres hacer?"; + cout << "Moverte a la izquierda (a) o moverte a la d= +erecha (d): "; + cin >> input; + + if (input =3D=3D 'd' and playerP= +osX <<= +/span> 5) playerPosX +=3D 1; + else if (input <= +/span>=3D=3D = +'a' and playerPosX > 1) playerPosX -=3D 1; + else if (input <= +/span>=3D=3D = +'w' and playerPosY > 1) playerPosY -=3D 1; + else if (input <= +/span>=3D=3D = +'s' and playerPosY < 5) playerPosY +=3D 1; + else if (input <= +/span>=3D=3D = +'p') gameOver =3D true; + + DrawMap(playerPosX, playerPosY); + cout << endl; + }=20 +}
    = +
    3D"marco

    marco antonio cespedes mamani

    student=E2= +=80=A2
    hace 6 a=C3=B1os
    = +

    agregue el detalle de= + introducir limites...eje x eje y

    +
    = +#include = +<iostream> +using namespace std; + +voi= +d DrawGame(int PosHeroX, int PosHeroY, int X,<= +span class=3D"token parameter"> int Y) +{ + for(int i=3D0; i<Y; i++) + { + for(int j=3D0; j<X; j++) + { + if(i !=3D PosHeroY) + { + cout << "-"; + } + else + { + if(j !=3D PosHeroX) + { + cout << "-"; + } + else + { + cout << 'H'; + } + } + } + cout << endl; + } +} + +int main() +{ + int HeroPosX= + =3D 1; + int HeroPosY= + =3D 1; + bool IsGameO= +ver =3D false; + char Input =3D ' '; + int limitY =3D 0; + int limitX =3D 0; + int limitC =3D 0; + cout << "Dibuja un mapa ingresando sus limites..."<= +span> <= +;< endl; + cout << "limite eje x..."; + cin >> limitX; + cout << "limite eje y..."; + cin >> limitY; + DrawGame(Hero= +PosX, HeroPosY, limit= +X,= + limitY); + while(IsGameOver<= +/span> =3D=3D false) + { + cin >> Input; + switch(Input<= +/span>) + { + case 'd': + if(He= +roPosX !=3D limitX-1) + { + HeroPosX++; + } else { + HeroPosX; + } + break; + case 'a': + if(He= +roPosX !=3D limitC) + { + HeroPosX--; + } else { + HeroPosX; + } + break; + case 's': + if(He= +roPosY !=3D limitY-1) + { + HeroPosY++; + } else { + HeroPosY; + } + break; + case 'w': + if(He= +roPosY !=3D limitC) + { + HeroPosY--; + } else { + HeroPosY; + } + break; + default: + = +IsGameOver =3D true; + break; + } + DrawGame(= +HeroPosX,= + HeroPosY= +, l= +imitX, limitY)= +; + } + return 0; +}
    = +
      3D"Manuel
      <= +div class=3D"CommentHeader-module_CommentHeader__TdgfD">

      Manuel Dur=C3=A1n

      student=E2=80=A2
      h= +ace 6 a=C3=B1os

      esta bueno, lo probe y esta muy bien que no se= + salga del area, ademas de que esta excelente el toque de crear las dimenci= +ones del area, felicitaciones.

    Jes=C3=BAs Everardo Berm=C3=BAdez Rodr=C3=ADguez

    student=E2=80=A2
    hace 6 a=C3=B1os
    #include <iostre= +am> +#include <windows.h= +> + +using namespace std; + +voi= +d drawMap(char gameZone[5][5<= +span class=3D"token parameter" style=3D"color: rgb(248, 248, 242);">],int x,int y){ + system("cls"); + for(int i =3D 0; i < 5; i++){ + for(int j =3D 0; j < 5; j++){ + if(y =3D=3D i && x =3D=3D j){ + gameZone[i][j] =3D 'h'; + cout << gameZone[i][j]; + } + else{ + gameZone[i][j] =3D '.'; + cout << gameZone[i][j]; + } + } + cout << endl; + } +} + +int main() +{ + char gameZone[5][5]; + int x =3D 0,y =3D 0; + bool isGameOver =3D false; + char movement =3D ' '; +=09 + dr= +awMap(gameZone,x,y); +=09 + while(!= +isGameOver) + { + cin >> movement; + switch(movement){ + case 'a':=20 + x--; + if(x < 0) + x++; + break; + case 'd':=20 + x++; + if(x > 4) + x--; + break; + case 'w':=20 + y--; + if(y < 0) + y++; + break; + case 's':=20 + y++; + if(y > 4) + y--; + break; + case 'p': isGameOver =3D true; + break; + default: cout << "Opcion Invalida" << endl;= + + break; + } + drawMap(gameZone,x,y); + } +=09 + return 0; +=09 +}```= +
    3D"Carlos

    Carlos Nassif Trejo Ga= +rcia

    student=E2=80=A2
    hace 5 a=C3=B1os
    <= +/div>
    #include= + &lt;iostream&gt; +#include &lt;array&gt; + +using namespace std; + +// R= +ecorriendo un arreglo y dibujandolo +void drawMap(char gameMap[]<= +span class=3D"token parameter" style=3D"color: rgb(248, 248, 242);">[5],= + int mapSize, int x, int y)= + {= + + + for ( int i =3D 0; i &lt; mapSize= +;<= +span> i++= + ) { + + cout &lt;&lt; endl; + for ( int j =3D 0; j &lt; mapSize; j++ ) { + + // Dibujar mapa o jugador + if ( ( i =3D=3D y ) &<= +/span>amp;&a= +mp;amp; ( x =3D=3D j ) ){ + cout &lt;&lt; 'H'; + } + else { + cout &lt;&lt; gameMap[i<= +span class=3D"token" style=3D"color: rgb(248, 248, 242);">][j]; + } + + } + } +} + + +// R= +ellenando un arreglo +void fillMap( char gameM= +ap[][5], int mapSize ) { + const char EMPTY =3D '1'; // constante de lugar vacio + + = +// Recorriendo el arreglo y rellenando + for ( int i =3D 0; i &lt; = +mapSize;<= +/span> i++ ) { + for ( int j =3D 0; j &lt; mapSize; j++ ) { + gameMap[i][j] =3D EMPTY; + } + } +} + +int main() { + // Constant + const int mapSize =3D 5; + + = +// Mapa y coordenadas de jugador + char gameMap[mapSize][mapSize]; + int heroPosX =3D 1; + int heroPosY =3D 1; + + = +// track de seguir jugando + bool keepPlaying =3D true; + + = +// Entrada de jugador y rellenando mapa + char input =3D ' '; + fillMap( gameMap, mapSize ); + + = +// TMover al jugador por el mapa acorde a la entrada del usuario + while ( keepPlaying ) { + // Dibujando mapa + drawMap( gameMap, mapSize, heroPosX, heroPosY <= +/span>); + + // Tomando input del usuario + cin &gt;&gt; input; + + // Cambiando la posicion del jugador dependiendo del input + + // Posicion en X + if ( input =3D=3D 'd' ) { + heroPosX++; + } + else if ( input = +=3D=3D 'a' ) { + heroPosX--; + } + + // Posicion en Y + else if ( input = +=3D=3D 'w' ) { + heroPosY--; + } + else if ( input = +=3D=3D 's' ) { + heroPosY++; + } + + // GameOver + else if ( input = +=3D=3D 'p' ) { + keepPlaying =3D false; + } + + } + + return 0; +} +
    Responder
    Reportar
    3D"Alejandro

    Alejandro Urrea Gi= +raldo

    student=E2=80=A2
    hace 6 a=C3=B1os
    = +

    Eje= +rcicio resuelto!

    +
      +
    • Matriz de 4x5
    • +
    • Incluye comprobaci=C3=B3n de l=C3=ADmites para evitar desbordamiento +
    • Posici=C3=B3n de jugador almacenada en vector
    • +
    +
    = +#include = +&lt;iostream&gt; + +using namespace std; + +voi= +d DrawMap(int hPos[2]= +, char gMap[4][5]){ + for(int i=3D0;i&lt;4;i++){ + for(int j=3D0;j&lt;5;j++){ + if(j!=3DhPos[0]-1= +){= + + cout&lt;&lt;gMap[i][j]&lt= +;&lt;&quo= +t;= + &a= +mp;quot;; + }else{ + if(i!=3DhPos[1]-1){ + cout&lt;&lt;gMap[i<= +span class=3D"token" style=3D"color: rgb(248, 248, 242);">][j]&lt= +;&lt;&quo= +t;= + &a= +mp;quot;; + }else{ + cout&lt;&lt;&quot;X &quot;; + } + } + } + cout&lt;&lt;endl; + } +} + +int main() +{ + bool IsGameO= +ver=3Dfalse= +; + char pMove=3D' '; + int heroPos[2]=3D{1,1}; + char Gamemap= + [4][5]{ + {'1','1','1','1','1'}, + {'1','1','1','1','1'}, + {'1','1','1','1','1'}, + {'1','1','1','1','1'} + }= +; + + while(IsGameOver<= +span class=3D"token" style=3D"color: rgb(248, 248, 242);">=3D=3Dfalse){ + DrawMap(heroPos,Gamemap); + cout&lt;&lt;&quot; &quot;; + cin&gt;&gt;pMove; + switch(pMove){ + + case 'a': + if(heroPos[0]!=3D1){ + heroPos[0]--; + } + break; + + case 'd': + if(heroPos[0]!=3D5){ + heroPos[0]++; + } + break; + + case 'w': + if(heroPos[1]!=3D1){ + heroPos[1]--; + } + break; + + case 's': + if(heroPos[1]!=3D4){ + heroPos[1]++; + } + break; + + case 'x': + IsGa= +meOver=3D= +true; + break; + } + + } + + return 0; +}
    = +
    3D"Oscar

    Oscar Arbey Junca

    student=E2=80=A2
    hace 7 a=C3=B1os

    Buenas noches aqui dejo mi solucio= +n al reto

    +
    = +#include = +<iostream> +using namespace std; +void DrawMap ( int HeroPosX , int HeroPosY , char GameMap[5][5]) +{ + for (int Columnas =3D 0; Columnas < 5; Columnas++) + { + for ( int Filas =3D 0; Filas < 5; Filas ++) + { + if (Columnas !=3D HeroPosY) + { + cout <<GameMap[Filas][Columnas]= +; + } + else + { + if (Filas !=3D HeroPosX) + { + cout <<GameMap[Filas][Columnas]; + } + else + { + cout << 'X'; + } + } + } + cout<<endl; + } +} + +int main() +{ + + int HeroPosX= + = +=3D 1= +; + int HeroPosY= + =3D 1; + bool IsGameO= +ver =3D false; + char Input =3D ' '; + char GameMap= +[<= +span class=3D"token" style=3D"color: rgb(189, 147, 249);">5][5] =3D { {'0','0','0','0'= +,<= +span class=3D"token" style=3D"color: rgb(80, 250, 123);">'0'}, + {'0','0','0'= +,<= +span class=3D"token" style=3D"color: rgb(80, 250, 123);">'0','0'}, + {'0','0','0'= +,<= +span class=3D"token" style=3D"color: rgb(80, 250, 123);">'0','0'}, + {'0','0','0'= +,<= +span class=3D"token" style=3D"color: rgb(80, 250, 123);">'0','0'}, + {'0','0','0'= +,<= +span class=3D"token" style=3D"color: rgb(80, 250, 123);">'0','0'}, + }; + + + DrawMap(HeroPosX, HeroPosY ,GameMap); + + while (IsGa= +meOver =3D=3D false) + { + cin >> Input ; + + if (Input =3D=3D 'd' | Input =3D=3D'D') + { + HeroPosX= + =3D HeroPos= +X + 1; + } + else if (Input =3D=3D 'a' | Input =3D=3D'A') + { + HeroPosX= + =3D HeroPos= +X -1<= +/span>; + } + + else if (Input =3D=3D 'w' | Input =3D=3D'W') + { + //HeroPosX =3DHeroPosX; + HeroPosY= + =3D HeroPos= +Y - 1; + + } + else if (Input =3D=3D 's' | Input =3D=3D'S') + { + //HeroPosX =3DHeroPosX; + HeroPosY= + =3D HeroPos= +Y + 1; + } + + + else if (Input =3D=3D 'p' | Input=3D=3D 'P') + { + IsGameOv= +er =3D true; + } + + DrawMap(HeroPosX, HeroPosY ,GameMap); + } + return 0; +} +```Muchas g= +racias
    3D"Sebastian

    Seb= +astian Andree Lopera Quevedo

    student=E2=80=A2
    hace 5 a= +=C3=B1os
    #include <iostream> + +using namespace std; + +voi= +d drawMap(int heroPosV, int heroPosH, char gameMap[4][5]) +{ + for(int j =3D 0; j < 4; j++) + { + for(int i =3D 0; i < 5; i++) + { + if(j !=3D heroPosV || i !=3D = +heroPosH)= + + { + cout << gameMap[j][i]; + } + else + { + cout << 'H'; + } + } + cout << endl; + } +} + +int main() +{ + int posicionH =3D 2; + int posicionV =3D 0; + char mapa[4][5] <= +span class=3D"token" style=3D"color: rgb(248, 248, 242);">=3D + { + {'0', '0', '0', = +'0', '= +0'}, + {'0', '0', '0', = +'0', '= +0'}, + {'0', '0', '0', = +'0', '= +0'}, + {'0', '0', '0', = +'0', '= +0'} + }= +; + bool gameOver =3D false; + + drawMap(= +posicionV, posicionH, mapa); + + char input; + + while(!gameOver) + { + cin >> input; + + switch(input) + { + case 'd': + posicionH ++; + break; + case 'a': + posicionH --; + break; + case 'w': + posicionV --; + break; + case 's': + posicionV ++; + break; + case 'e': + gameOver =3D true; + break; + default: + cout << "Ja?" << endl; + break; + } + + drawMap(posicionV, posicionH, mapa); + } + + return 0; +}
    = +
    3D"Fernando

    Fernand= +o Jes=C3=BAs Paredes Rios

    student=E2=80=A2
    hace 5 a=C3= +=B1os
    void DrawMap(int HeroPosX, int HeroPosY, char GameMap[5][5]) +{ + for (int i =3D 0; i < 5; i <= +span class=3D"token" style=3D"color: rgb(248, 248, 242);">=3D = +i + 1= +)<= +span> + { + for (int j =3D 0; j < 5; j++) = +{ + if (i !=3D HeroPosY){ + cout << GameMap[j][i]; + }else{ + if (j !=3D HeroPosX) + { + cout << GameMap[j][i]; + } else + { + cout << 'H'; + } + + } + } + cout << endl; + + } + + +} + +int main() { + + int HeroPosX= + = +=3D 1= +; + int HeroPosY= + =3D 1; + bool IsGameO= +ver =3D false; + char Input =3D ' '; + char GameMap= +[<= +span class=3D"token" style=3D"color: rgb(189, 147, 249);">5][5] =3D + { + {'1', '1', '1', '1', '1'}, + {'1', '1', '1', '1', '1'}, + {'1', '1', '1', '1', '1'}, + {'1', '1', '1', '1', '1'}, + {'1', '1', '1', '1', '1'} + }; + + DrawMap(HeroPosX, HeroPosY, GameMap); + + while (IsGa= +meOver =3D=3D false) + { + cin >> Input; + + if (Inp= +ut =3D=3D 'd') + { + Hero= +PosX =3D Her= +oPosX + 1; + }else if (Input =3D=3D 'a') + { + Hero= +PosX =3D Her= +oPosX - 1; + }else if (Input =3D=3D 'p') + { + IsGa= +meOver =3D true; + }else if (Input =3D=3D 'w') + { + Hero= +PosY =3D Her= +oPosY - 1; + }else if (Input =3D=3D 's') + { + Hero= +PosY =3D Her= +oPosY + 1; + } + + DrawMap(HeroPosX= +,<= +span> HeroPosY, GameMap); + } + + return 0; +}```= +
    Responder
    Reportar
    3D"David

    David Lara

    student=E2=80=A2<= +a href=3D"https://platzi.com/comentario/1525076/">
    hace 5 a=C3=B1os

    Les dejo mi versi=C3=B3n:

    +
    = +#include = +<iostream> + +using namespace std; +void drawMap(int heroPosX, int heroPosY, char gameMap[5][5]) +{ + for(int i =3D 0; i < 5; i++) //for columnas + { + for(int p =3D 0; p < 5; p++) //for filas + { + if(i !=3D heroPosY) + { + cout << gameMap[p= +][i]; + + }else + { + if(p !=3D heroPosX<= +span class=3D"token" style=3D"color: rgb(248, 248, 242);">) + { + cout << gameMap[p][i]; + } else + { + cout << 'H'; + } + + } + } + cout << endl; + + } +} +int main() +{ + int heroPosX =3D 1; + int heroPosY =3D 1; + bool isGameOver =3D false; + char input =3D ' '; + + char gameMap[5][5] =3D + { + {'1', '1','1','1','1'}, + {'1', '1','1','1','1'}, + {'1', '1','1','1','1'}, + {'1', '1','1','1','1'}, + {'1', '1','1','1','1'} + }= +; + + drawMap(= +heroPosX, heroPosY, gameMap); + while(isGameOver =3D=3D false) + { + cin >> input; + + if(input =3D=3D 'd') + { + heroPosX++; + }else if(input =3D=3D 'a') + { + heroPosX--; + } else if<= +span class=3D"token" style=3D"color: rgb(248, 248, 242);">(inp= +ut =3D=3D= + 'w')<= +/span> + { + heroPosY--; + }else if(input = +=3D=3D 's') + { + heroPosY++; + } + else if (= +input =3D=3D 'p') + { + isGameOver =3D true; + } + drawMap(heroPosX, heroPosY, gameMap); + } + + + return 0; +}```= +
    Responder
    Reportar
    3D"Carlos

    Carlos Pavajeau

    student=E2=80=A2
    hace 5 a=C3=B1os
    #include <iostream> + +voi= +d draw_map(char game_map[5][5= +], int heroPositionX, int heroPositionY) +{ + for (int i =3D 0; i < 5; ++i) + { + for (int j =3D 0; j < 5; = +++j= +)<= +span> + { + if (i =3D=3D heroPosition= +Y &&a= +mp; j =3D=3D heroPositionX) + { + std::cout << 'H'; + } + else + { + std::cout << game_map[i][j= +]; + } + } + + std::cout << std::endl; + =20 + } +} + +int main() +{ + int heroPositionX =3D 0; + int heroPositionY =3D 1; + char key =3D '\000'; + bool gameOver =3D false; + char game_map[5][5] =3D {{'1', '1', '1', '1', '1'},=20 + {'1', '1', '1', '1', '1'},=20 + {'1', '1', '1', '1', '1'}, + {'1', '1', '1', '1', '1'}, + {'1', '1', '1', '1', '1'}}; + + draw_map= +(game_map, heroPositionX, heroPositionY); + + while (!gameOver) + { + std::cin >> key; + if (key =3D=3D 'd') + { + ++heroPositionX; + } + else if (key =3D=3D 'a= +')= + + { + --heroPositionX; + } + else if (key =3D=3D 'w= +')= + + { + --heroPositionY; + } + else if (key =3D=3D 's= +')= + + { + ++heroPositionY; + } + else if (key =3D=3D 'p= +')= + + { + gameOver =3D true; + } + + draw_map(game_map, heroPositionX, heroPositionY); + } + + return 0; +}
    = +
    3D"Luis

    Luis Carlos Romero Montoya

    <= +/div>
    student= +=E2=80=A2hace 5 a=C3=B1os
    `<#include= + <iostream> + +using namespace std; + +voi= +d DrawMap(int HeroPosX, int HeroPosY, char GameMap[5][5]) +{ + for(int fila =3D 0; fila < 5; fila++) + { + for(int columna =3D 0; columna<5; columna++) + { + if(fila !=3D HeroPosY) + { + cout << GameMap[columna][fila] << " ,"; + }else + { + if(columna !=3D HeroPosX) + { + cout << GameMap[columna][fila] << " ,"; + }else + { + cout << "HeroIsHere" <<= + " ,"; + } + } + } + cout << endl; + } +} + +int main() +{ + int HeroPosX= + =3D 1; + int HeroPosY= + =3D 1; + bool isGameOver =3D false; + char Input =3D ' '; + char GameMap= +[<= +span class=3D"token" style=3D"color: rgb(189, 147, 249);">5][5] =3D + { + {'1','1','1','1','1'}, + {'1','1','1','1','1'}, + {'1','1','1','1','1'}, + {'1','1','1','1','1'}, + {'1','1','1','1','1'} + }= +; + + DrawMap(HeroPosX, HeroPosY, GameMap); + + while(isGameOver =3D=3D false) + { + cin >> Input; + + if(Input =3D=3D '= +d') + { + HeroPosX= + +=3D 1; + }else if(= +Input =3D=3D 'a') + { + HeroPosX= + -=3D 1; + }else if(= +Input =3D=3D 'w') + { + HeroPosY= + -=3D 1; + }else if(= +Input =3D=3D 'z') + { + HeroPosY= + +=3D 1; + }else if(= +Input =3D=3D 'p') + { + isGameOver =3D true; + } + + DrawMap(HeroPosX, HeroPosY, GameMap); + } + + return 0; +}>= +
    Responder
    Reportar
    3D"Rafael

    Rafael Sandoval Chavar= +r=C3=ADa

    student=E2=80=A2
    hace 2 meses

    Mi versi=C3=B3n:

    +
    +\#include\<iostream> + +using *namespace* <u>std</u>; + + + +*void= +* <= +/span>DrawMap(*int* *= +HeroPosX*, *int* *HeroPosY*, *char* *GameMap*\= +[5]<= +/span>\[5]) + +{ + +    *int* i, j; + +   &#x20; + +    for(j =3D 0; j \< 5; j++) + +    { + +        for(i =3D 0; i \< <= +span class=3D"token" style=3D"color: rgb(189, 147, 249);">5; i++) + +        {          &= +nbsp;&= +;#x20; + +            if(i !=3D *HeroPosX*) + +            { + +                cout \= +<\< *GameMap*\[j]\= +[<= +span>i]; + +            }&#x20; + +            else&#x20; + +            { + +                if= +(j = +!=3D = +*HeroPosY*) + +                { + +                   = + cout \&l= +t;\< *GameMap*= +\[= +j]<= +/span>\[i]; + +                } = +els= +e { + +                   = + cout \&l= +t;\< 'H'; + +                } + +            } + +        } + +        cout \<\< endl; + +    } + +} + + + + +*int* main()<= +/span> + +{ + +    *int* posicionHeroeX =3D 1; + +    *int* posicionHeroeY =3D 1; + +    *bool* GameOver =3D false; + +    *char* input =3D ' '; + +    *char* map\[5]\[5] =3D&#x20; + +    { + +        {'1', '1', '1', '1', '1'},<= +/span> + +        {'1', '1', '1', '1', '1'},<= +/span> + +        {'1', '1', '1', '1', '1'},<= +/span> + +        {'1', '1', '1', '1', '1'},<= +/span> + +        {'1', '1', '1', '1', '1'} + +    }; + +   &#x20; + +    DrawMap(posicionHeroeX, posicionHeroeY<= +/span>, map)= +;<= +span> + + + + +    while(GameOver= + =3D=3D false) + +    { + +        cin >> input; + +        if(input =3D=3D 'd') + +        { + +            posicionHeroeX++; + +        }&#x20; + +        else if(input <= +/span>=3D=3D = +'a') + +        { + +            posicionHeroeX--; + +        } + +        else if(input <= +/span>=3D=3D = +'w') + +        { + +            posicionHeroeY--; + +        } + +        else if(input <= +/span>=3D=3D = +'s') + +        { + +            posicionHeroeY++; + +        } + +        else if(input <= +/span>=3D=3D = +'p') + +        { + +            GameOver =3D true; + +        } + +        DrawMap(posicionHeroeX= +, p= +osicionHeroeY, map); + +       &#x20; + +    } + +    return 0; + +}
    = +Responder
    Reportar
    <= +div style=3D"height: 200px;"><= +/div>