﻿1
00:00:04,390 --> 00:00:05,830
‫Hola y bienvenidos a esta conferencia.

2
00:00:05,830 --> 00:00:12,880
‫Vamos a aprender cómo podemos ejecutar una pieza de código un número variable de veces para que

3
00:00:12,880 --> 00:00:19,840
‫podamos imprimir todos los objetos que se superponen dentro de esta área, este componente desencadenante.

4
00:00:20,080 --> 00:00:24,190
‫Así que pueden ver aquí que cuando estamos los dos, yo estoy parado adentro y también hay una gárgola.

5
00:00:24,460 --> 00:00:29,140
‫Está imprimiendo tanto el nombre de las gárgolas como el nombre de los planos del jugador.

6
00:00:29,440 --> 00:00:31,090
‫Vamos a sumergirnos y ver cómo se hace esto.

7
00:00:32,020 --> 00:00:38,830
‫Ahora, el problema con nuestro código aquí es que nuestra matriz de actores puede tener mucho más que un solo

8
00:00:38,830 --> 00:00:44,020
‫actor, y si queremos que muestre todos los actores superpuestos, queremos hacer algo con todos

9
00:00:44,020 --> 00:00:44,800
‫esos actores.

10
00:00:45,160 --> 00:00:47,650
‫Necesitamos poder ejecutar el código.

11
00:00:47,650 --> 00:00:53,680
‫Sería muy ineficiente escribir una sentencia if para el caso en el que tenemos dos,

12
00:00:53,680 --> 00:00:58,780
‫tres, cuatro o cinco, etc. Y ciertamente nunca detectaría todos los casos porque tenemos una cantidad limitada

13
00:00:58,780 --> 00:01:00,010
‫de líneas en nuestro archivo.

14
00:01:00,640 --> 00:01:08,620
‫Así que la forma en que lidiamos con esto, queremos repetir un fragmento de código varias veces, pero un número de veces que en

15
00:01:08,620 --> 00:01:09,850
‫realidad no sabemos.

16
00:01:09,850 --> 00:01:15,610
‫Cuando estamos compilando el código, necesitamos reemplazar nuestra declaración if, donde la declaración if esencialmente dice,

17
00:01:15,610 --> 00:01:21,490
‫debo ejecutar este código o no con algo que diga, debo ejecutar este código o debo ejecutarlo

18
00:01:21,490 --> 00:01:25,090
‫muchas veces, dos veces, tres veces, cuatro veces, etc.?

19
00:01:25,570 --> 00:01:29,230
‫La forma en que hacemos esto es con algo llamado declaración salvaje.

20
00:01:29,530 --> 00:01:32,380
‫Ahora está construido de manera muy parecida a una declaración if.

21
00:01:32,380 --> 00:01:41,230
‫Entonces, mientras coloca algún tipo de valor booleano dentro de los paréntesis, y luego tenemos algunas llaves y dentro

22
00:01:41,290 --> 00:01:47,650
‫de las llaves, un bloque de código que seguirá ejecutándose una y

23
00:01:47,650 --> 00:01:54,310
‫otra vez hasta que la condición en nuestra declaración salvaje se vuelva falsa. .

24
00:01:54,310 --> 00:01:55,960
‫Por eso se llama mientras.

25
00:01:55,960 --> 00:01:59,260
‫Entonces, si bien esto es cierto, ejecute este código.

26
00:01:59,260 --> 00:02:04,570
‫Entonces, es un poco como una declaración if en la que a veces puede que no ejecute el código

27
00:02:04,570 --> 00:02:09,910
‫en absoluto, pero a diferencia de su declaración que solo puede ejecutar un fragmento de código una vez, la declaración

28
00:02:09,910 --> 00:02:14,620
‫salvaje básicamente podría seguir ejecutándolo para siempre si este valor booleano nunca se convierte en falso.

29
00:02:15,550 --> 00:02:16,990
‫Entonces, ¿por qué es esto útil?

