[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.01,0:00:03.81,Default,,0000,0000,0000,,Una gema, ¡una hermosa y dulce gema! Dialogue: 0,0:00:03.81,0:00:08.28,Default,,0000,0000,0000,,Pero sabes que sería mejor tener todo una fila de gemas que tener sólo una. Dialogue: 0,0:00:08.28,0:00:12.56,Default,,0000,0000,0000,,Y por supuesto, ahora sabemos que la mejor manera de hacer una fila de gemas sería con un ciclo. Dialogue: 0,0:00:12.56,0:00:16.16,Default,,0000,0000,0000,,Así que usemos un ciclo para dibujar 12 gemas en una fila. Dialogue: 0,0:00:16.16,0:00:19.52,Default,,0000,0000,0000,,Vamos a ir de izquierda a derecha de la pantalla. Dialogue: 0,0:00:19.52,0:00:22.30,Default,,0000,0000,0000,,Algo así. Entonces éste será un ciclo Dialogue: 0,0:00:22.30,0:00:30.71,Default,,0000,0000,0000,,"for" definimos la variable "i" igual a cero, "i" es menor que doce, "i" más más. Dialogue: 0,0:00:30.71,0:00:35.41,Default,,0000,0000,0000,,Y luego tomamos esta línea y la movemos aquí dentro. Dialogue: 0,0:00:35.41,0:00:40.08,Default,,0000,0000,0000,,Ok, ahora tenemos 12 gemas pero en realidad están todas apiladas, una encima de otra. Dialogue: 0,0:00:40.08,0:00:43.14,Default,,0000,0000,0000,,Recuerda que queremos que estén a lo largo de la pantalla. Dialogue: 0,0:00:43.14,0:00:45.94,Default,,0000,0000,0000,,Esto significa que queremos que la "x" cambie cada vez. Dialogue: 0,0:00:45.94,0:00:49.17,Default,,0000,0000,0000,,Ahora "x" es igual a 36, pero queremos que sea diferente cada vez. Dialogue: 0,0:00:49.17,0:00:51.86,Default,,0000,0000,0000,,Esto significa que queremos que "x" dependa de "i". Dialogue: 0,0:00:51.86,0:00:55.95,Default,,0000,0000,0000,,Entonces lo que podemos hacer es simplemente escribir: "i" por 36. Dialogue: 0,0:00:55.95,0:01:02.15,Default,,0000,0000,0000,,Así que la primera "x" es 0, luego 36, luego 72, etc. etc. Dialogue: 0,0:01:02.15,0:01:04.58,Default,,0000,0000,0000,,¡Genial! Ahora tenemos una fila de gemas. Dialogue: 0,0:01:04.58,0:01:07.100,Default,,0000,0000,0000,,Y esto me recuerda aquellas escenas de Indiana Jones o Aladino, Dialogue: 0,0:01:07.100,0:01:11.09,Default,,0000,0000,0000,,donde el héroe descubre un tesoro enterrado lleno de joyas, Dialogue: 0,0:01:11.09,0:01:13.73,Default,,0000,0000,0000,,pero ellos generalmente descubren más joyas que esto. Dialogue: 0,0:01:13.73,0:01:17.02,Default,,0000,0000,0000,,¡No sólo una fila de gemas sino un montón de joyas! Dialogue: 0,0:01:17.02,0:01:21.61,Default,,0000,0000,0000,,Entonces, ¿en realidad cómo podemos hacer gemas Dialogue: 0,0:01:21.61,0:01:24.39,Default,,0000,0000,0000,,que llenen toda la pantalla? Dialogue: 0,0:01:24.39,0:01:30.12,Default,,0000,0000,0000,,Bueno, podemos empezar por repetir este ciclo "for", copiándolo y pegándolo, Dialogue: 0,0:01:30.12,0:01:33.74,Default,,0000,0000,0000,,y luego cambiando esta "y" cada vez. Dialogue: 0,0:01:33.74,0:01:36.80,Default,,0000,0000,0000,,Y aquí la cambiamos a 60, luego a 90. ¿Ok? Dialogue: 0,0:01:36.80,0:01:41.59,Default,,0000,0000,0000,,Así que ahora tenemos tres renglones de gemas, y eso está bien. Dialogue: 0,0:01:41.59,0:01:45.50,Default,,0000,0000,0000,,Pero eso se está volviendo aburrido porque todo lo que estoy haciendo Dialogue: 0,0:01:45.50,0:01:49.19,Default,,0000,0000,0000,,es copiar y pegar, y cambiar esta cosa de aquí. Dialogue: 0,0:01:49.19,0:01:52.86,Default,,0000,0000,0000,,Y normalmente en el pasado cuando nos encontrábamos escribiendo un código repetitivo como éste Dialogue: 0,0:01:52.86,0:01:57.02,Default,,0000,0000,0000,,habríamos dicho: "Oh, creo que sería mejor usar un ciclo". Dialogue: 0,0:01:57.02,0:01:58.61,Default,,0000,0000,0000,,Pero ya estamos usando un ciclo. Dialogue: 0,0:01:58.61,0:02:03.85,Default,,0000,0000,0000,,Así que ¿cuál es la solución para evitar escribir todo esto? Me refiero a copiar y pegar repetidamente. Dialogue: 0,0:02:03.85,0:02:09.02,Default,,0000,0000,0000,,Bueno, la solución es usar lo que llamamos ciclos anidados. Un ciclo dentro de otro. Dialogue: 0,0:02:09.02,0:02:12.13,Default,,0000,0000,0000,,Así que lo que vamos a hacer es un ciclo externo, Dialogue: 0,0:02:12.13,0:02:14.85,Default,,0000,0000,0000,,que va a recorrer la pantalla de arriba a abajo, Dialogue: 0,0:02:14.85,0:02:19.23,Default,,0000,0000,0000,,y luego nuestro ciclo interno es el que va ocuparse de lo que está haciendo ya, Dialogue: 0,0:02:19.23,0:02:21.98,Default,,0000,0000,0000,,que es recorrer de izquierda a derecha. Dialogue: 0,0:02:21.98,0:02:24.01,Default,,0000,0000,0000,,Déjenme mostrarles lo que quiero decir. Dialogue: 0,0:02:24.01,0:02:29.85,Default,,0000,0000,0000,,Escribimos "for" y usaremos una variable diferente, la "j", hemos estado usando "i", Dialogue: 0,0:02:29.85,0:02:36.61,Default,,0000,0000,0000,,entonces, "for", para la variable "j" igual a 0, "j" es menor que 13, "j" más más. Dialogue: 0,0:02:36.61,0:02:41.22,Default,,0000,0000,0000,,Ok, éste es nuestro ciclo externo, encargado de recorrer de arriba a abajo. Dialogue: 0,0:02:41.22,0:02:47.66,Default,,0000,0000,0000,,y luego tomamos uno de nuestros ciclos "for" anteriores y lo ponemos aquí dentro, Dialogue: 0,0:02:47.66,0:02:53.27,Default,,0000,0000,0000,,arreglamos la indentación y borramos estos ciclos anteriores. Ok. Dialogue: 0,0:02:53.27,0:02:58.11,Default,,0000,0000,0000,,Ahora tenemos todas las gems apiladas en la misma fila. Dialogue: 0,0:02:58.11,0:03:01.29,Default,,0000,0000,0000,,Ahora, el punto es cambiar la "y", ¿cierto? Dialogue: 0,0:03:01.29,0:03:04.31,Default,,0000,0000,0000,,Eso era lo que estábamos cambiando cuando copiábamos y pegábamos, Dialogue: 0,0:03:04.31,0:03:06.11,Default,,0000,0000,0000,,y ahora la "y" siempre es igual a 90. Dialogue: 0,0:03:06.11,0:03:09.44,Default,,0000,0000,0000,,Queremos cambiar la "y" para cada renglón. Dialogue: 0,0:03:09.44,0:03:15.38,Default,,0000,0000,0000,,Así que de la misma manera que "x" depende de "i", queremos que la "y" dependa de "j". Dialogue: 0,0:03:15.38,0:03:24.66,Default,,0000,0000,0000,,Entonces podemos cambiar esto de alguna manera, en que la "y" sea, digamos "j" por 30. Dialogue: 0,0:03:24.66,0:03:29.93,Default,,0000,0000,0000,,¡Tan tan! ¡Yeah! ¡Muchas gemas! \N¡Muy bien! Dialogue: 0,0:03:29.93,0:03:32.43,Default,,0000,0000,0000,,Vamos a revisar una vez más cómo funciona esto. Dialogue: 0,0:03:32.43,0:03:37.62,Default,,0000,0000,0000,,El ciclo externo crea esta variable "j" y la incrementa hasta 13. Dialogue: 0,0:03:37.62,0:03:44.34,Default,,0000,0000,0000,,Y en cada corrida de este ciclo externo se ejecuta este ciclo interno. Dialogue: 0,0:03:44.34,0:03:48.11,Default,,0000,0000,0000,,Este ciclo interno crea la variable "i" que se incrementa hasta 12. Dialogue: 0,0:03:48.11,0:03:54.73,Default,,0000,0000,0000,,Y en cada corrida del ciclo interno, dibuja una imagen en "x" y "y" que están basadas en "i" y "j". Dialogue: 0,0:03:54.73,0:03:58.99,Default,,0000,0000,0000,,Y por eso esta "i" cambia más frecuentemente que la "j". Dialogue: 0,0:03:58.99,0:04:04.74,Default,,0000,0000,0000,,Para tratar de entender esto un poco mejor, vamos a visualizar los valores de "i" y "j". Dialogue: 0,0:04:04.74,0:04:09.28,Default,,0000,0000,0000,,Entonces lo que voy a hacer es comentar esta imagen, Dialogue: 0,0:04:09.28,0:04:12.03,Default,,0000,0000,0000,,seleccionar un color de relleno, Dialogue: 0,0:04:12.03,0:04:16.80,Default,,0000,0000,0000,,y voy a usar un comando "text" para mostrar el valor de "j", así que "text(j..." Dialogue: 0,0:04:16.80,0:04:21.54,Default,,0000,0000,0000,,y luego lo voy poner en el lugar apropiado. Ok. Dialogue: 0,0:04:21.54,0:04:25.50,Default,,0000,0000,0000,,Ahora podemos ver que "j" va de 0 a 12. Dialogue: 0,0:04:25.50,0:04:31.55,Default,,0000,0000,0000,,Básicamente éstas son las posiciones de los renglones de nuestras gemas. Dialogue: 0,0:04:31.55,0:04:35.04,Default,,0000,0000,0000,,Y ahora visualizaremos "i" y nos daremos cuenta cómo cambia. Dialogue: 0,0:04:35.04,0:04:42.22,Default,,0000,0000,0000,,Así que para "i" vamos a seleccionar un color diferente. Dialogue: 0,0:04:42.22,0:04:45.92,Default,,0000,0000,0000,,Y luego vamos a poner a "i" en algún lugar. Dialogue: 0,0:04:45.92,0:04:50.03,Default,,0000,0000,0000,,Y cambiaremos la "x" para que vaya a través de la pantalla. Dialogue: 0,0:04:50.03,0:04:53.85,Default,,0000,0000,0000,,Haremos lo mismo para la "y". Ok. Dialogue: 0,0:04:53.85,0:04:59.56,Default,,0000,0000,0000,,Ahora podemos ver que la "i" va de 0 a 11. Dialogue: 0,0:04:59.56,0:05:04.69,Default,,0000,0000,0000,,Y la "i", como les había dicho, cambia más frecuentemente. Dialogue: 0,0:05:04.69,0:05:08.78,Default,,0000,0000,0000,,Y esta línea de código se ejecuta muchas más veces que esta otra. Dialogue: 0,0:05:08.78,0:05:13.86,Default,,0000,0000,0000,,Porque esta línea de código es ejecutada en cada corrida del ciclo "for" interno, Dialogue: 0,0:05:13.86,0:05:18.60,Default,,0000,0000,0000,,mientras que esta línea de código se ejecuta solamente en cada corrida del ciclo externo. Dialogue: 0,0:05:18.60,0:05:21.75,Default,,0000,0000,0000,,Así que espero que esta visualización de "i" y "j" Dialogue: 0,0:05:21.75,0:05:26.13,Default,,0000,0000,0000,,ayude a entender mejor lo que está pasando con estos ciclos anidados. Dialogue: 0,0:05:26.13,0:05:30.48,Default,,0000,0000,0000,,Ahora traigamos de regreso nuestras gemas, ¡porque están geniales! Dialogue: 0,0:05:30.48,0:05:33.64,Default,,0000,0000,0000,,Así que hay muchas cosas que puedes hacer con ciclos anidados. Dialogue: 0,0:05:33.64,0:05:37.23,Default,,0000,0000,0000,,Si tan sólo piensas en todo lo que en el mundo Dialogue: 0,0:05:37.23,0:05:39.86,Default,,0000,0000,0000,,se ve como una cuadrícula bidimensional, como un tablero de ajedrez, como un edredón, Dialogue: 0,0:05:39.86,0:05:44.24,Default,,0000,0000,0000,,las estrellas de la bandera de EU, patrones interesantes y tapices. Dialogue: 0,0:05:44.24,0:05:47.46,Default,,0000,0000,0000,,Deja volar tu imaginación, juega con este código, Dialogue: 0,0:05:47.46,0:05:49.81,Default,,0000,0000,0000,,podría ser cambiando la imagen. Dialogue: 0,0:05:49.81,0:05:53.80,Default,,0000,0000,0000,,¡Yo voy a empezar cambiándola por un corazón! Dialogue: 0,0:05:53.80,0:05:59.20,Default,,0000,0000,0000,,!Para enseñarte cuánto amo los ciclos anidados!