1 00:00:00,620 --> 00:00:23,280 Vale, pues este método ahora, este método ahora de recuperar una reserva con estos datos y estas habitaciones reservadas, vamos a dejarlo porque como ahora estamos trabajando, hemos cambiado tu aplicación para que trabaje con código, vale, vamos a dejarlo. 2 00:00:23,280 --> 00:00:24,480 es que igual ni lo vamos a usar 3 00:00:24,480 --> 00:00:26,859 entonces este método por ahora lo voy a quitar 4 00:00:26,859 --> 00:00:28,859 cuando lo necesitemos ya veremos 5 00:00:28,859 --> 00:00:31,219 como lo hacemos 6 00:00:31,219 --> 00:00:31,899 si es que lo necesitamos 7 00:00:31,899 --> 00:00:34,380 claro, entonces 8 00:00:34,380 --> 00:00:36,520 actualizar habitación 9 00:00:36,520 --> 00:00:39,299 o sea, meterle camas 10 00:00:39,299 --> 00:00:41,119 o meterle precios o meterle lo que sea 11 00:00:41,119 --> 00:00:43,060 entonces actualizar habitación 12 00:00:43,060 --> 00:00:45,000 has buscado la habitación con este número 13 00:00:45,000 --> 00:00:47,619 y a la habitación con ese número 14 00:00:47,619 --> 00:00:49,820 le has 15 00:00:49,820 --> 00:00:50,500 dado 16 00:00:50,500 --> 00:00:54,020 has creado una nueva 17 00:00:54,020 --> 00:00:56,179 vale, hombre, aquí 18 00:00:56,179 --> 00:00:58,140 casi sería mejor en lugar de crear una nueva 19 00:00:58,140 --> 00:01:00,299 y hacer que otra pierda la referencia 20 00:01:00,299 --> 00:01:01,859 y tengas ahí al recolector de basura 21 00:01:01,859 --> 00:01:03,759 limpiando basura, pues 22 00:01:03,759 --> 00:01:05,359 la haces en el solo set 23 00:01:05,359 --> 00:01:08,500 o sea, a la habitación 24 00:01:08,500 --> 00:01:10,200 con este número le cambias el número 25 00:01:10,200 --> 00:01:12,200 de camas, porque la clave primaria no la puedes 26 00:01:12,200 --> 00:01:12,599 cambiar 27 00:01:12,599 --> 00:01:18,280 claro, si yo lo que digo es que una vez que la has encontrado 28 00:01:18,280 --> 00:01:19,980 en lugar de esto 29 00:01:19,980 --> 00:01:21,659 Tú haces tu set 30 00:01:21,659 --> 00:01:24,659 Set bed counter 31 00:01:24,659 --> 00:01:25,939 Bed counter y 32 00:01:25,939 --> 00:01:28,420 Ah, pues ya está 33 00:01:28,420 --> 00:01:29,439 Pues mucho mejor así 34 00:01:29,439 --> 00:01:33,260 O sea, simplemente cuando la encuentre 35 00:01:33,260 --> 00:01:35,200 Sobrescribe esa y crea 36 00:01:35,200 --> 00:01:36,500 Claro, pero eso es a lo que voy 37 00:01:36,500 --> 00:01:38,319 Que lo que estás haciendo físicamente es 38 00:01:38,319 --> 00:01:40,400 Crear un objeto nuevo 39 00:01:40,400 --> 00:01:41,799 Claro, pero la posición de la misma 40 00:01:41,799 --> 00:01:43,939 La relación antiguo se borra 41 00:01:43,939 --> 00:01:46,180 No, no, no 42 00:01:46,180 --> 00:01:48,359 La posición de la raíz sí, pero la del objeto no 43 00:01:48,359 --> 00:01:49,920 O sea, lo que tú estás haciendo 44 00:01:49,920 --> 00:01:51,340 físicamente es esto 45 00:01:51,340 --> 00:01:54,079 a ver, tú tienes aquí tu array 46 00:01:54,079 --> 00:01:56,239 cada array 47 00:01:56,239 --> 00:01:57,299 apunta una habitación 48 00:01:57,299 --> 00:01:59,719 vale, entonces 49 00:01:59,719 --> 00:02:01,140 cuando tú encuentras 50 00:02:01,140 --> 00:02:04,599 encontramos la habitación 51 00:02:04,599 --> 00:02:05,400 con ese número 52 00:02:05,400 --> 00:02:08,360 ¿qué haces? te creas un objeto nuevo 53 00:02:08,360 --> 00:02:09,719 y haces que este apunte aquí 54 00:02:09,719 --> 00:02:11,400 y este se queda aquí 55 00:02:11,400 --> 00:02:14,280 perdido y no pasa nada, ya desaparecerá 56 00:02:14,280 --> 00:02:15,680 ah, no sabía que pasaba eso 57 00:02:15,680 --> 00:02:17,719 claro, cada vez que tú haces un new 58 00:02:17,719 --> 00:02:19,780 el objeto se crea nuevo 59 00:02:19,780 --> 00:02:20,819 con una dirección nueva 60 00:02:20,819 --> 00:02:23,419 entonces este objeto con la dirección nueva 61 00:02:23,419 --> 00:02:25,680 al asignarlo aquí, lo que significa 62 00:02:25,680 --> 00:02:27,000 es que este empieza a apuntar aquí 63 00:02:27,000 --> 00:02:29,180 y no pasa nada, o sea, funciona 64 00:02:29,180 --> 00:02:31,879 pero se queda este aquí 65 00:02:31,879 --> 00:02:33,620 que tampoco pasa nada porque el 66 00:02:33,620 --> 00:02:36,060 colector de basura cada ciertos milisegundos 67 00:02:36,060 --> 00:02:37,639 tira a la basura 68 00:02:37,639 --> 00:02:39,919 los objetos que se han quedado sin nadie 69 00:02:39,919 --> 00:02:40,699 que les apunte 70 00:02:40,699 --> 00:02:43,659 ¿vale? pero sin embargo 71 00:02:43,659 --> 00:02:45,560 si hacemos lo del set, una vez que has 72 00:02:45,560 --> 00:02:47,280 encontrado el objeto, a este mismo 73 00:02:47,280 --> 00:02:48,659 le cambias los datos 74 00:02:48,659 --> 00:02:50,099 y ya está. 75 00:02:50,379 --> 00:02:52,259 Que tiene quizá un poquito más de sentido. 76 00:02:54,159 --> 00:02:55,580 Vale, pues entonces este método. 77 00:03:02,879 --> 00:03:04,139 Este método de aquí. 78 00:03:05,240 --> 00:03:06,379 Busca en el array 79 00:03:06,379 --> 00:03:08,699 la habitación con ese número. 80 00:03:09,979 --> 00:03:11,560 Una vez que la ha encontrado 81 00:03:11,560 --> 00:03:13,960 le cambia el número de camas 82 00:03:13,960 --> 00:03:15,020 y le cambia 83 00:03:15,020 --> 00:03:17,419 el precio por noche. 84 00:03:19,300 --> 00:03:20,159 Y ya está. 85 00:03:21,319 --> 00:03:21,560 Vale. 86 00:03:25,180 --> 00:03:27,060 Vale, actualizar reserva. 87 00:03:27,659 --> 00:03:29,139 Este vamos a dejarlo por ahora, 88 00:03:29,240 --> 00:03:30,439 pero como ahora vamos por código, 89 00:03:32,560 --> 00:03:33,900 pues cambiaría bastante la idea. 90 00:03:34,659 --> 00:03:34,879 Fuera. 91 00:03:36,099 --> 00:03:37,379 Delete reserva. 92 00:03:37,599 --> 00:03:43,020 Bueno, se le pasa un objeto reserva 93 00:03:43,020 --> 00:03:45,599 y recorres el array, 94 00:03:46,060 --> 00:03:47,560 uno con una posición menos, 95 00:03:48,699 --> 00:03:50,139 copias todos en el nuevo, 96 00:03:50,979 --> 00:03:53,439 saltándote el que hay que borrar. 97 00:03:53,580 --> 00:03:54,340 Vale, lo de siempre. 98 00:04:02,439 --> 00:04:03,879 Aquí inicializar. 99 00:04:04,180 --> 00:04:06,060 el array de habitaciones 100 00:04:06,060 --> 00:04:06,939 con un tamaño 101 00:04:06,939 --> 00:04:11,060 esto 102 00:04:11,060 --> 00:04:14,120 generar un número aleatorio 103 00:04:14,120 --> 00:04:14,780 de habitación 104 00:04:14,780 --> 00:04:17,420 y ahora 105 00:04:17,420 --> 00:04:24,180 y ahora vámonos 106 00:04:24,180 --> 00:04:25,100 al que nos interesa 107 00:04:25,100 --> 00:04:27,920 en este sí que es en el que quiero 108 00:04:27,920 --> 00:04:29,139 que nos pongamos a pensar 109 00:04:29,139 --> 00:04:32,399 ¿vale? en lugar de 110 00:04:32,399 --> 00:04:34,100 pensar en nuestras cosas 111 00:04:34,100 --> 00:04:35,279 ¿no? 112 00:04:35,279 --> 00:04:36,240 ¿no? 113 00:04:36,259 --> 00:04:53,899 Vale. Ahora ya hemos llegado al método que nos interesa que todos pensemos en él. El de mirar si hay disponibilidad para esta fecha para todas esas personas. Ese es el método que nos interesa. 114 00:04:53,899 --> 00:04:57,000 Método raro 115 00:04:57,000 --> 00:04:58,600 Porque es el método que tiene que ir 116 00:04:58,600 --> 00:05:01,100 Habitación por habitación 117 00:05:01,100 --> 00:05:04,300 Si la habitación está libre 118 00:05:04,300 --> 00:05:07,800 La incorporo a una reserva 119 00:05:07,800 --> 00:05:10,339 Virtual que estoy haciendo por ahora 120 00:05:10,339 --> 00:05:11,420 La incorporo 121 00:05:11,420 --> 00:05:14,600 Cuando consiga completar mi reserva 122 00:05:14,600 --> 00:05:16,839 Con tantas habitaciones necesarias 123 00:05:16,839 --> 00:05:18,500 Como necesito para esas personas 124 00:05:18,500 --> 00:05:21,339 Mi método ya puede terminar devolviendo la reserva 125 00:05:21,339 --> 00:05:23,879 Si no consigo completar la reserva 126 00:05:23,879 --> 00:05:27,459 y he terminado todo mi array de habitaciones libres del hotel 127 00:05:27,459 --> 00:05:30,139 sin completar la reserva para esa fecha, devuelvo el mail. 128 00:05:30,699 --> 00:05:32,180 Esa sería la idea del método, ¿no? 129 00:05:40,500 --> 00:05:40,939 Vale. 130 00:05:42,439 --> 00:05:48,120 Vamos a Reservation. 131 00:05:49,259 --> 00:05:52,259 Y ya sé que duele, pero como nos va a costar entender tu código, 132 00:05:55,540 --> 00:05:56,600 lo van a hacer tus amigos. 133 00:05:56,860 --> 00:05:57,079 Vale. 134 00:05:57,800 --> 00:05:59,620 Entonces, ¿aquí qué es lo primero que vamos a hacer? 135 00:05:59,620 --> 00:06:02,500 vamos a crearnos un objeto reserva 136 00:06:02,500 --> 00:06:04,139 con esa cosa 137 00:06:04,139 --> 00:06:06,240 con la idea de irle metiendo a las habitaciones 138 00:06:06,240 --> 00:06:08,120 a ver si conseguimos completarlo 139 00:06:08,120 --> 00:06:10,899 que es lo primero que se me ocurre a mí sobre la marcha 140 00:06:10,899 --> 00:06:11,519 vale 141 00:06:11,519 --> 00:06:13,759 no sé cómo lo habréis enfocado vosotros 142 00:06:13,759 --> 00:06:15,959 pues venga, vamos a construir 143 00:06:15,959 --> 00:06:17,860 nuestro objeto reserva 144 00:06:17,860 --> 00:06:31,019 que no tienes constructor sin parámetros 145 00:06:31,019 --> 00:06:32,259 pues se lo vamos a hacer 146 00:06:32,259 --> 00:06:33,920 que es muy útil 147 00:06:33,920 --> 00:06:37,399 vamos a hacerle un constructor sin parámetros 148 00:06:37,399 --> 00:06:43,079 a reserva 149 00:06:43,079 --> 00:06:51,459 ala, ya está 150 00:06:51,459 --> 00:06:53,850 vale 151 00:06:53,850 --> 00:06:57,230 este va a ser el que devolvamos en el futuro 152 00:06:57,230 --> 00:07:01,310 este o un null, depende de si lo hemos podido 153 00:07:01,310 --> 00:07:02,930 completar o no, este o un null 154 00:07:02,930 --> 00:07:04,769 pero bueno, lo pongo ya aquí esto para 155 00:07:04,769 --> 00:07:06,509 que se me quede orden de compilación 156 00:07:06,509 --> 00:07:09,329 ahora, a la reserva le ponemos ya la fecha 157 00:07:09,329 --> 00:07:12,889 la fecha que será la que me han dado 158 00:07:12,889 --> 00:07:14,290 date 159 00:07:14,290 --> 00:07:16,930 y a la reserva le ponemos ya 160 00:07:16,930 --> 00:07:18,410 el otro parámetro que necesita 161 00:07:18,410 --> 00:07:20,089 que es 162 00:07:20,089 --> 00:07:22,430 el número de 163 00:07:22,430 --> 00:07:24,790 gente alojada 164 00:07:24,790 --> 00:07:27,089 que será este parámetro. 165 00:07:27,370 --> 00:07:27,829 Y ahora, 166 00:07:28,750 --> 00:07:30,730 ahora me viene el problema de 167 00:07:30,730 --> 00:07:32,829 empezar a buscar habitaciones en el hotel 168 00:07:32,829 --> 00:07:34,730 que estén libres en esa 169 00:07:34,730 --> 00:07:37,129 cesta e irlas incorporando 170 00:07:37,129 --> 00:07:38,149 a ver si consigo 171 00:07:38,149 --> 00:07:41,129 completar con su número de plazas totales 172 00:07:41,129 --> 00:07:42,569 el 173 00:07:42,569 --> 00:07:44,829 número 174 00:07:44,829 --> 00:07:46,189 de invitados que necesito. 175 00:07:47,310 --> 00:07:48,990 Entonces, se me ocurre, vamos a poner aquí 176 00:07:48,990 --> 00:07:51,050 el número de 177 00:07:51,050 --> 00:07:53,910 ¿lo puedo poner en español o te ofende? 178 00:07:54,250 --> 00:07:57,379 El número de personas 179 00:07:57,379 --> 00:07:59,199 que conseguimos ir alojando 180 00:07:59,199 --> 00:08:01,759 según vamos metiendo habitaciones en la reserva. 181 00:08:02,399 --> 00:08:03,279 Inicialmente cero. 182 00:08:04,399 --> 00:08:05,439 Según vayamos metiendo 183 00:08:05,439 --> 00:08:06,720 habitaciones en la reserva, 184 00:08:07,240 --> 00:08:08,360 esto se irá sumando 185 00:08:08,360 --> 00:08:11,500 y cuando alcancemos la situación 186 00:08:11,500 --> 00:08:13,579 en que esta variable 187 00:08:13,579 --> 00:08:15,500 es igual que esta, 188 00:08:16,139 --> 00:08:17,360 ya está, ya puedo devolver 189 00:08:17,360 --> 00:08:18,120 esa reserva. 190 00:08:18,120 --> 00:08:20,519 si hemos terminado 191 00:08:20,519 --> 00:08:21,879 el array de habitaciones del hotel 192 00:08:21,879 --> 00:08:23,300 y no he conseguido 193 00:08:23,300 --> 00:08:25,939 que el número de personas alcance 194 00:08:25,939 --> 00:08:28,199 a las que necesito, devuelvo nudo 195 00:08:28,199 --> 00:08:30,439 esa podría ser 196 00:08:30,439 --> 00:08:32,440 la primera versión así sobre la marcha 197 00:08:32,440 --> 00:08:34,460 vale, ahora sí que tenemos que recorrer 198 00:08:34,460 --> 00:08:36,759 sí o sí las habitaciones 199 00:08:36,759 --> 00:08:40,370 recorremos 200 00:08:40,370 --> 00:08:44,330 habitaciones del hotel 201 00:08:44,330 --> 00:08:46,669 ¿con qué objetivo? 202 00:08:46,669 --> 00:08:48,750 para encontrar 203 00:08:48,750 --> 00:08:52,230 libres en esa fecha 204 00:08:52,230 --> 00:08:54,740 vale 205 00:08:54,740 --> 00:08:56,220 entonces 206 00:08:56,220 --> 00:08:59,679 esto lo haríamos 207 00:08:59,679 --> 00:09:01,620 para cada habitación 208 00:09:01,620 --> 00:09:10,210 como se llama tu array 209 00:09:10,210 --> 00:09:12,129 de habitaciones room 210 00:09:12,129 --> 00:09:13,809 vaya pues que mal elegido 211 00:09:13,809 --> 00:09:15,470 entonces 212 00:09:15,470 --> 00:09:18,129 para cada habitación 213 00:09:18,850 --> 00:09:22,559 r 214 00:09:22,559 --> 00:09:25,980 en mi array de habitaciones 215 00:09:25,980 --> 00:09:29,299 que nos interesa ver aquí 216 00:09:29,299 --> 00:09:31,539 está libre en esta fecha 217 00:09:31,539 --> 00:09:34,460 magnífico, si está libre en esta fecha 218 00:09:34,460 --> 00:09:35,679 la añado a la reserva 219 00:09:35,679 --> 00:09:38,299 y sumo mi número de personas que ya he conseguido 220 00:09:38,299 --> 00:09:40,200 alojar con las plazas totales de la habitación 221 00:09:40,200 --> 00:09:41,940 vale, pues ojalá 222 00:09:41,940 --> 00:09:43,039 tuviéramos un método 223 00:09:43,039 --> 00:09:45,200 que fuera 224 00:09:45,200 --> 00:09:46,659 si está libre 225 00:09:46,659 --> 00:09:55,549 está libre 226 00:09:55,549 --> 00:09:57,490 la habitación R 227 00:09:57,490 --> 00:10:04,399 en la fecha 228 00:10:04,399 --> 00:10:06,419 date, se llama date 229 00:10:06,419 --> 00:10:11,009 vale, pues ahora lo buscamos 230 00:10:11,009 --> 00:10:11,870 y le cambiamos el nombre 231 00:10:11,870 --> 00:10:14,049 porque si está libre 232 00:10:14,049 --> 00:10:16,590 la habitación R 233 00:10:16,590 --> 00:10:18,169 en esta fecha date 234 00:10:18,169 --> 00:10:20,950 resulta que está libre, pues entonces ya 235 00:10:20,950 --> 00:10:22,909 a la reserva esta que yo estoy haciendo 236 00:10:22,909 --> 00:10:24,629 a la reserva 237 00:10:24,629 --> 00:10:27,129 a sus habitaciones 238 00:10:27,129 --> 00:10:28,870 reservadas, inicialmente 239 00:10:28,870 --> 00:10:31,309 serán cero, le añado 240 00:10:31,309 --> 00:10:32,970 tenías aquí un método 241 00:10:32,970 --> 00:10:34,870 o deberías tener 242 00:10:34,870 --> 00:10:37,169 en habitaciones reservadas 243 00:10:37,169 --> 00:10:38,889 ah bueno 244 00:10:38,889 --> 00:10:40,990 es que la propia reserva ya tenías un método 245 00:10:40,990 --> 00:10:42,730 que era añadir 246 00:10:42,730 --> 00:10:44,649 habitación a la reserva, R 247 00:10:44,649 --> 00:10:45,889 ya está, vale 248 00:10:45,889 --> 00:10:48,830 si esa habitación está libre 249 00:10:48,830 --> 00:10:50,809 en esta fecha, es habitación 250 00:10:50,809 --> 00:10:52,669 a la reserva, magnífico 251 00:10:52,669 --> 00:10:55,090 y ahora vamos a 252 00:10:55,090 --> 00:10:56,470 sumar a num personas 253 00:10:56,470 --> 00:10:59,370 num personas 254 00:10:59,370 --> 00:11:00,570 más igual 255 00:11:00,570 --> 00:11:02,970 esta habitación R 256 00:11:02,970 --> 00:11:04,590 punto plazas totales 257 00:11:04,590 --> 00:11:06,029 que 258 00:11:06,029 --> 00:11:10,029 ¿cómo se llama ese método? 259 00:11:10,990 --> 00:11:12,529 Ah, Spot 260 00:11:12,529 --> 00:11:15,129 Es que con esos nombres 261 00:11:15,129 --> 00:11:16,289 De Star Trek 262 00:11:16,289 --> 00:11:17,750 Pues se hace todo muy raro 263 00:11:17,750 --> 00:11:20,889 Ni sabéis quién es Star Trek, lógicamente 264 00:11:20,889 --> 00:11:22,610 No tenéis pasado 265 00:11:22,610 --> 00:11:23,649 ¿No conocéis Star Trek? 266 00:11:24,129 --> 00:11:26,049 ¿Y vosotros os creéis frikis? 267 00:11:26,049 --> 00:11:26,070 ¿Vosotros os creéis frikis? 268 00:11:30,070 --> 00:11:34,669 ¿Ah, sí? 269 00:11:36,769 --> 00:11:37,529 Vale 270 00:11:37,529 --> 00:11:40,970 Es el número de 271 00:11:40,970 --> 00:11:43,149 Es el número de plazas 272 00:11:43,149 --> 00:11:43,990 Que tiene esta habitación 273 00:11:43,990 --> 00:11:47,110 Entonces ya 274 00:11:47,110 --> 00:11:49,629 Bueno, depende 275 00:11:49,629 --> 00:11:50,549 Si es familiar o no 276 00:11:50,549 --> 00:11:51,889 No nos estamos metiendo 277 00:11:51,889 --> 00:11:54,570 Porque estamos metiendo a la gente en camas doble 278 00:11:54,570 --> 00:11:55,470 Junta, eso nos da igual 279 00:11:55,470 --> 00:11:58,470 Y ahora ya 280 00:11:58,470 --> 00:12:01,009 Sí que podríamos hacer 281 00:12:01,009 --> 00:12:03,429 Si número de personas 282 00:12:03,429 --> 00:12:04,970 Ha alcanzado ya 283 00:12:04,970 --> 00:12:06,389 Es mayor o igual 284 00:12:06,389 --> 00:12:10,210 si el número de personas que he conseguido 285 00:12:10,210 --> 00:12:12,470 alojar con esas plazas totales 286 00:12:12,470 --> 00:12:14,230 resulta que es mayor 287 00:12:14,230 --> 00:12:16,210 o igual que las que me han 288 00:12:16,210 --> 00:12:17,970 dado que tengo que alojar, que es esta 289 00:12:17,970 --> 00:12:24,120 es mayor o igual que esto 290 00:12:24,120 --> 00:12:26,279 pues ya está, ya he completado la reserva 291 00:12:26,840 --> 00:12:28,240 ¿vale? entonces ya 292 00:12:28,240 --> 00:12:30,159 puedo salir de este bucle for 293 00:12:30,159 --> 00:12:31,039 ¿vale? 294 00:12:36,080 --> 00:12:36,559 entonces 295 00:12:36,559 --> 00:12:38,419 este 296 00:12:38,419 --> 00:12:40,580 for each que he hecho por comodidad 297 00:12:40,580 --> 00:12:42,460 muy mal elegido 298 00:12:42,460 --> 00:12:45,100 porque yo quiero salir de este for 299 00:12:45,100 --> 00:12:47,139 voy a querer salir seguramente 300 00:12:47,139 --> 00:12:49,759 antes de recorrer todas las habitaciones 301 00:12:49,759 --> 00:12:51,139 entonces este for it es muy feo 302 00:12:51,139 --> 00:12:53,080 porque si yo quiero mantener el for it 303 00:12:53,080 --> 00:12:55,120 tengo que hacer una cosa 304 00:12:55,120 --> 00:12:56,600 bastante horrible 305 00:12:56,600 --> 00:13:00,860 tú también lo has sentido, ¿verdad? 306 00:13:01,779 --> 00:13:02,120 claro 307 00:13:02,120 --> 00:13:04,240 entonces, ¡oh, qué feo! 308 00:13:04,700 --> 00:13:06,240 no quiero hacer eso, ¡qué horrible! 309 00:13:07,080 --> 00:13:09,820 entonces voy a cambiar esto a un bucle de índice 310 00:13:09,820 --> 00:13:15,840 y sea menor 311 00:13:15,840 --> 00:13:16,980 que 312 00:13:16,980 --> 00:13:22,500 room.le 313 00:13:22,500 --> 00:13:25,840 incrementando 314 00:13:25,840 --> 00:13:26,320 y 315 00:13:26,320 --> 00:13:29,519 ahora, y hará esto 316 00:13:29,519 --> 00:13:30,639 mientras 317 00:13:30,639 --> 00:13:32,840 le pongo aquí la condición 318 00:13:32,840 --> 00:13:34,500 y mientras 319 00:13:34,500 --> 00:13:37,279 num personas sea menor 320 00:13:37,279 --> 00:13:39,120 que 321 00:13:39,120 --> 00:13:40,360 guest counter 322 00:13:40,360 --> 00:13:41,000 este 323 00:13:41,000 --> 00:13:49,110 y esto ya 324 00:13:49,110 --> 00:13:50,250 no tengo que ponerlo 325 00:13:50,250 --> 00:13:54,679 y ahora esta R se cambia a 326 00:13:54,679 --> 00:13:56,879 RUN de I 327 00:13:56,879 --> 00:14:02,620 y esta R se cambia 328 00:14:02,620 --> 00:14:03,919 a RUN de I 329 00:14:03,919 --> 00:14:06,379 y esta R se cambia 330 00:14:06,379 --> 00:14:07,759 a RUN de I 331 00:14:07,759 --> 00:14:11,039 ¡Hala! Pues este sería 332 00:14:11,039 --> 00:14:12,000 el método 333 00:14:12,000 --> 00:14:15,000 vamos a dejarlo 334 00:14:15,000 --> 00:14:15,340 ahí 335 00:14:15,340 --> 00:14:45,000 Vale, ahora ya devuelvo reserva o devuelvo null en función de si el número de personas es mayor o igual, ¿vale? 336 00:14:45,000 --> 00:14:53,580 Que el número de este de aquí, si null personas es mayor o igual que las que yo tenía que alojar 337 00:14:53,580 --> 00:14:56,740 entonces si he conseguido 338 00:14:56,740 --> 00:14:58,720 completar con éxito la reserva 339 00:14:58,720 --> 00:15:00,759 la he conseguido completar con éxito 340 00:15:00,759 --> 00:15:02,960 devuelvo res, pero si no la he conseguido 341 00:15:02,960 --> 00:15:04,620 completar con éxito devuelvo null 342 00:15:04,620 --> 00:15:06,320 ¿vale? 343 00:15:07,460 --> 00:15:09,220 si he completado con éxito 344 00:15:09,220 --> 00:15:10,360 la reserva 345 00:15:10,360 --> 00:15:12,720 es decir, he podido incrementar esto 346 00:15:12,720 --> 00:15:14,480 hasta una cantidad que superaba 347 00:15:14,480 --> 00:15:16,779 los invitados, porque me ha podido llegar 348 00:15:16,779 --> 00:15:18,980 a una habitación con un montón de camas, solo me faltaba una 349 00:15:18,980 --> 00:15:21,019 pero bueno, la he conseguido completar 350 00:15:21,019 --> 00:15:23,179 si la he conseguido completar 351 00:15:23,179 --> 00:15:24,559 devuelvo esa reserva 352 00:15:24,559 --> 00:15:27,100 si no la he conseguido 353 00:15:27,100 --> 00:15:29,059 completar, devuelvo null, porque no he conseguido 354 00:15:29,059 --> 00:15:30,240 completarla para esa fecha 355 00:15:30,240 --> 00:15:32,919 entonces este método ya estaría 356 00:15:32,919 --> 00:15:34,980 creo, pero claro, nos hemos 357 00:15:34,980 --> 00:15:35,840 apoyado en este 358 00:15:35,840 --> 00:15:38,779 y este ahora tendremos que crearlo 359 00:15:38,779 --> 00:15:41,259 que es un método de hotel 360 00:15:41,259 --> 00:15:43,159 porque yo lo he llamado aquí sin nadie 361 00:15:43,159 --> 00:15:44,940 colgando delante, eso significa que es un método 362 00:15:44,940 --> 00:15:47,039 de la clase hotel, tiene sentido que ese 363 00:15:47,039 --> 00:15:49,059 método está en hotel, porque es, oye, tú hotel 364 00:15:49,059 --> 00:15:51,059 tú eres el afectado por esto 365 00:15:51,059 --> 00:15:53,240 tu hotel, ¿tienes libre 366 00:15:53,240 --> 00:15:54,960 esta habitación en esa fecha? 367 00:15:56,159 --> 00:15:56,379 ¿vale? 368 00:15:57,799 --> 00:15:58,320 entonces 369 00:15:58,320 --> 00:16:00,980 el método está 370 00:16:00,980 --> 00:16:02,799 libre, en lugar de pasar 371 00:16:02,799 --> 00:16:04,799 la habitación completa, hombre 372 00:16:04,799 --> 00:16:07,080 que feo también, vamos a pasarle el código 373 00:16:07,080 --> 00:16:07,980 de la habitación 374 00:16:07,980 --> 00:16:11,059 get room 375 00:16:11,059 --> 00:16:12,399 number, el número de habitación 376 00:16:12,399 --> 00:16:17,379 este sí, pero es que como con el negro 377 00:16:17,379 --> 00:16:19,519 este no da nada, no sé cuál selecciona 378 00:16:19,519 --> 00:16:20,419 y cuál no selecciona 379 00:16:20,419 --> 00:16:23,360 ¿vale? vamos a hacer el método 380 00:16:23,360 --> 00:16:25,279 de todas maneras, tú le pasas un código de habitación, 381 00:16:25,360 --> 00:16:27,240 una fecha, y te dice si está libre. 382 00:16:28,159 --> 00:16:29,759 Un método que sí, efectivamente, 383 00:16:30,700 --> 00:16:31,460 su sitio para 384 00:16:31,460 --> 00:16:33,580 estar ubicado es la clase 385 00:16:33,580 --> 00:16:35,320 hotel, porque son 386 00:16:35,320 --> 00:16:36,419 habitaciones del hotel. 387 00:16:37,639 --> 00:16:39,460 Entonces, por eso yo lo he llamado aquí 388 00:16:39,460 --> 00:16:41,519 sin nadie delante, porque ya es su puesto 389 00:16:41,519 --> 00:16:43,500 de partida que ese método iba a estar en la 390 00:16:43,500 --> 00:16:43,960 clase hotel. 391 00:16:45,539 --> 00:16:46,700 Entonces, no hace falta 392 00:16:46,700 --> 00:16:48,820 que lo llame con nadie delante. 393 00:16:49,860 --> 00:16:50,860 Vale, pues entonces, 394 00:16:51,639 --> 00:16:52,419 este hotel 395 00:16:52,419 --> 00:16:56,980 Dices que lo tienes ya hecho 396 00:16:56,980 --> 00:16:58,139 ¿Cuál sería? 397 00:16:58,480 --> 00:16:58,820 Este 398 00:16:58,820 --> 00:17:01,779 Ah, pero aquí no le pasas la fecha 399 00:17:01,779 --> 00:17:02,899 Ah, este 400 00:17:02,899 --> 00:17:04,859 Entonces tú lo tienes hecho 401 00:17:04,859 --> 00:17:06,799 Que es, le pasas una fecha y una habitación 402 00:17:06,799 --> 00:17:08,359 Vale 403 00:17:08,359 --> 00:17:10,579 Entonces voy a llamarlo 404 00:17:10,579 --> 00:17:12,759 Con tu nombre 405 00:17:12,759 --> 00:17:15,640 Habitación libre en esa fecha 406 00:17:15,640 --> 00:17:16,980 Y ahora miramos a ver si está bien 407 00:17:16,980 --> 00:17:21,289 En lugar de está libre 408 00:17:21,289 --> 00:17:22,869 Lo voy a llamar como tú lo has llamado 409 00:17:22,869 --> 00:17:26,650 Habitación libre en esa fecha 410 00:17:26,650 --> 00:17:30,670 Lo que pasa es que yo como le he pasado el código 411 00:17:30,670 --> 00:17:32,849 Vamos a 412 00:17:32,849 --> 00:17:41,069 Habitación libre en esa fecha 413 00:17:41,069 --> 00:18:04,509 Bueno, para dejar tu código 414 00:18:04,509 --> 00:18:06,349 Porque si no, así 415 00:18:06,349 --> 00:18:10,369 Vamos a pasarle la habitación directamente y ya está 416 00:18:10,369 --> 00:18:12,430 y así no te lo tocamos 417 00:18:12,430 --> 00:18:15,660 vale 418 00:18:15,660 --> 00:18:18,940 y tú tienes primero 419 00:18:18,940 --> 00:18:20,819 pasada la fecha y luego tienes pasada 420 00:18:20,819 --> 00:18:21,859 la habitación, ¿verdad? 421 00:18:24,000 --> 00:18:24,359 ahí 422 00:18:24,359 --> 00:18:30,059 vale 423 00:18:30,059 --> 00:18:32,960 adiós 424 00:18:32,960 --> 00:18:34,599 ala 425 00:18:34,599 --> 00:18:36,799 y ahora el método 426 00:18:36,799 --> 00:18:38,779 es este, vamos a ver si este 427 00:18:38,779 --> 00:18:40,779 método hace lo que 428 00:18:40,779 --> 00:18:41,960 él dice que hace 429 00:18:41,960 --> 00:18:44,240 ¿Qué es? Le paso una habitación, una fecha 430 00:18:44,240 --> 00:18:45,779 Vamos a ver si está libre en esa fecha 431 00:18:45,779 --> 00:18:49,200 Recorremos el array de reservas del hotel 432 00:18:49,200 --> 00:18:52,720 Para todas las reservas 433 00:18:52,720 --> 00:18:54,819 Miramos a ver primero 434 00:18:54,819 --> 00:18:57,259 Si la fecha es de la que me han dado 435 00:18:57,259 --> 00:18:58,420 Y ahora 436 00:18:58,420 --> 00:19:01,059 Para cada reserva cuya fecha sea igual 437 00:19:01,059 --> 00:19:01,859 Que la que me han dado 438 00:19:01,859 --> 00:19:04,240 Voy recorriendo 439 00:19:04,240 --> 00:19:07,019 Todas las habitaciones de esa reserva 440 00:19:07,019 --> 00:19:09,359 Si hay alguna habitación 441 00:19:09,359 --> 00:19:10,440 Que sea igual 442 00:19:10,440 --> 00:19:12,099 a la que me han dado 443 00:19:12,099 --> 00:19:13,319 pues ya está 444 00:19:13,319 --> 00:19:16,700 la he encontrado 445 00:19:16,700 --> 00:19:18,059 con lo cual 446 00:19:18,059 --> 00:19:19,000 no está libre 447 00:19:19,000 --> 00:19:20,579 ¿vale? 448 00:19:22,400 --> 00:19:23,539 ¿qué se te ha olvidado? 449 00:19:25,980 --> 00:19:27,279 ah bueno, vale 450 00:19:27,279 --> 00:19:29,980 podríamos añadir aquí eso pero está bien hecho 451 00:19:29,980 --> 00:19:31,400 entonces desde el momento 452 00:19:31,400 --> 00:19:33,539 en que encuentras una habitación 453 00:19:33,539 --> 00:19:35,660 reservada en el array 454 00:19:35,660 --> 00:19:37,079 para esta fecha 455 00:19:37,079 --> 00:19:38,680 pues ya avisas 456 00:19:38,680 --> 00:19:55,279 Y ahora ya ese aviso lo utilizas para informar. Si ese aviso ha sido true, entonces es que efectivamente hay una habitación reservada para esa fecha. O sea, no está libre, perdón. No está libre, entonces devuelves falsi. 457 00:19:55,279 --> 00:19:57,799 si nunca nunca jamás 458 00:19:57,799 --> 00:19:59,779 entraste aquí nunca en este if 459 00:19:59,779 --> 00:20:00,980 nunca entraste jamás 460 00:20:00,980 --> 00:20:03,720 false seguirá estando 461 00:20:03,720 --> 00:20:05,519 false cuando llegue aquí porque nunca 462 00:20:05,519 --> 00:20:07,420 entraste aquí entonces como nunca 463 00:20:07,420 --> 00:20:09,759 entraste ahí significará que no encontraste 464 00:20:09,759 --> 00:20:11,700 ninguna habitación igual 465 00:20:11,700 --> 00:20:13,539 que esta para esta fecha 466 00:20:13,539 --> 00:20:15,220 entonces devuelves false 467 00:20:15,220 --> 00:20:16,640 vale aquí 468 00:20:16,640 --> 00:20:19,539 lo estás 469 00:20:19,539 --> 00:20:21,920 haciendo con un equals comparar 470 00:20:21,920 --> 00:20:23,720 esta habitación de la reserva 471 00:20:23,720 --> 00:20:51,690 Observa con la que te pasan como parámetro porque tienes implementado el equals por código, ¿vale? Porque tienes implementado el equals por código. Que aquí lo mismo, que complicación de vida, ¿vale? Mejor así. Y falta el punto y coma. Y sobra o falta algo, ¿no? 472 00:20:51,690 --> 00:20:56,980 vale, pues ya está 473 00:20:56,980 --> 00:21:00,299 este método de comprobar disponibilidad 474 00:21:00,299 --> 00:21:02,940 que nos angustiaba tanto 475 00:21:02,940 --> 00:21:12,359 que ya ni sabemos dónde está, pues ya está 476 00:21:12,359 --> 00:21:17,599 bueno, pues entonces voy a eliminar 477 00:21:17,599 --> 00:21:20,660 de este proyecto todo lo que no hemos mencionado nosotros 478 00:21:20,660 --> 00:21:23,180 porque como ya he subido a la virtual, por si alguien lo quiere usar 479 00:21:23,180 --> 00:21:25,779 y luego a partir de este proyecto, si alguien 480 00:21:25,779 --> 00:21:28,279 no lo ha hecho todavía a su manera lo que sea 481 00:21:28,279 --> 00:21:29,859 lo puede completar 482 00:21:29,859 --> 00:21:32,240 como ejercicio. 483 00:21:32,700 --> 00:21:32,799 ¿Vale? 484 00:21:33,480 --> 00:21:33,799 Dime. 485 00:21:43,500 --> 00:21:44,200 Pues sí, 486 00:21:45,000 --> 00:21:46,720 porque te facilitaría muchísimo. 487 00:21:48,160 --> 00:21:48,460 Claro, 488 00:21:49,259 --> 00:21:49,759 efectivamente, 489 00:21:49,920 --> 00:21:50,859 tendría muchísimo sentido. 490 00:21:51,599 --> 00:21:52,079 Aquí llega, 491 00:21:52,240 --> 00:21:53,640 tendrías la misma información 492 00:21:53,640 --> 00:21:54,880 codificada en dos sitios, 493 00:21:54,980 --> 00:21:55,660 pero no pasa nada. 494 00:21:56,200 --> 00:21:56,519 Es decir, 495 00:21:56,619 --> 00:21:57,440 puedes llegar a ver 496 00:21:57,440 --> 00:21:58,380 si una habitación está libre 497 00:21:58,380 --> 00:21:59,619 por la vía fácil 498 00:21:59,619 --> 00:22:00,380 que es disponibilidad 499 00:22:00,380 --> 00:22:01,539 o por la otra 500 00:22:01,539 --> 00:22:02,720 que es con la raíz de reservas. 501 00:22:02,880 --> 00:22:03,019 Entonces, 502 00:22:03,119 --> 00:22:03,779 aquí lo importante 503 00:22:03,779 --> 00:22:04,579 en la aplicación 504 00:22:04,579 --> 00:22:06,779 es que fuera siempre 505 00:22:06,779 --> 00:22:09,599 consistente, pero es que no hay problema 506 00:22:09,599 --> 00:22:11,519 en que es fácil que sea consistente 507 00:22:11,519 --> 00:22:13,319 porque cuando creamos una reserva nueva 508 00:22:13,319 --> 00:22:15,880 pues esa reserva 509 00:22:15,880 --> 00:22:17,660 cuando coge la habitación 510 00:22:17,660 --> 00:22:19,759 que marque el set de disponible 511 00:22:19,759 --> 00:22:21,180 lo marque a falso y ya está 512 00:22:21,180 --> 00:22:22,759 entonces efectivamente 513 00:22:22,759 --> 00:22:25,279 se facilitaría muchísimo las cosas 514 00:22:25,279 --> 00:22:40,680 ah bueno, espérate, porque habitación 515 00:22:40,680 --> 00:22:44,579 si tienes razón, habitación 516 00:22:44,579 --> 00:22:46,799 no sería 517 00:22:46,799 --> 00:22:49,160 donde tenemos habitación 518 00:22:49,160 --> 00:22:50,839 rumbo, donde está rumbo, aquí, ah vale 519 00:22:50,839 --> 00:22:54,759 claro, esta es la habitación, entonces 520 00:22:54,759 --> 00:22:56,839 disponible o no, efectivamente depende 521 00:22:56,839 --> 00:22:58,299 de la fecha, claro 522 00:22:58,299 --> 00:23:00,619 es verdad 523 00:23:00,619 --> 00:23:07,150 vale, claro 524 00:23:07,150 --> 00:23:08,630 tendríamos que llegar a partir de reservas 525 00:23:08,630 --> 00:23:11,609 vale, pues voy a 526 00:23:11,609 --> 00:23:12,990 lo que he dicho, voy a cortar 527 00:23:12,990 --> 00:23:15,190 todos los métodos y todas las cosas de ahí que no hemos 528 00:23:15,190 --> 00:23:17,269 visto y quien quiera completar a partir de aquí 529 00:23:17,269 --> 00:23:19,309 o quien lo esté haciendo a su manera 530 00:23:19,309 --> 00:23:20,410 pues lógicamente a su manera 531 00:23:20,410 --> 00:23:24,049 ¿Dudas o algo? 532 00:23:24,150 --> 00:23:24,930 El ROM, claro