30
00:02:16,990 --> 00:02:22,180
‫Bueno, podríamos crear un int 32 y llamarlo índice y comenzar desde cero.

31
00:02:22,990 --> 00:02:31,690
‫Y luego, cada vez que pasamos por el cuerpo de este bucle salvaje, aumentamos el valor almacenado en ese índice.

32
00:02:31,690 --> 00:02:35,830
‫Entonces podríamos decir que índice es igual a índice más uno.

33
00:02:36,700 --> 00:02:42,460
‫Ahora, en C++, hay una forma abreviada de hacer esto en lugar de tener que hacer índice más uno

34
00:02:42,460 --> 00:02:49,210
‫como este, haces más más índice, y eso solo agrega uno a lo que sea que esté almacenado en la variable de índice.

35
00:02:50,050 --> 00:02:50,440
‫Bueno.

36
00:02:50,440 --> 00:02:51,910
‫Así que empezamos de cero.

37
00:02:52,210 --> 00:02:54,700
‫Nosotros cada vez que damos una vuelta, aumentamos el índice.

38
00:02:55,060 --> 00:03:03,160
‫Y lo que podemos hacer es hacerlo de modo que solo rodeemos este bucle salvaje mientras nuestro índice esté dentro de

39
00:03:03,160 --> 00:03:05,170
‫los límites de nuestra matriz.

40
00:03:05,200 --> 00:03:11,220
‫Entonces podemos decir que el índice debe ser menor que el número de puntos de los actores.

41
00:03:11,410 --> 00:03:13,210
‫Así que ese es el tamaño de la matriz.

42
00:03:13,210 --> 00:03:19,300
‫Recuerde que cuando tenemos cinco elementos en la matriz, el último elemento de la matriz es el índice cuatro.

43
00:03:19,930 --> 00:03:28,210
‫Y entonces podemos ver que esto será cierto cuando el índice sea válido, cuando el índice cuatro sea menor que cinco.

44
00:03:28,570 --> 00:03:34,460
‫Pero tan pronto como ese índice pase el final de la matriz, cuando llegue al índice cinco, entonces el

45
00:03:34,480 --> 00:03:39,040
‫número de actor no será más cinco que no será menor que cinco.

46
00:03:39,310 --> 00:03:44,920
‫Entonces el bucle while dejará de ejecutarse y continuará con el resto de la función.

47
00:03:45,790 --> 00:03:54,700
‫Entonces, lo que eso significa es que ahora podemos tomar el código que teníamos arriba y reescribirlo, tomarlo, copiarlo, cortarlo

48
00:03:54,700 --> 00:03:57,970
‫y pegarlo aquí por un tiempo.

49
00:03:57,970 --> 00:03:58,210
‫Círculo.

50
00:03:58,210 --> 00:04:03,460
‫Pero antes de aumentar el índice, lo más importante, porque lo que vamos a hacer es reemplazar

51
00:04:03,460 --> 00:04:08,290
‫este cero donde obteníamos el actor cero, podemos reemplazarlo con el índice del actor.

52
00:04:08,890 --> 00:04:10,120
‫Así que sigamos con esto.

53
00:04:10,120 --> 00:04:11,680
‫¿Cómo funcionaría esto?

54
00:04:12,580 --> 00:04:12,790
‫Lindo.

55
00:04:12,790 --> 00:04:15,700
‫Elimine nuestra declaración if porque eso confunde un poco las cosas.

56
00:04:15,970 --> 00:04:19,960
‫Así que empezamos el valor en el índice de la variable va a ser cero.

57
00:04:20,590 --> 00:04:26,770
‫Ahora imagina que tenemos que actuar es mantener las cosas simples es cero menos que dos.

58
00:04:27,160 --> 00:04:28,330
‫Sí, así es.

59
00:04:28,690 --> 00:04:37,450
‫Así que entramos y obtenemos el actor cero, obtenemos su nombre y lo desconectamos y luego aumentamos el valor en el índice

