1 00:00:00,940 --> 00:00:03,960 Hola, vamos a resolver el problema propuesto. 2 00:00:06,459 --> 00:00:12,080 Queríamos obtener un rombo, de cual sabíamos exactamente cuál iba a ser su tamaño. 3 00:00:14,220 --> 00:00:20,280 Aquí en pantalla tenemos uno dibujado, sin embargo, vamos a ver, vamos a pedir los datos, 4 00:00:20,440 --> 00:00:25,440 vamos a ponerle de 13 niveles de altura, y efectivamente saldría este de aquí. 5 00:00:26,300 --> 00:00:31,780 Vamos a ver cómo es el código que nos hace falta para obtener este resultado. 6 00:00:31,780 --> 00:00:34,960 bueno, este es un programa que ya tiene una pequeña entidad 7 00:00:34,960 --> 00:00:40,420 y entonces vamos a intentar en el body introducir lo que es prácticamente imprescindible 8 00:00:40,420 --> 00:00:44,539 en nuestro caso tenemos el body 9 00:00:44,539 --> 00:00:49,179 una etiqueta para pintar la palabra rombo 10 00:00:49,179 --> 00:00:52,560 y después una zona donde pone script 11 00:00:52,560 --> 00:00:53,679 y esto es lo que voy a pedir 12 00:00:53,679 --> 00:00:58,640 de momento voy a pedir un valor que sea impar 13 00:00:58,640 --> 00:01:01,179 con lo cual voy a poner niveles a cero 14 00:01:01,179 --> 00:01:03,759 voy a ir preguntando mientras que niveles 15 00:01:03,759 --> 00:01:07,079 no sea divisible entre dos 16 00:01:07,079 --> 00:01:08,640 voy a ver hasta que lo consiga 17 00:01:08,640 --> 00:01:10,560 y una vez que consiga un valor impar 18 00:01:10,560 --> 00:01:13,560 pues ya salgo de aquí y voy a pintar el rombo 19 00:01:13,560 --> 00:01:14,099 ¿de acuerdo? 20 00:01:14,540 --> 00:01:17,400 con lo cual llamaré a la función rombo con ese valor 21 00:01:17,400 --> 00:01:19,459 vamos a ver la función rombo 22 00:01:19,459 --> 00:01:20,879 que la tendremos por aquí arriba 23 00:01:20,879 --> 00:01:24,120 la función rombo pues necesita 24 00:01:24,120 --> 00:01:27,620 vamos a volver a la figura para verla más claramente 25 00:01:27,620 --> 00:01:32,599 necesita unos espacios, unos espacios iniciales 26 00:01:32,599 --> 00:01:37,700 y un asterisco, tanto en la primera como en la última línea 27 00:01:37,700 --> 00:01:40,219 y en el resto, la estructura es siempre la misma 28 00:01:40,219 --> 00:01:44,920 unos cuantos espacios, un asterisco, otros tres cuantos espacios 29 00:01:44,920 --> 00:01:47,739 y otro asterisco, y ahí acaba 30 00:01:47,739 --> 00:01:51,099 además si uno mira, está la primera línea 31 00:01:51,099 --> 00:01:53,239 que tiene poco que ver con el resto 32 00:01:53,239 --> 00:01:58,340 después todas estas líneas desde aquí hasta aquí 33 00:01:58,340 --> 00:02:02,719 en el cual se va decrementando los espacios iniciales 34 00:02:02,719 --> 00:02:04,640 e incrementando los intermedios 35 00:02:04,640 --> 00:02:08,560 ese proceso se invierte desde aquí hasta aquí 36 00:02:08,560 --> 00:02:12,680 y finalmente esta línea que es exactamente igual que la primera 37 00:02:12,680 --> 00:02:17,780 bueno, sabiendo esto vamos a dividir nuestro código en nuestras cuatro partes 38 00:02:17,780 --> 00:02:22,759 la primera línea en el cual se anuncia cuántos son los espacios iniciales 39 00:02:22,759 --> 00:02:26,199 que son justamente por la mitad de los niveles menos 1. 40 00:02:26,979 --> 00:02:28,919 El 1 es justo para pintar el asterisco. 41 00:02:29,659 --> 00:02:33,379 Con lo cual vamos a llamar a una función que se llama línea límite, 42 00:02:33,639 --> 00:02:35,319 línea límite es la primera y la última, 43 00:02:35,939 --> 00:02:40,879 en la cual incluyamos cuántos espacios le hacen falta 44 00:02:40,879 --> 00:02:44,180 y los vayamos ya decrementando para la siguiente pasada. 45 00:02:44,919 --> 00:02:46,680 No quiero tocar el código. Ahí está. 46 00:02:47,840 --> 00:02:51,240 Bueno, la segunda parte vamos recorriendo todos los niveles. 47 00:02:51,240 --> 00:02:55,419 empezamos con que los espacios intermedios solamente hay uno 48 00:02:55,419 --> 00:02:59,199 y en cada pasada los incrementaremos en dos valores 49 00:02:59,199 --> 00:03:03,159 y los espacios iniciales vamos decrementándolos pasada a pasada 50 00:03:03,159 --> 00:03:05,580 y para cada uno de ellos llamaremos a línea 51 00:03:05,580 --> 00:03:09,860 indicándole cuántos espacios iniciales hay y cuántos intermedios 52 00:03:09,860 --> 00:03:12,259 la siguiente parte del código 53 00:03:12,259 --> 00:03:18,639 inicializaremos los espacios iniciales que hacen falta y los espacios intermedios 54 00:03:18,639 --> 00:03:20,620 y vamos a pasar esa misma línea 55 00:03:20,620 --> 00:03:23,599 y ahora lo que hacemos es incrementar los espacios iniciales 56 00:03:23,599 --> 00:03:25,360 y decrementar los intermedios 57 00:03:25,360 --> 00:03:28,120 y la última línea, si hace falta 58 00:03:28,120 --> 00:03:30,719 puesto que puede haber que solamente se pida un nivel 59 00:03:30,719 --> 00:03:31,840 y entonces no nos haga falta 60 00:03:31,840 --> 00:03:35,340 la pintamos con los espacios iniciales correspondientes 61 00:03:35,340 --> 00:03:39,580 visto esto, vamos a ver estas funciones que han ido surgiendo 62 00:03:39,580 --> 00:03:43,120 la primera que tenemos es límite-línea 63 00:03:43,120 --> 00:03:45,819 en la cual solamente pintamos una línea con un asterisco 64 00:03:45,819 --> 00:03:52,500 con lo cual pintamos tantos espacios como nos digan, pintamos un asterisco y pintamos un fin de línea. 65 00:03:53,419 --> 00:04:02,240 La otra función que tenemos que ver es línea, que le pasamos cuántos espacios tiene al inicio, cuántos entre medias, 66 00:04:02,900 --> 00:04:10,099 entonces pintamos los espacios al inicio, pintamos un asterisco, pintamos los espacios al intermedio, otro asterisco y el fin de línea. 67 00:04:11,060 --> 00:04:15,680 Bueno, pintar un fin de línea, pues no ni más ni menos que hacer un documental write de br. 68 00:04:15,819 --> 00:04:18,620 pintar un asterisco, pintar un asterisco 69 00:04:18,620 --> 00:04:20,000 como su propio nombre indica 70 00:04:20,000 --> 00:04:22,759 y pintar 71 00:04:22,759 --> 00:04:24,800 un montón de espacios, pues voy a pintar 72 00:04:24,800 --> 00:04:26,720 el carácter este de aquí 73 00:04:26,720 --> 00:04:28,420 que ya saben ustedes que es la entidad 74 00:04:28,420 --> 00:04:29,959 correspondiente al espacio en HTML 75 00:04:29,959 --> 00:04:32,040 tantas veces como nos lo digan 76 00:04:32,040 --> 00:04:34,540 bueno, aquí simplemente 77 00:04:34,540 --> 00:04:36,399 lo que hacemos es que caracteres 78 00:04:36,399 --> 00:04:37,860 va recorriendo 79 00:04:37,860 --> 00:04:40,399 y va pintando ese carácter 80 00:04:40,399 --> 00:04:42,100 tantas veces como nos haga falta 81 00:04:42,100 --> 00:04:43,339 con esto 82 00:04:43,339 --> 00:04:47,199 ya tenemos completamente finalizado 83 00:04:47,199 --> 00:04:48,899 nuestro ejercicio 84 00:04:48,899 --> 00:04:50,699 les dejo este vídeo 85 00:04:50,699 --> 00:04:53,279 y ya les contaré alguna característica más 86 00:04:53,279 --> 00:04:55,399 curiosa de este problema 87 00:04:55,399 --> 00:04:57,920 que intentaremos solventar con el siguiente ejemplo 88 00:04:57,920 --> 00:04:59,339 hasta luego