Bueno y llegamos al ejercicio final de esta parte del curso.
Vamos a hacer un ejercicio bastante completo.
Les va a tomar un poquito el tema de pensar la solución.
Yo voy a darles varias pistas.
Ustedes van a tener que hacer este ejercicio.
Van a tener que hacer algunos cálculos matemáticos algunos cálculos de lógica para resolver lo que vamos
a hacer ahora esto lo van a aprender bien cuando vean luego el curso de videojuego con C++.
Pero vamos a emular el tema del rebote de la pelota.
Vamos a ver una imagen que ahora les voy a mostrar para que vean lo que tienen que hacer.
Van a tomarse su tiempo para pensarlo.
Van a usar todas las herramientas que puedan.
Inclusive vamos a ver un par de herramientas que quiero que usen o al menos una van a tener que mostrar
un mensaje por pantalla con un texto de alguna manera concatenado cuando llegue esa parte van a tener
que usar esta construcción que les voy a mostrar ahora.
Esta construcción crea Hites lo que les va a permitir es crear un texto por pantalla con varios elementos
y arrastrarlo para que lo vean.
Y aquí por ejemplo en la ruedita van a poder agregarle elementos uno atrás del otro y aquí van a poder
meterle un texto vamos a arrastrar aquí vamos a duplicar colocarlo aquí inclusive van a poder intercalar
texto con variables por ejemplo aquí en el medio voy a borrar esto y voy a decirle que me duplique entonces
aquí puedo colocar el valor de obviamente k es igual Account y aquí van a poder poner cualquier texto
muy bien.
Esto si lo ejecutan vamos a borrar todo esto lo dejamos ahí y aquí lo que tenemos que hacer es usarlo
con la construcción print.
Venimos aquí lo colocamos aquí y esto reemplaza lo anterior qué es lo que hace esto me va a mostrar
un cartel que dice que el valor de k es igual a 1.
Finalmente esta es la única construcción nueva que yo les voy a pedir en el ejercicio porque van a tener
que mostrar constantemente la posición de la bola que la van a ir moviendo asignándole valores a las
variables.
Vamos a ver esto vamos a ver una imagen aquí tienen un dibujo más o menos hecho a mano digitalmente
pero hecho sin ningún tipo de rigurosidad de diseño donde van a moverse en un cuadrado de 25 pixels
por 25 pixels composiciones X y las posiciones disgrega verticales y horizontales van a posicionar la
bola esto que les estoy mostrando es para que ustedes vean de manera lógica lo que tienen que hacer
no tienen que hacer nada obviamente blocking.
De hecho Block no tiene ningún ninguna forma de mostrar algo gráfico por pantalla ustedes lo único que
van a tener que mostrar por pantalla es el valor de la posición de la bola.
Van a arrancar con una bola en una posición de 25 y en una posición X de 12 25 va a significar que mi
bola esté en el fondo del cuadrado en la posición C y en la posición horizontal está justo en la mitad
que es más o menos 12.
A partir de esas variables iniciales y esos valores iniciales en un bucle van a tener que mover la bola
haciendo de cuenta que la bola va rebotando y cambiando de dirección cuando la bola va subiendo y hacia
la derecha pega en el borde y ahí cambia de dirección y en X pero sigue en en C en modo ascendente cuando
se llega a la posición cero rebota cambia de posición se.
En vez de subir va bajando pero en X va manteniendo la resta hacia la izquierda cuando en X llega a
la posición cero rebota se cambia de sigue con la trayectoria descendente pero en X cambia de trayectoria
de izquierda hacia la derecha esta emulación de este movimiento lo vamos a ver muy bien en detalle ya
desarrollando el juego de una manera mucho más elaborada y van a ver que en nuestro Arkanoid de nuestro
juego arcade va a ser mucho más complejo esto porque va a tener que rebotar sobre una base que la vamos
a ir moviendo con el teclado de izquierda a derecha pero ahora para ver el ejercicio lógico en block
CLI van a tener que resolver esto una vez que peguen la vuelta completa el ejercicio va a finalizar
aunque lo vamos a dejar en un bucle interminable para que ustedes vean cuál es la manera de salir de
un bloque de un bucle interminable en block.
Bueno van a tener que pulsar muchas veces escape cuando tengan la ventana en pantalla un valor pulsando
muchas veces escape repetidamente.
Termina la ejecución de Blocking.
Ahora lo que tienen que concentrarse es crear las variables que ustedes crean necesarias para hacer
este ejercicio.
Saben que los límites son 25 de 0 a 25.
Tanto de izquierda a derecha de arriba abajo y hacer mover la bola.
Entonces lo que les pido que hagan ahora es que coloquen pausa en el video.
Tómense el tiempo necesario y si no lo pueden reservar en el día pueden volver cuando quieran a reanudar
el video o a ejecutarlo desde la posición.
A no ser el minuto y segundo del video donde lo dejaron para finalmente poder ver la resolución cuando
le den play a la parte que resta del video.
Yo voy a comenzar a mostrarles la resolución del ejercicio por pantalla así que coloquen ya pasa el
video y vamos a ir viendo paso a paso la resolución
bueno cómo le fue.
Me imagino que habrá sido un ejercicio este ejercicio va a meterlos a ustedes en este mundo de pensar
minuciosamente cada cosa probarla ejecutarla ver en qué se equivocaron.
Bueno eso es a lo que nos enfrentamos los desarrolladores cada día laboralmente y ojalá todo lo que
tengamos que resolver sea tan fácil como esto de hacer rebotar una bola.
Pero por supuesto yo he comenzado como ustedes y también al principio me ha resultado muy difícil todo
así que bueno vamos a comenzar vamos a quitar todo esto vamos a borrar esto vamos a borrar todo lo primero
que vamos a hacer es crear nuestras variables yo voy a crear varias variables la primer variable se
va a llamar límite y un bajo tope porque vamos a tener que definir los cuatro costados los cuatro límites
vamos a crear otra variable que va a ser límite izquierdo.
Voy a crear obviamente el límite derecho para marcar que tiene 25 posiciones límite pie el límite pies
la última fila de la coordenada C que va a ser 25.
Y aquí hay dos variables que vamos a crear que es Sumo.
Luego les voy a explicar cada una de las variables que estoy creando para que la uso sumó X y vamos
a crear.
Por supuesto las variables se para marcar dónde está la bola posicionada en pantalla la variable X y
nada más.
Ahora vamos a empezar a crear sus valores.
Vamos a comenzar con el límite tope límite tope vamos a aquí vamos a arrastrar un valor numérico el
límite tope cero la primer fila de arriba de todo es cero en la posición cero vamos a duplicar esto
el límite del pie va a ser 25 vamos a duplicar el límite izquierdo va a ser cero nuestra columna cero
límite derecho.
Si es un cuadrado perfecto tiene que ser 25.
Posición cero es aquí arriba toda la banda de la línea.
Toda esta fila desde la posición cero posición uno dos tres cuatro 5 va bajando hasta la posición 25
donde arranca nuestra bola posicionada y luego tenemos la columna cero Columna Uno dos tres cuatro cinco
seis hasta la columna 25 en esta posición que estoy parado ahora sería la posición 25 o 25 aquí sería
cero coma cero.
Aquí sería cero coma veinti cinco y aquí sería veinti cinco coma cero muy bien.
Volvemos al Lockley ahora vamos a usar estas dos variables que se las voy a explicar que son Limb suma
suma X le vamos a poner un 1 1 no perdón Sumo x 1 y vamos a sestear Sumo.
C menos 1.
A qué me estoy refiriendo Yor para mover la bola por pantalla.
Voy a tener que usar una variable que va a tener dos valores posibles 1 o menos 1 si yo indico que se
tiene menos 1 significa que inicialmente voy a ir subiendo en la posición C significa que al valor que
tenga yé aquí al valor que yo tenga en este momento voy a tener que ir restándole menos uno es para
eso para que del 25 el próximo movimiento la bola va a tener que pasar a la posición 13 en X porque
se va a ir moviendo hacia la derecha y la posición lleva a tener que ser 24 por eso le tengo que restar
1 h porque va a tener que ir para arriba la bola sí sé si sumo fuera positivo la bola se me saldría
de los límites porque en vez de 25 valdría 26.
Entonces yo límite de C lo tengo que ir subiendo o sea restando subiendo la bola restando el valor de
c entonces aquí Sumo x va a ser 1 aquí lo que estoy marcando con estas dos variables es el comportamiento
que va a ir teniendo la bola.
Recuerden cuantas menos zonas que va restando a la posición en la que está muy bien ahora lo que voy
a hacer es el Weyl el Weyl el principal aquí va a ocurrir todo y aquí le voy a dejar un tiro o directamente
no voy a le voy a decir que siempre no voy a salir nunca del Weyl van a salir recuerden con el escape
pulsado muchas veces para terminar el ejercicio.
Muy bien.
Qué tengo que hacer ahora.
Ahora tengo que se TIAR la posición de la bola perdón me faltaron dos variables fundamentales que son
las variables de la posición inicial de C y x x dijimos que va a estar en la posición 12 y se va a estar
en la posición 25 si yo no le digo en qué posición arranca mi bola no va a creer que arranca de la posición
cero coma cero muy bien ya tengo ubicada a mi bola aquí ya si arrancó el programa Hora ya tengo mi Bola
ubicada aquí ya tengo que los límites son 25 por 25 y ya le estoy diciendo al sistema que X va a ir
en positivo o sea me voy a ir de izquierda derecha y que hinché voy a ir de abajo hacia arriba.
Aquí tengo la bola lo que le estoy diciendo es que cuando mueva por primera vez la bola va a pasar a
ubicarse en este lugar va a subir uno en posición de llevá restar o sea que de 25 a 24 y en X va a pasar
de 12 a 13.
Hagamos de cuenta que esta es la columna 13 posición 24.
Muy bien eso es lo que nosotros indicamos al comienzo fíjense que ellos arrancó el Weyl pero previamente
ese tiempo todas mis variables.
Eso es muy importante.
En programación ustedes tienen que arrancar siempre de S Teos iniciales inicializar variables como se
dice crean las variables pero también le inicializar un valor inicial para poder arrancar con datos
ciertos muy bien.
Entonces ahora lo que tengo que hacer es mover mi bola voy a duplicar esto lo coloco adentro del Wii
Sabá esto va a repetirse en cada ciclo de repetición va a hacer esto pero aquí lo que tengo que hacer
vamos a sacar esto es una operación matemática entonces vamos a Maat y arrastramos.
Vamos a duplicarlo porque tengo que hacerlo a mí qué es lo que vamos a hacer aquí aquí lo que vamos
a hacer es vamos a arrastrar X y le vamos a decir que sumamos a X que sumó y ahora vamos a explicar
esto.
Dejen que yo vi que estas cosas aquí y se los voy a explicar lo van a tener todo muy claro me voy a
tomar el tiempo de explicar todo lo que sea necesario.
Esto lo vamos a quitar no hacía falta en este momento vamos a borrar este bloque.
Y ahora qué es lo que estoy diciendo aquí quiero que X ahora pase a valer otra cosa porque a medida
que yo haga un ciclo el valor de x o sea x y z es la posición de la bola.
La posición de la bola en cada ciclo tiene que cambiar tiene que ubicarse en otro.
Tengo que emular el movimiento esto es lo que estoy haciendo en cada ciclo es emular el movimiento esto
que estamos viendo ahora es el concepto básico de un videojuego un videojuego es una rutina una estructura
de repetición que se ejecuta n veces hasta que se cumpla una condición cuando nosotros pulsamos una
tecla y esa clase que salga un disparo de un arma y esa bala se va desplazando por la pantalla.
Lo que está ocurriendo es esta estructura de repetición donde la bala en la pantalla va cambiando de
posición.
Por supuesto se va borrando la imagen anterior y se dibuja una nueva imagen pero en otra posición siguiendo
una trayectoria eso es lo mismo que hace la bola del videojuego que vamos a hacer en este master de
desarrollo esa bola se va a ir moviendo y va va a ir rebotando por los ladrillos y se va a detectar
por supuesto la colisión y va a haber un sonido que se va a ejecutar cuando detecta que el ladrillo
es impactado el ladrillo va a desaparecer.
Bueno ahora no estamos haciendo nada de eso es algo mucho más complejo que lo van a aprender ahora estamos
emulando el movimiento de la bola en pantalla entonces cada ciclo tiene que hacer que esa bola cambia
de posición entonces X va a pasar a valer lo mismo que X más la que tenga la variable Sumo x y si sumo
X tiene un 1 significa que X se va a incrementar en 1 y si y sé aquí hay un error si se es igual hace
más o menos 1 significa que va a pasar esto 1 a la posición actual de qué iba a pasar.
Ustedes recuerden que un número sumado por un número negativo es como restarnos.
Entonces hagamos de cuenta que aquí tenemos un 25.
Entonces estamos sesteando H con qué valor con 25 más o menos 1 eso me va a dar 24 lleva pasar a valer
24 x va a pasar a valer 13 porque valía 12 más 1 Sumo x está en positivo entonces lo que tenemos aquí
es que x vale 13 y c vale 24.
Ahora qué tenemos que se TIAR ahora qué tenemos que chequear ahora.
Bueno tenemos que chequear los bordes porque si yo sigo sumando X y ahora vale 2 13a.
Después luego vale catorce.
Luego vale 15 y luego vale 25 en el momento que valga 25 yo tengo que hacer algo porque si yo sigo sumando
me voy del rectángulo del cuadrado o sea X nunca va a poder valer 26.
Tengo que lograr el rebote cuando llegó a 25 tengo que cambiar de dirección y en lugar de 25 luego vale
24 o 23 va ir cambiando de dirección.
Entonces lo que tengo que hacer aquí son los chequeos de las coordenadas.
Una vez que ya moví la bola constantemente tengo que ir chequeando las coordenadas así que vamos a introducir
en nuestro desarrollo la lógica.
Ahora tengo que preguntar muy bien.
Voy a meter aquí esto voy a tener que preguntar en primer lugar el valor de x.
Vamos a duplicar aquí y voy a preguntar que cuando X sea menor a qué vamos a ir a nuestras variables
al límite izquierdo.
Recuerden que X juega con límite izquierdo y límite derecho en la columna cero la columna 25 no juega
con límite tope y límite pie límite tope y límite pie es para separã en la coordenada vertical muy bien.
Entonces si es llegado si es menor al límite izquierdo o sea que ya ni siquiera cero es menos uno.
Voy a tener que hacer algo con la variable Sumo x vamos a duplicar esto.
Vamos a colocarlo aquí y ahora le voy a decir que sumó x es igual a 1 no importa que aquí ya era 1 porque
si si x es menor al límite izquierdo significa que estoy en una etapa del juego en una etapa del bucle
donde X venía restando en algún momento llegó a valer uno.
En otro momento llegó a valer cero y en este bucle llegó a valer menos uno como se fue del límite izquierdo
yo tengo que darle un número positivo a Sumo x aquí vamos a por supuesto a meter otras estructuras vamos
a duplicar esto aquí no hay Herzen aquí no hay es alguno son todas estructuras así terminó Elif.
Con esto no hay un él.
Ahora lo que vamos a preguntar es si X es mayor a que al límite derecho.
Ahora preguntamos la inversa me fui por el lado derecho la bola traspasó el límite derecho entonces
sumó X.
Cuánto va a valer menos uno.
Ahí ya resolví nuestros extremos izquierdo y derecho.
Muy bien ahora como se imaginarán lo que tengo que hacer es vamos a duplicar esto.
Aquí se nos va a ir un poco de pantalla.
No importa vamos a hacer lo propio con Che y aquí vamos a preguntar si es menor al límite tope y vamos
a decirle que si es menor al límite tope su molles igual a uno y lo mismo vamos a preguntar por si es
mayor el límite pie si es el mayor límite pie o sea que ya llegué al fondo a la parte baja tengo que
volver a subir y cómo subo con sumo y se iguala menos uno.
Bueno yo ya tengo todo ya hice todo si ustedes lo hicieron y les funciona o tienen que tener algo parecido
a esto.
Recuerden que en desarrollo puedo hacer de manera diferente algo y obtener el mismo resultado no significa
que lo que hice yo lo único válido y lo que hicieron ustedes esté mal pero yo les muestro como lo he
hecho yo y lo que tengo que hacer ahora es mostrar en pantalla.
Vamos a hacer Prin por pantalla voy a mostrar por pantalla y recuerden que vamos a usar esta estructura
que les mostré que me concatena ARTEX.
Bueno aquí vamos yo voy a hacer cuatro ítems porque lo que tenemos que mostrar es en qué posición C
y X se encuentra la bola.
Aquí vamos a colocar un texto muy bien y lo vamos a duplicar y vamos a colocar aquí vamos a cerrar la
ruedita aquí vamos a duplicar esto vamos a colocarlo aquí y en X lo que es lo que vamos a mostrar un
mensaje por pantalla que nos diga en qué posición está x y en qué posición estallé entonces la bola
está en X igual dejo un espacio porque si no se me va a pegar el valor al igual y aquí voy a dejar un
espacio inicial y decir y en la posición se igual otro espacio.
Bueno este es todo el ejercicio que ustedes tenían que hacer.
Vamos a probarlo vamos a ejecutarlo y vamos a ver cómo funciona.
Le doy aquí y me dice que la bola x la bola está en X igual trece y en la posición 24.
Por qué.
Porque yo ya hice las modificaciones previo al mensaje.
Si yo el printer lo hubiera colocado en primer lugar lo que me hubiera mostrado es la posición inicial
de la bola que era 12 y 25.
Como estoy subiendo aquí ya estoy en trece y 24 si le doy a aceptar me va a decir que estoy en 14 y
23.
Fíjense como está yendo hacia la derecha y hacia arriba y ahora estoy en 15 y 22 16 y 21 17 y 20 18
y 19 x se está acercando al límite derecho X se está acercando aquí al límite derecho mientras está
subiendo 20 y 17 21 22 vamos a ver qué pasa cuando lleguemos a 25 25 y 12 fíjense que coincide con el
12 con la posición y media de lo que es nuestro rectángulo y ahora me va a decir que es 26 25.
Fíjense que llegó hasta 26 y rebotó ahora está retrocediendo 24 23 22 o sea me estoy yendo ahora.
Ahora estoy haciendo este movimiento.
Este movimiento esta segunda parte es lo que estoy haciendo y sigo descontando no sé o si ahora lo que
vamos a ver es el rebote en la fila cero.
Muy bien.
Fíjense que lleva llegar a cero en algún momento va a valer menos 1 y ahí va a rebotar uno cero menos
1 y ahora se va de cero nuevamente no dejé que fuera más allá de los límites X sigue retrocediendo y
lo que nos vamos a encontrar ahora es que X va a rebotar con el límite izquierdo porque X ahora estamos
haciendo este movimiento estas dos flechas que hay aquí X va a llegar al extremo izquierdo x cuatro
tres dos uno cero menos uno y ahora X vuelve a rebotar hacia la derecha.
Estamos ahora con el algoritmo con el algoritmo de la bola rebotando en pantalla este mismo algoritmo
le sirve para cualquier desarrollo donde ustedes quieran crear este efecto de una bola rebotando en
bandas.
Es muy simple es un movimiento cuadrado en el videojuego que vamos a hacer o lo vamos a hacer mucho
más complejo donde la bola si rebota en nuestra base en una parte va a ir en una dirección si rebota
en otra parte Baire en otra no va a ser un movimiento tan digamos repetitivo de ir siempre en la misma
dirección va a haber una parte en la que rebote y va a tener un comportamiento y vamos a estar emulando
el videojuego arcade Arkanoid que nos ha hecho tan felices en tanto tantos años atrás y aún lo seguimos
jugando.
Bueno muy bien y aquí estamos llegando a repetir todo nuevamente.
Recuerden que para salir le vamos dando escape dejamos la tecla Escape pulsada muchas veces hasta que
nos libera y ahí ya tenemos la liberación de la ejecución.
A pesar de que teníamos un walkthrough bueno esto es lo que ustedes tienen que lograr darse ejercicios
de lógica.
Pueden googlear hay muchísimos ejercicios de lógica y ahí de todas las dificultades platense Udes ejercicios
inclusive que no tengan que ver con la matemática agarren un papel y desarrollen la estructura de tareas
simples como yo les mostré de cepillarse los dientes.
Bueno qué tendrían que hacer toda esa ejercitación mental la tienen que hacer esto la mente es un músculo
y en programación lo tienen que usar a full.
Esto es algo que lo van a tener que ver porque les va a crear las bases para hacer todos los desarrollos
que viene después el aprender un lenguaje de programación es lo de menos.
Una vez que ustedes desarrollan una lógica de programación y saben reconocer las estructuras lógicas
de repetición de lógica las variables cómo se manejan las funciones que es una rutina cómo voy creando
un foro ONIF si que tengo un.
Tengo un Wil tengo todas estas estructuras cuando ustedes se acostumbren a estas estructuras y a todas
están nemotécnica y toda esta lógica van a poder tomar el lenguaje de programación que ustedes quieran
y la curva de aprendizaje va a ser menor.
Así arrancan estos cursos que hay en internet que hay en YouTube les enseñamos a programar y arrancan
con un lenguaje y ese es un error garrafal es un error terrible que cometen los instructores de pretender
enseñarles a ustedes a programar y comenzar con un lenguaje de programación.
Fíjense que aquí a la derecha yo tengo el mismo código hecho en JavaScript y yo no estoy haciendo foco
ni estoy poniendo el acento en esto ni quiero que ustedes aprendan esto esto lo van a aprender después
cómo hago esto en JavaScript.
Fíjense que si yo elijo aquí PHP me cambia totalmente pero ustedes con solo leerlo van a descubrir que
no hay tanta diferencia por ahí las asignaciones de variables el cómo se escribe Uruguay es diferente
en PHP JavaScript y cómo hago ONIF y si lo pongo entre paréntesis si lleva un punto y coma después son
cosas que las van a aprender muy rápido y van a poder pasar de un lenguaje a otro.
Por eso yo he desarrollado y desarrollo en no menos de 7 lenguajes diferentes porque esto se aprende
rápido y porque dependiendo de las necesidades que van teniendo van a encontrarse con que van a tener
que usar un lenguaje u otro un paradigma u otro.
Voy a tener que desarrollar web tengo que aprender los lenguajes con los que se desarrolla web tengo
que aprender a desarrollar en aplicaciones escritorio lo mismo.
Lo bueno es que en este curso en este máster en desarrollo que ustedes están haciendo van a tener lenguajes
que es lo último lo último en programación backend donde lenguaje bobble hace sombra totalmente a lenguajes
como Java como no DJ ese es el lenguaje más rápido que van a encontrar en el universo web.
Van a tener C++ que es un lenguaje que no muere porque hoy por hoy todo se sigue desarrollando en bajo
a nivel con C++ o lenguajes C los sistemas operativos están desarrollados en C y en C++ el Windows está
desarrollado en C el Linux está desarrollado en C el lenguaje C y ustedes van a ver un desarrollo hecho
en C++ y van a reconocer estas estructuras y por último tenemos Payton que es un lenguaje web también
muy versátil muy útil para que ustedes se den una idea todo lo que es machine learning se está viendo
con lenguaje Python todo lo que es machine learning todo lo que es Wer de Bakken y se está viendo con
Peyton también es un lenguaje muy versátil muy potente digamos uno de los más potentes que hay en el
universo de desarrollo así que encima en Python pueden desarrollar para escritorio para más así que
bueno los invito a seguir.
Recuerden que no hay un orden como les dijimos en el comienzo y en la instrucción inicial de este máster
no hay un orden determinado pueden saltear secciones y ver los cursos que a ustedes les interese y los
invito a seguir aprendiendo en este curso.
Increible Master de desarrollo.
Así que nos pasamos ahora a una nueva sección.
Muchas gracias por seguir.