60
00:04:37,450 --> 00:04:38,620
‫en uno.

61
00:04:38,620 --> 00:04:40,570
‫Entonces pasa de ser cero a ser uno.

62
00:04:41,380 --> 00:04:47,200
‫Ahora volvemos a evaluar la condición del ciclo while y decimos ¿es uno menos que dos?

63
00:04:47,320 --> 00:04:47,950
‫Sí, lo es.

64
00:04:48,280 --> 00:04:55,300
‫Luego podemos entrar y obtener el actor uno y luego vamos a obtener su nombre e imprimir su nombre.

65
00:04:55,600 --> 00:05:02,140
‫Luego aumentamos el índice nuevamente al índice dos y hacemos la pregunta nuevamente en el ciclo while diciendo

66
00:05:02,350 --> 00:05:03,850
‫¿dos menos que dos?

67
00:05:04,240 --> 00:05:05,710
‫Bueno, la respuesta es no.

68
00:05:05,950 --> 00:05:11,800
‫Así que nos saltamos el cuerpo del ciclo while y continuamos y ejecutamos el resto del código.

69
00:05:12,520 --> 00:05:15,090
‫Así que eso es básicamente lo que queremos lograr.

70
00:05:15,100 --> 00:05:22,930
‫Queremos imprimir el nombre de cada actor en la matriz, y eso es lo que hará este fragmento de

71
00:05:22,930 --> 00:05:23,440
‫código.

72
00:05:23,680 --> 00:05:26,200
‫Avancemos, compilémoslo y comprobemos que tengo razón.

73
00:05:26,350 --> 00:05:32,980
‫Si continuamos y presionamos reproducir y entramos en el cuadro, puede ver que solo estábamos superponiendo el jugador

74
00:05:32,980 --> 00:05:33,400
‫BP.

75
00:05:33,850 --> 00:05:36,070
‫¿Y si vamos a buscar nuestra gárgola?

76
00:05:36,310 --> 00:05:41,020
‫Si lo metemos solo en el rebote, podéis ver que conseguimos solapar la gárgola.

77
00:05:41,050 --> 00:05:43,030
‫Pero, ¿y si yo también intervengo?

78
00:05:43,360 --> 00:05:50,040
‫Ahora puede ver que está imprimiendo tanto el jugador como la gárgola superpuestos en el mismo marco.

79
00:05:50,050 --> 00:05:52,060
‫Así que nuestro bucle salvaje está funcionando.

80
00:05:52,060 --> 00:05:58,390
‫Está ejecutando un fragmento de código varias veces cuando hay varios actores en la matriz.

81
00:05:58,570 --> 00:06:04,540
‫Ahora, debido a que este patrón es tan común, tenemos algún tipo de índice y lo aumentamos cada vez que pasamos

82
00:06:04,540 --> 00:06:05,500
‫por el ciclo.

83
00:06:05,860 --> 00:06:15,250
‫De hecho, hay una abreviatura para esto en C++, y si escribe for en su código de Visual Studio, entonces hay un

84
00:06:15,250 --> 00:06:23,850
‫fragmento para un bucle de cuatro aquí que puede expandir y puede ver que esta es una estructura general.

85
00:06:23,860 --> 00:06:25,390
‫Tiene algo llamado talla T aquí.

86
00:06:25,390 --> 00:06:29,200
‫Podemos reemplazar eso con INT 32 para nuestros propósitos.

87
00:06:29,710 --> 00:06:36,220
‫Y esencialmente lo que esto dice es que hay tres declaraciones dentro de los paréntesis del ciclo for.

88
00:06:36,370 --> 00:06:42,940
‫El primero es equivalente a donde configuramos nuestra variable de índice antes de nuestro ciclo while.

89
00:06:43,840 --> 00:06:48,820
‫La segunda es la condición que es equivalente a lo que ponemos dentro de nuestro ciclo while.

90
00:06:49,600 --> 00:06:54,460
‫Y puede ver que podríamos reemplazar el conteo con actores punto num.

91
00:06:54,730 --> 00:07:01,150
‫Y luego, el último bit es básicamente el plus, ya sea que lo coloque antes o después, el

92
00:07:01,150 --> 00:07:07,180
‫índice no es demasiado importante, pero puede ver que esto aumenta el valor en el índice.

93
00:07:07,180 --> 00:07:10,810
‫Entonces es equivalente a la línea que ponemos al final de nuestro bucle.

94
00:07:11,560 --> 00:07:17,890
‫Entonces, esto solo reúne todo en una línea lo que teníamos que distribuir en múltiples usando nuestro

95
00:07:17,890 --> 00:07:18,700
‫bucle salvaje.

96
00:07:18,880 --> 00:07:20,320
‫Así que aquí hay un desafío simple para ti.

97
00:07:20,320 --> 00:07:23,230
‫Convierta su bucle waah en un bucle for.

98
00:07:23,530 --> 00:07:30,220
‫Vas a copiar y el cuerpo del código cambiará el índice de ese índice de nombre a I.

99
00:07:30,220 --> 00:07:36,490
‫Por lo general, usamos la abreviatura en bucles de I, solo una abreviatura para indexar realmente y compilar

100
00:07:36,490 --> 00:07:38,560
‫y probar reproducciones de video.

101
00:07:41,800 --> 00:07:42,130
‫Bueno.

102
00:07:42,130 --> 00:07:42,700
‫Bienvenido de nuevo.

103
00:07:42,730 --> 00:07:44,680
‫Así que esto debería ser bastante sencillo.

104
00:07:44,680 --> 00:07:46,810
‫No queremos el índice más más aquí.

105
00:07:47,170 --> 00:07:49,510
‫Así que vamos a cortar el resto.

106
00:07:50,100 --> 00:07:54,310
‫Un cambio sobre dónde estamos indexando la matriz de actores con la variable de índice.

107
00:07:54,310 --> 00:07:56,550
‫Vamos a cambiar eso a IE la variable.

108
00:07:56,560 --> 00:07:58,420
‫Está disponible solo dentro de este bucle for.

109
00:07:58,420 --> 00:08:04,700
‫Esa es otra ventaja de la sintaxis de bucle completo: la variable IE solo está disponible, solo está disponible

110
00:08:04,960 --> 00:08:10,150
‫dentro del bucle completo, mientras que cuando la declaramos aquí en el bucle while,

111
00:08:10,150 --> 00:08:16,960
‫está disponible fuera, lo que contamina los índices que podemos usar más adelante para que podamos eliminar ese bucle salvaje.

112
00:08:16,960 --> 00:08:23,170
‫Y puedes ver que el bucle completo está mucho más condensado y te acostumbrarás a la sintaxis

113
00:08:23,170 --> 00:08:25,090
‫un poco extraña que tiene.

114
00:08:25,420 --> 00:08:30,430
‫Avancemos y compilemos y solo verifiquemos que realmente haga el mismo trabajo.

115
00:08:30,640 --> 00:08:38,020
‫Si voy y agarro mi gárgola y me acerco a los actores superpuestos, pueden ver que, de hecho, está imprimiendo a

116
00:08:38,020 --> 00:08:42,010
‫nuestros dos actores cuando ambos estamos superpuestos en la alcoba.

117
00:08:42,100 --> 00:08:42,790
‫Buena cosa.

118
00:08:42,790 --> 00:08:49,810
‫Así que en esta lección hemos visto una nueva idea de programación, la idea de los bucles, y nos hemos encontrado

119
00:08:49,810 --> 00:08:52,960
‫particularmente con el bucle Y y el bucle for.

120
00:08:53,200 --> 00:08:54,700
‫Te veré en la próxima conferencia.

