1 00:00:00,000 --> 00:00:05,320 Vamos, venga, examen año pasado. 2 00:00:08,679 --> 00:00:17,300 Vale, entonces, por supuesto, será importante entender el enunciado. 3 00:00:18,359 --> 00:00:26,940 Escuchadme, porque los enunciados son largos, claro, porque tienen que describir una situación que ahora es un poquito más compleja. 4 00:00:26,940 --> 00:00:30,620 A ver, ¿me está escuchando alguien o me pongo a gritaros? 5 00:00:32,539 --> 00:00:41,320 Vale, entonces como ahora son varias clases, la situación es un poquito más compleja de describir o más larga de describir, entonces los enunciados son más largos. 6 00:00:41,880 --> 00:00:49,939 Pero enunciados largos, resoluciones cortas, se trata de seleccionar lo que haya que seleccionar, la estructura que hay que seleccionar, recorrer lo que haya que recorrer, poco más. 7 00:00:49,939 --> 00:00:52,600 ¿vale? entonces, al principio 8 00:00:52,600 --> 00:00:54,640 os leeré el enunciado 9 00:00:54,640 --> 00:00:56,460 para que quede claro y lo hayáis entendido bien 10 00:00:56,460 --> 00:00:58,500 porque lo que no tenéis que hacer es poneros a 11 00:00:58,500 --> 00:01:00,579 programar y hacer cosas sin entender lo que 12 00:01:00,579 --> 00:01:02,600 hay que hacer, porque si habéis entendido 13 00:01:02,600 --> 00:01:04,579 bien lo que hay que hacer, se hace en nada 14 00:01:04,579 --> 00:01:06,640 si no lo habéis entendido y os ponéis 15 00:01:06,640 --> 00:01:08,659 a dar vueltas, pues sí, os estáis 16 00:01:08,659 --> 00:01:10,379 efectivamente las dos horas, ¿vale? entonces 17 00:01:10,379 --> 00:01:12,439 lo leeremos al principio para que todo el mundo tenga claro 18 00:01:12,439 --> 00:01:14,299 lo que tiene que hacer, bueno, pues esto es igual 19 00:01:14,299 --> 00:01:16,060 uno ve este enunciado y dice, uy, que enunciado más largo 20 00:01:16,060 --> 00:01:17,640 estos son cuatro tonterías 21 00:01:17,640 --> 00:01:19,799 vale, pues venga, enunciado 22 00:01:19,799 --> 00:01:22,019 un mundo mágico de color 23 00:01:22,019 --> 00:01:23,959 existen criaturas místicas, vale 24 00:01:23,959 --> 00:01:26,420 pues vamos a modelar esas criaturas 25 00:01:26,420 --> 00:01:28,140 vale, pues 26 00:01:28,140 --> 00:01:29,939 habrá una interfaz poder místico 27 00:01:29,939 --> 00:01:32,219 que todos los que la implementen podrán activar poder 28 00:01:32,219 --> 00:01:33,560 bueno, entonces 29 00:01:33,560 --> 00:01:35,459 una clase abstracta 30 00:01:35,459 --> 00:01:37,680 criatura mística que además 31 00:01:37,680 --> 00:01:39,159 podrá activar el poder 32 00:01:39,159 --> 00:01:41,780 o lo que es lo mismo, implementa la interfaz 33 00:01:41,780 --> 00:01:43,280 poder místico, vale 34 00:01:43,280 --> 00:01:45,579 la clase abstracta además 35 00:01:45,579 --> 00:01:47,799 sabéis que puede tener atributos, pues tiene nombre, edad 36 00:01:47,799 --> 00:01:48,900 y un método abstracto 37 00:01:48,900 --> 00:01:51,640 que se queda implementado con estos de aquí. 38 00:01:52,159 --> 00:01:53,700 Vale, es que fijaos, o sea, ya con 39 00:01:53,700 --> 00:01:55,620 esto que os he dicho, ya son cuatro 40 00:01:55,620 --> 00:01:56,659 puntos de este ejercicio. 41 00:01:56,760 --> 00:01:59,859 ¿Cuatro puntos sobre 42 00:01:59,859 --> 00:02:01,680 diez del ejercicio? Pero este 43 00:02:01,680 --> 00:02:02,239 es la mitad. 44 00:02:02,819 --> 00:02:05,840 Claro, aún así, es como si... 45 00:02:05,840 --> 00:02:07,299 Vale, entonces, bueno, pues 46 00:02:07,299 --> 00:02:08,699 entonces 47 00:02:08,699 --> 00:02:11,340 vosotros veis y decís 48 00:02:11,340 --> 00:02:13,419 ¡qué fácil! Pues lo de mañana 49 00:02:13,419 --> 00:02:15,400 será similar. Y sin embargo, lo de mañana 50 00:02:15,400 --> 00:02:16,500 me montaréis un pollo 51 00:02:16,500 --> 00:02:19,080 y diréis, vaya saber horroroso 52 00:02:19,080 --> 00:02:20,199 cuando será lo mismo 53 00:02:20,199 --> 00:02:21,740 ¿vale? 54 00:02:24,580 --> 00:02:25,259 claro 55 00:02:25,259 --> 00:02:27,520 claro, pues por eso 56 00:02:27,520 --> 00:02:29,180 haz que el programa 57 00:02:29,180 --> 00:02:31,080 traduzca este texto en arameo 58 00:02:31,080 --> 00:02:34,219 claro 59 00:02:34,219 --> 00:02:35,939 arameo 60 00:02:35,939 --> 00:02:43,139 venga, pues ala 61 00:02:43,139 --> 00:02:43,840 vamos a hacer 62 00:02:43,840 --> 00:02:47,300 Interfaz examen 63 00:02:47,300 --> 00:02:48,900 Interfaz poder místico 64 00:02:48,900 --> 00:02:50,460 New 65 00:02:50,460 --> 00:02:52,060 Interfaz 66 00:02:52,060 --> 00:02:54,319 Poder místico 67 00:02:54,319 --> 00:02:57,780 Poder místico 68 00:02:57,780 --> 00:03:01,139 Los que implementen 69 00:03:01,139 --> 00:03:02,300 Poder místico 70 00:03:02,300 --> 00:03:04,919 ¿Qué tienen que implementar? 71 00:03:04,979 --> 00:03:05,539 Activar poder 72 00:03:05,539 --> 00:03:08,080 No hay ni que poner 73 00:03:08,080 --> 00:03:10,840 El public porque ya sabéis que una interfaz 74 00:03:10,840 --> 00:03:12,699 No 75 00:03:12,699 --> 00:03:20,780 A ver, bueno, en realidad es porque 76 00:03:20,780 --> 00:03:22,759 Por defecto son todos públicos 77 00:03:22,759 --> 00:03:23,879 O sea, si tú pones public 78 00:03:23,879 --> 00:03:28,379 Es como si no 79 00:03:28,379 --> 00:03:30,280 Ponerlo y no ponerlo es lo mismo 80 00:03:30,280 --> 00:03:31,460 Por defecto son públicos 81 00:03:31,460 --> 00:03:34,659 Porque están pensados para que gente del exterior los implemente 82 00:03:34,659 --> 00:03:36,180 Por defecto son publicos 83 00:03:36,180 --> 00:03:37,719 No, en las interfaces 84 00:03:37,719 --> 00:03:39,000 En las interfaces no 85 00:03:39,000 --> 00:03:41,180 En las interfaces son públicos todos 86 00:03:41,180 --> 00:03:43,060 no hay alternativas, son públicos 87 00:03:43,060 --> 00:03:44,819 con lo cual da igual que lo pongas o que no lo pongas 88 00:03:44,819 --> 00:03:47,000 ¿por qué? porque están pensados en realidad 89 00:03:47,000 --> 00:03:49,159 las interfaces para que los implementen 90 00:03:49,159 --> 00:03:51,319 ajenos, de otros paquetes 91 00:03:51,319 --> 00:03:55,259 bueno, el ajeno lo va a sobrescribir 92 00:03:55,259 --> 00:03:57,199 con lo cual no puede cambiarlo, para el ajeno será public 93 00:03:57,199 --> 00:03:58,560 porque es ese, dime 94 00:03:58,560 --> 00:04:02,599 hombre, si no pones void es un método muy mal hecho 95 00:04:02,599 --> 00:04:06,460 pero ¿cómo vas a poder no ponerlo? 96 00:04:08,419 --> 00:04:09,219 cualquier método 97 00:04:09,219 --> 00:04:11,319 o devuelve algo o devuelve Void. 98 00:04:12,900 --> 00:04:13,159 Vale. 99 00:04:13,819 --> 00:04:15,219 Con lo cual es que... 100 00:04:16,740 --> 00:04:21,220 A ver, como aquí no especificamos nada... 101 00:04:23,500 --> 00:04:25,060 Vale, criatura mística. 102 00:04:26,120 --> 00:04:26,699 Pues venga. 103 00:04:27,500 --> 00:04:29,199 La criatura mística es una clase. 104 00:04:38,160 --> 00:04:40,259 Vale, la criatura mística... 105 00:04:41,360 --> 00:04:43,319 implementa 106 00:04:43,319 --> 00:04:47,060 no, la interfaz que se llama 107 00:04:47,060 --> 00:04:48,180 poder místico, perdón 108 00:04:48,180 --> 00:04:53,279 implementa poder místico 109 00:04:53,279 --> 00:04:55,240 con lo cual al implementar poder místico 110 00:04:55,240 --> 00:04:58,139 tienes que hacer el método 111 00:04:58,139 --> 00:05:00,879 entonces como estamos así en plan rápido 112 00:05:00,879 --> 00:05:02,759 luego según vayamos avanzando en el enunciado 113 00:05:02,759 --> 00:05:04,399 vamos a ver que pongo ahí dentro 114 00:05:04,399 --> 00:05:06,199 pero que lo tengo que implementar, eso está claro 115 00:05:06,199 --> 00:05:08,399 vale, entonces 116 00:05:08,399 --> 00:05:11,040 la clase abstracta 117 00:05:11,040 --> 00:05:13,279 además tiene nombre y edad 118 00:05:13,279 --> 00:05:15,000 y describir catura 119 00:05:15,000 --> 00:05:16,759 con la información básica. Pues venga. 120 00:05:17,540 --> 00:05:19,019 La clase abstracta 121 00:05:19,019 --> 00:05:21,040 pues le vamos a poner nombre y edad. 122 00:05:28,019 --> 00:05:30,480 Justo eso iba a decir. Que como ya 123 00:05:30,480 --> 00:05:31,860 una clase abstracta 124 00:05:31,860 --> 00:05:34,199 siempre está pensada para edad de ella, 125 00:05:34,360 --> 00:05:36,339 siempre, pues efectivamente ya de partida 126 00:05:36,339 --> 00:05:37,800 le pongamos 127 00:05:37,800 --> 00:05:38,860 protector. ¿Vale? 128 00:05:42,480 --> 00:05:46,639 nadie jamás ha dicho eso 129 00:05:46,639 --> 00:05:47,839 tonto no 130 00:05:47,839 --> 00:05:49,540 charlatán un rato 131 00:05:49,540 --> 00:05:53,040 venga 132 00:05:53,040 --> 00:05:54,720 vale pues ya está 133 00:05:54,720 --> 00:05:56,439 dígame 134 00:05:56,439 --> 00:05:59,319 si 135 00:05:59,319 --> 00:06:00,139 a ver 136 00:06:00,139 --> 00:06:02,019 mucho mucho más no 137 00:06:02,019 --> 00:06:03,019 pero lo puedo intentar 138 00:06:03,019 --> 00:06:06,300 si 139 00:06:06,300 --> 00:06:09,480 se me va el ordenador 140 00:06:09,480 --> 00:06:10,139 vale 141 00:06:10,139 --> 00:06:11,319 como una clase abstracta 142 00:06:11,319 --> 00:06:13,259 tracta. Por definición, está 143 00:06:13,259 --> 00:06:15,199 pensada para heredar de ella, porque no está 144 00:06:15,199 --> 00:06:16,420 pensada para instanciar objetos. 145 00:06:17,079 --> 00:06:18,839 Entonces, si ya va a tener herederos, 146 00:06:19,259 --> 00:06:19,680 pues este 147 00:06:19,680 --> 00:06:24,399 modificador 148 00:06:24,399 --> 00:06:27,240 se adapta, porque este modificador permite 149 00:06:27,240 --> 00:06:29,339 usar la propiedad desde la subclase. 150 00:06:29,500 --> 00:06:30,360 Entonces, se adapta mejor. 151 00:06:31,240 --> 00:06:32,779 Y luego, además, dice 152 00:06:32,779 --> 00:06:35,160 como es protected, 153 00:06:35,160 --> 00:06:37,000 pues tiene sentido poner los 154 00:06:37,000 --> 00:06:37,939 get y set, claro. 155 00:06:39,819 --> 00:06:41,100 Para los dos. 156 00:06:41,319 --> 00:06:45,060 y luego podríamos ponerle un constructor 157 00:06:45,060 --> 00:06:46,680 pero bueno, si estamos en modo examen 158 00:06:46,680 --> 00:06:48,620 vamos a ir poniendo las cosas según las necesitemos 159 00:06:48,620 --> 00:06:51,000 pues podemos ir aparcando 160 00:06:51,000 --> 00:06:55,120 bueno, una cosa es el modo examen 161 00:06:55,120 --> 00:06:56,680 que yo voy resolviendo, primero entiendo 162 00:06:56,680 --> 00:06:58,800 lo que tengo que hacer, y luego voy resolviendo 163 00:06:58,800 --> 00:07:00,459 y voy poniendo las cosas según voy necesitando 164 00:07:00,459 --> 00:07:02,279 y decir, no me relajo 165 00:07:02,279 --> 00:07:04,779 y digo, voy a poner 200 constructores 166 00:07:04,779 --> 00:07:06,720 y si lo necesito o no, voy a poner 167 00:07:06,720 --> 00:07:08,459 no sé qué, no es el momento de relajarse 168 00:07:08,459 --> 00:07:09,860 ¿vale? 169 00:07:09,860 --> 00:07:11,860 Venga, pues a ver 170 00:07:11,860 --> 00:07:14,240 La clase abstracta tiene describir criatura 171 00:07:14,240 --> 00:07:16,160 Que imprima la información básica 172 00:07:16,160 --> 00:07:16,779 De la criatura 173 00:07:16,779 --> 00:07:19,240 Pues hombre, describir criatura 174 00:07:19,240 --> 00:07:25,430 Este es como si fuera un tuestrín 175 00:07:25,430 --> 00:07:27,170 En realidad, es un tuestrín 176 00:07:27,170 --> 00:07:29,230 Describir criatura 177 00:07:29,230 --> 00:07:31,509 Pues nada, vamos a hacerlo muy rápido 178 00:07:31,509 --> 00:07:36,189 Nombre 179 00:07:36,189 --> 00:07:40,370 No, porque las propiedades ya están ahí 180 00:07:40,370 --> 00:07:43,670 ¿Ya puedo darle ahí 181 00:07:43,670 --> 00:07:44,569 una implementación? 182 00:07:48,870 --> 00:07:49,709 Vale, a ver. 183 00:07:50,769 --> 00:07:51,790 Luego yo puedo 184 00:07:51,790 --> 00:07:53,370 en una subclase cambiarla. 185 00:07:53,730 --> 00:07:55,670 Vale, pero... 186 00:07:56,610 --> 00:07:57,329 Vale, vale, vale. 187 00:07:57,410 --> 00:07:59,449 Vamos a ver. Y un método abstracto. 188 00:07:59,509 --> 00:08:00,269 Perdón, perdón. 189 00:08:01,689 --> 00:08:03,829 Perdón, perdón, que es que estoy leyendo muy rápido. 190 00:08:04,569 --> 00:08:05,750 Ya dice que es abstracto. 191 00:08:05,750 --> 00:08:06,189 Vale. 192 00:08:07,490 --> 00:08:08,250 De todas maneras, 193 00:08:08,250 --> 00:08:12,410 al poner un método abstracto 194 00:08:12,410 --> 00:08:14,689 ya automáticamente hay que poner aquí el abstract 195 00:08:14,689 --> 00:08:16,970 y ya está 196 00:08:16,970 --> 00:08:17,350 vale 197 00:08:17,350 --> 00:08:18,930 también 198 00:08:18,930 --> 00:08:22,670 public voy a describir criatura 199 00:08:22,670 --> 00:08:24,509 te voy a poner el abstract también aquí 200 00:08:24,509 --> 00:08:26,829 vale 201 00:08:26,829 --> 00:08:28,449 entonces aquí 202 00:08:28,449 --> 00:08:31,050 en este pues lógicamente está muy masticado 203 00:08:31,050 --> 00:08:32,929 que esto tiene que ser 204 00:08:32,929 --> 00:08:34,950 interfaz, que esto clase abstracta 205 00:08:34,950 --> 00:08:36,870 que esto método abstracto no tiene por qué ser así 206 00:08:36,870 --> 00:08:39,370 por el propio contexto del problema 207 00:08:39,370 --> 00:08:40,809 se puede deducir 208 00:08:40,809 --> 00:08:43,090 si va a ser abstracta no puede ser abstracta también 209 00:08:43,090 --> 00:08:43,850 ¿vale? 210 00:08:45,389 --> 00:08:46,669 ha sonado tal cual 211 00:08:46,669 --> 00:08:48,610 en el examen no te va a salir así 212 00:08:48,610 --> 00:08:50,809 la verdad es que para algunas cosas sois muy tontos 213 00:08:50,809 --> 00:08:52,809 y para otras sois muy listos 214 00:08:52,809 --> 00:08:53,990 ¿eso qué significa? 215 00:08:54,350 --> 00:08:56,169 pues no 216 00:08:56,169 --> 00:08:59,009 que así no lo ponían en el examen 217 00:08:59,009 --> 00:09:01,269 bueno, venga, seguimos 218 00:09:01,269 --> 00:09:02,990 o sea que para el año pasado se lo ponían 219 00:09:02,990 --> 00:09:04,269 para tontos, pero para nosotros no 220 00:09:04,269 --> 00:09:05,769 es que no somos tontos 221 00:09:05,769 --> 00:09:11,090 No, de los del año pasado 222 00:09:11,090 --> 00:09:13,049 No, los del año pasado 223 00:09:13,049 --> 00:09:16,850 No 224 00:09:16,850 --> 00:09:19,509 Los que éramos tontos 225 00:09:19,509 --> 00:09:21,429 El año pasado éramos nosotros 226 00:09:21,429 --> 00:09:23,570 Igual que preguntábamos chorradas 227 00:09:23,570 --> 00:09:24,950 Ya está 228 00:09:24,950 --> 00:09:26,649 Bueno, a ver 229 00:09:26,649 --> 00:09:28,909 Tenemos que hacer el otro también antes de irnos 230 00:09:28,909 --> 00:09:29,830 Que es el más complicado 231 00:09:29,830 --> 00:09:32,690 Venga, pues ya está 232 00:09:32,690 --> 00:09:33,929 Método abstracto 233 00:09:33,929 --> 00:09:36,029 Que queda hora y media, pero que como nos enrollemos 234 00:09:36,029 --> 00:09:36,809 tanto en cada cosa. 235 00:09:37,950 --> 00:09:39,470 Eh, no me hables así, ¿eh? 236 00:09:43,850 --> 00:09:44,330 Venga. 237 00:09:47,710 --> 00:09:49,629 Dragón, unicornio, elfo. Venga. 238 00:09:50,789 --> 00:09:51,929 Que heredan 239 00:09:51,929 --> 00:09:53,769 de criatura mística y añaden 240 00:09:53,769 --> 00:09:55,970 cada uno una característica. Pues venga. 241 00:09:56,789 --> 00:09:58,009 Hacemos dragón, unicornio 242 00:09:58,009 --> 00:10:01,539 solo, ¿vale? Pues a ver. 243 00:10:06,690 --> 00:10:07,169 Dragón. 244 00:10:07,169 --> 00:10:11,090 dragón, hereda de criatura mística 245 00:10:11,090 --> 00:10:17,309 vale 246 00:10:17,309 --> 00:10:20,649 entonces al heredar de criatura mística 247 00:10:20,649 --> 00:10:23,649 tiene que implementar este método 248 00:10:23,649 --> 00:10:26,149 y aparte añade, dice que añade una propiedad 249 00:10:26,149 --> 00:10:27,070 la que nos dé la gana 250 00:10:27,070 --> 00:10:28,929 pues va a añadir la propiedad 251 00:10:28,929 --> 00:10:30,970 temperatura del fuego, por ejemplo 252 00:10:30,970 --> 00:10:33,629 porque es un dragón 253 00:10:33,629 --> 00:10:37,649 y temperatura del fuego 254 00:10:37,649 --> 00:10:39,169 vale 255 00:10:39,169 --> 00:10:42,549 Entonces, describir criatura 256 00:10:42,549 --> 00:10:43,669 Ahora ya la podemos 257 00:10:43,669 --> 00:10:51,179 La podemos definir 258 00:10:51,179 --> 00:10:52,580 Como nombre 259 00:10:52,580 --> 00:11:00,470 Nombre 260 00:11:00,470 --> 00:11:02,289 El otro era la edad de la criaturita 261 00:11:02,909 --> 00:11:05,529 Y 262 00:11:05,529 --> 00:11:08,909 La temperatura del fuego 263 00:11:08,909 --> 00:11:16,529 Bueno, es que me han dicho 264 00:11:16,529 --> 00:11:17,970 Que lo llame describir criatura 265 00:11:17,970 --> 00:11:19,950 Pues yo lo llamo, a ver, puedo hacer un twist 266 00:11:19,950 --> 00:11:21,850 Y luego cambiar el método y me ahorro escribir un montón 267 00:11:21,850 --> 00:11:24,629 así que veis como sois muy listos 268 00:11:24,629 --> 00:11:25,769 yo no sé como luego a veces 269 00:11:25,769 --> 00:11:27,970 parecéis no serlo 270 00:11:27,970 --> 00:11:33,909 yo soy como tonto pero sin el como 271 00:11:33,909 --> 00:11:36,090 no, no, no, es verdad 272 00:11:36,090 --> 00:11:36,950 os vendéis fatal 273 00:11:36,950 --> 00:11:39,289 venga, a ver 274 00:11:39,289 --> 00:11:40,970 dragón, cada uno 275 00:11:40,970 --> 00:11:42,929 venga, y el unicornio 276 00:11:42,929 --> 00:11:46,470 el unicornio lo que le mide el cuerno 277 00:11:46,470 --> 00:11:50,169 ya está comprando 278 00:11:50,169 --> 00:11:55,009 A ver, es lo que se nos ocurrió 279 00:11:55,009 --> 00:12:04,549 A ver, ¿tú has visto unicornios con muchas patas? 280 00:12:04,710 --> 00:12:05,649 ¿Con más de cuatro o menos? 281 00:12:06,950 --> 00:12:08,110 Hombre, sueños 282 00:12:08,110 --> 00:12:10,029 Si consideras a un narval 283 00:12:10,029 --> 00:12:12,269 Un narval, ¿qué es eso? 284 00:12:12,269 --> 00:12:13,049 ¿Qué es un unicornio? 285 00:12:13,210 --> 00:12:16,470 Es un 286 00:12:16,470 --> 00:12:18,309 Un mamífero marino 287 00:12:18,309 --> 00:12:20,129 Que tiene un colmillo que más de un cuerno 288 00:12:20,129 --> 00:12:23,409 ¿Tú también eres muy aficionado a videojuegos? 289 00:12:23,549 --> 00:12:24,629 Sí, a literatura fantástica 290 00:12:24,629 --> 00:12:26,070 Ah 291 00:12:26,070 --> 00:12:29,330 Narval, con V 292 00:12:29,330 --> 00:12:33,090 Ah, pues luego lo busco 293 00:12:33,090 --> 00:12:34,690 In 294 00:12:34,690 --> 00:12:38,929 Venga 295 00:12:38,929 --> 00:12:41,409 El tamaño del cuerno 296 00:12:41,409 --> 00:12:41,950 Ala 297 00:12:41,950 --> 00:12:46,230 Tiene este método 298 00:12:46,230 --> 00:12:49,110 Tenía que haber hecho delto string 299 00:12:49,110 --> 00:12:49,710 Bueno 300 00:12:49,710 --> 00:12:55,169 Nombre 301 00:12:55,169 --> 00:12:59,549 Edad 302 00:12:59,549 --> 00:13:02,470 Sí 303 00:13:02,470 --> 00:13:05,730 Longitud del cuerno 304 00:13:05,730 --> 00:13:06,289 Vale 305 00:13:06,289 --> 00:13:10,009 A este le falta el getty set del cuerno 306 00:13:10,009 --> 00:13:11,529 Constructores estoy pasando 307 00:13:11,529 --> 00:13:13,490 Sin parámetros todo el rato y listo 308 00:13:13,490 --> 00:13:15,129 ¿Para qué? 309 00:13:15,409 --> 00:13:16,190 ¿Para qué qué? 310 00:13:17,090 --> 00:13:19,350 Por eso que los estoy dejando todos sin parámetros 311 00:13:19,350 --> 00:13:21,830 al no poner ninguno, todos tienen uno sin parámetros 312 00:13:21,830 --> 00:13:23,429 y en caso de necesidad uso ese y ya está. 313 00:13:23,590 --> 00:13:25,289 Por ahorrar tiempo, no porque sea 314 00:13:25,289 --> 00:13:27,690 recomendable. Y el dragón 315 00:13:27,690 --> 00:13:29,590 tampoco le he puesto el get y set del que falta. 316 00:13:33,370 --> 00:13:33,769 ¡Hala! 317 00:13:35,769 --> 00:13:36,169 ¡Amogollón! 318 00:13:37,149 --> 00:13:39,090 Vale, pues ya tenemos, el elfo pasa muy bien. 319 00:13:40,889 --> 00:13:41,610 No, ¿por qué? 320 00:13:42,389 --> 00:13:43,830 Porque los elfos 321 00:13:43,830 --> 00:13:44,870 son muñoños todos. 322 00:13:45,970 --> 00:13:46,370 ¡Venga! 323 00:13:46,370 --> 00:14:12,559 Ah, y hay que implementar, activar poder de la interfaz poder místico de manera única para cada clase. Vale, entonces, vale, pues hijo, cada uno, entonces tenemos poder místico, activar poder, criatura mística, implementa poder místico, vale. 324 00:14:12,559 --> 00:14:15,679 Y ahora 325 00:14:15,679 --> 00:14:24,370 Vale, pues el dragón 326 00:14:24,370 --> 00:14:29,799 Activa poder 327 00:14:29,799 --> 00:14:30,759 Vale 328 00:14:30,759 --> 00:14:35,490 Aquí sí que tengo que poner el public, obviamente 329 00:14:35,490 --> 00:14:36,649 Vale 330 00:14:36,649 --> 00:14:39,870 Tengo que activar el poder 331 00:14:39,870 --> 00:14:42,850 Por ejemplo 332 00:14:42,850 --> 00:14:44,250 ¿Por qué? 333 00:14:44,250 --> 00:14:45,710 Si criatura mítica 334 00:14:45,710 --> 00:14:47,990 Implementa por el mítico a los otros dos 335 00:14:47,990 --> 00:14:49,029 ¿Por qué se abstracta? 336 00:14:49,570 --> 00:14:50,909 A ver, ¿eh? 337 00:14:51,269 --> 00:14:54,070 ¿Por qué a los otros dos no se le ponen una vez el activo poder? 338 00:14:54,389 --> 00:14:58,250 Claro, porque es abstracta y las abstractas las tienes que implementar tú por tu cuenta. 339 00:15:00,750 --> 00:15:07,490 Vale, entonces, a ver, poder místico, activar poder, entonces criatura mística. 340 00:15:07,490 --> 00:15:14,090 Si fuera un método normal, tú lo podrías llamar, pero si lo pones como abstracto, tienes que implementarlo. 341 00:15:14,090 --> 00:15:32,090 A ver, a ver 342 00:15:32,090 --> 00:15:33,529 Vamos a ver 343 00:15:33,529 --> 00:15:35,789 Esta clase 344 00:15:35,789 --> 00:15:37,809 La clase criatura mística 345 00:15:37,809 --> 00:15:40,730 Como implementa, aunque sea abstracta 346 00:15:40,730 --> 00:15:42,230 Como implementa poder místico 347 00:15:42,230 --> 00:15:44,710 pues nos ha obligado a implementarla 348 00:15:44,710 --> 00:15:46,669 y lo hemos puesto así, pero luego al darnos cuenta 349 00:15:46,669 --> 00:15:47,669 de que era abstracta 350 00:15:47,669 --> 00:15:50,450 podíamos haberla dejado sin cuerpo también 351 00:15:50,450 --> 00:15:52,870 ¿vale? y entonces haberla implementado 352 00:15:52,870 --> 00:15:54,950 abajo, entonces al haberla implementado aquí vacía 353 00:15:54,950 --> 00:15:56,049 ¿vale? 354 00:15:56,649 --> 00:15:58,070 al haberla implementado aquí vacía 355 00:15:58,070 --> 00:15:59,929 no nos la pedía aquí 356 00:15:59,929 --> 00:16:01,929 pero si nos damos cuenta de que 357 00:16:01,929 --> 00:16:04,330 en el momento que la hemos convertido en abstracta 358 00:16:04,330 --> 00:16:06,769 porque esta ya es abstracta, esta implementación 359 00:16:06,769 --> 00:16:08,029 vacía que habíamos hecho la podemos quitar 360 00:16:08,029 --> 00:16:10,509 porque esta clase ya puede tener todos los métodos vacíos que quiera 361 00:16:10,509 --> 00:16:12,490 todo lo que quiera, entonces ese lo quito 362 00:16:12,490 --> 00:16:14,690 porque yo no sé cómo activa el poder una criatura mística 363 00:16:14,690 --> 00:16:16,590 genérica, entonces la ventaja 364 00:16:16,590 --> 00:16:18,649 que tengo de quitarlo, la ventaja que tengo 365 00:16:18,649 --> 00:16:20,370 es que ahora ya aquí me obliga 366 00:16:20,370 --> 00:16:22,250 entonces yo me doy cuenta de que tengo que hacerlo 367 00:16:22,250 --> 00:16:23,850 si no lo hubiera quitado 368 00:16:23,850 --> 00:16:25,570 si no lo hubiera quitado 369 00:16:25,570 --> 00:16:28,330 al decirme aquí implementa activar poder 370 00:16:28,330 --> 00:16:29,789 yo lo habría implementado, pero 371 00:16:29,789 --> 00:16:32,470 porque yo sé que tengo que implementarlo 372 00:16:32,470 --> 00:16:34,210 y lo implemento, pero no me habría obligado 373 00:16:34,210 --> 00:16:36,330 el compilador, porque ya tiene una versión vacía 374 00:16:36,330 --> 00:16:36,690 arriba 375 00:16:36,690 --> 00:16:39,110 entonces 376 00:16:39,110 --> 00:16:41,710 pero bien visto 377 00:16:41,710 --> 00:16:43,230 porque se me había olvidado quitarlo de aquí 378 00:16:43,230 --> 00:16:45,049 quitarlo y al no 379 00:16:45,049 --> 00:16:46,870 dejarlo ahí puesto 380 00:16:46,870 --> 00:16:47,889 pues no me obligaba 381 00:16:47,889 --> 00:16:51,570 claro, porque es abstracta, si le quitas el abstract 382 00:16:51,570 --> 00:16:52,889 lo tienes que poner 383 00:16:52,889 --> 00:16:55,470 porque lo implementa, aunque luego lo quieras 384 00:16:55,470 --> 00:16:57,269 dejar vacío y las que hereden de ella 385 00:16:57,269 --> 00:16:58,990 que pueden heredar de ella, aunque no sean abstractas 386 00:16:58,990 --> 00:17:00,529 le den otro valor, le den otro 387 00:17:00,529 --> 00:17:01,830 pero lo tienes que poner 388 00:17:01,830 --> 00:17:04,230 pero si la pones como abstracta y lo puedes quitar 389 00:17:04,230 --> 00:17:16,410 No, no, no, no, claro no 390 00:17:16,410 --> 00:17:18,809 Solo te lo pido obligatoriamente si es abstracta 391 00:17:18,809 --> 00:17:20,430 Si no, no, si no tú eliges 392 00:17:20,430 --> 00:17:22,170 Sobrescribirlo o quedarte con la versión de arriba 393 00:17:22,170 --> 00:17:24,329 Que ya está hecha, en este caso vacía 394 00:17:24,329 --> 00:17:27,750 Vale, entonces ahora en esta 395 00:17:27,750 --> 00:17:30,890 En unicornio 396 00:17:30,890 --> 00:17:32,930 Implementamos 397 00:17:32,930 --> 00:17:35,190 el método de activar 398 00:17:35,190 --> 00:17:36,710 poder que va a ser 399 00:17:36,710 --> 00:17:39,210 pues cualquier 400 00:17:39,210 --> 00:17:39,849 cosa 401 00:17:39,849 --> 00:17:42,869 eso 402 00:17:42,869 --> 00:17:46,569 no sé, no sé cómo 403 00:17:46,569 --> 00:17:48,910 activa un unicornio su poder 404 00:17:48,910 --> 00:17:51,109 no sé qué poderes son 405 00:17:51,109 --> 00:17:51,950 los de los unicornios 406 00:17:51,950 --> 00:17:56,950 vale, pues las clases 407 00:17:56,950 --> 00:17:58,769 ya están todas y aquí 408 00:17:58,769 --> 00:18:00,589 hombre, a lo mejor 409 00:18:00,589 --> 00:18:02,869 se podían haber hecho diferentes variantes 410 00:18:02,869 --> 00:18:06,289 Pero la idea es que queda una cosa coherente 411 00:18:06,289 --> 00:18:07,049 Y esto es coherente 412 00:18:07,049 --> 00:18:10,009 Y uno se va dando cuenta de ciertas cosas cuando lo va haciendo 413 00:18:10,009 --> 00:18:11,690 ¿Vale? 414 00:18:11,769 --> 00:18:14,529 Entonces ahora viene la parte interesante del ejercicio 415 00:18:14,529 --> 00:18:18,130 Que es hacer un main con diferentes criaturas 416 00:18:18,130 --> 00:18:20,329 Y ver si el uso del polimorfismo 417 00:18:20,329 --> 00:18:21,109 Pues lo hacéis bien 418 00:18:21,109 --> 00:18:22,809 Vale, un main 419 00:18:22,809 --> 00:18:25,930 Pues venga, vamos a hacer un main 420 00:18:25,930 --> 00:18:34,859 Un main 421 00:18:34,859 --> 00:18:37,259 Pues en el main dice 422 00:18:37,259 --> 00:18:37,839 A ver 423 00:18:37,839 --> 00:18:39,859 haz cuatro 424 00:18:39,859 --> 00:18:41,940 un array de cuatro criaturas 425 00:18:41,940 --> 00:18:42,720 místicas 426 00:18:42,720 --> 00:18:45,440 con un array 427 00:18:45,440 --> 00:18:48,099 no, porque este ejercicio 428 00:18:48,099 --> 00:18:49,819 no evaluaba el RA que 429 00:18:49,819 --> 00:18:51,019 incorpora, entonces 430 00:18:51,019 --> 00:18:54,059 perdona, se lo decís a los que hicieron el BOE 431 00:18:54,059 --> 00:18:55,380 que nos vuelven locos con esto 432 00:18:55,380 --> 00:18:57,480 por evaluar por separado 433 00:18:57,480 --> 00:18:59,940 si yo te meto aquí 434 00:18:59,940 --> 00:19:01,640 que en lugar de un array sea una lista 435 00:19:01,640 --> 00:19:04,460 te tengo que evaluar un porcentaje 436 00:19:04,460 --> 00:19:05,880 de la RA de no sé qué 437 00:19:05,880 --> 00:19:07,680 y ya mi es celpeta, así que 438 00:19:07,680 --> 00:19:11,859 ya estoy 439 00:19:11,859 --> 00:19:13,000 vale 440 00:19:13,000 --> 00:19:21,460 a ver, lo que no podéis es olvidaros de los 441 00:19:21,460 --> 00:19:23,579 arrays, más que nada porque este examen recupera 442 00:19:23,579 --> 00:19:25,740 todo lo anterior, entonces como puede recuperar 443 00:19:25,740 --> 00:19:26,380 todo lo anterior 444 00:19:26,380 --> 00:19:28,940 vale, entonces 445 00:19:28,940 --> 00:19:31,519 pero vamos a ver 446 00:19:31,519 --> 00:19:37,579 criatura mística 447 00:19:37,579 --> 00:19:41,940 Criatura mística 448 00:19:41,940 --> 00:19:44,440 Criaturas, esto es hacer un array 449 00:19:44,440 --> 00:19:48,759 New 450 00:19:48,759 --> 00:19:50,319 Criatura mística 451 00:19:50,319 --> 00:19:53,039 Han dicho 4 452 00:19:53,039 --> 00:19:55,099 Ya está, ya tenemos un array 453 00:19:55,099 --> 00:19:56,000 Vale, y ahora dice 454 00:19:56,000 --> 00:19:58,019 Poner una instancia diferente 455 00:19:58,019 --> 00:19:59,200 Pues venga, vamos a poner 456 00:19:59,200 --> 00:20:01,460 Vamos a hacer un dragón 457 00:20:01,460 --> 00:20:06,690 Y un unicornio 458 00:20:06,690 --> 00:20:07,869 O dos dragones 459 00:20:07,869 --> 00:20:09,430 Y dos unicornios 460 00:20:09,430 --> 00:20:10,809 Y los ponemos donde nos pete 461 00:20:10,809 --> 00:20:11,950 vale 462 00:20:11,950 --> 00:20:15,000 de 1. 463 00:20:18,579 --> 00:20:20,000 ¿por qué me deja? 464 00:20:22,660 --> 00:20:24,200 no, fijar en la edad 465 00:20:24,200 --> 00:20:26,660 pero porque me ofrece edad directamente 466 00:20:26,660 --> 00:20:28,079 porque no has puesto private 467 00:20:28,079 --> 00:20:29,019 ¿no he puesto private? 468 00:20:29,019 --> 00:20:30,519 sí, sí está puesto 469 00:20:30,519 --> 00:20:35,000 de 1 470 00:20:35,000 --> 00:20:36,759 criatura mística 471 00:20:36,759 --> 00:20:38,420 de este dragón 472 00:20:38,420 --> 00:20:50,809 Bueno, da igual 473 00:20:50,809 --> 00:20:52,509 Vamos a hacerlo con el set que es más bonito 474 00:20:52,509 --> 00:20:55,430 La edad del dragón 475 00:20:55,430 --> 00:20:56,410 Cuatro años 476 00:20:56,410 --> 00:20:58,650 Sí, hombre 477 00:20:58,650 --> 00:20:59,910 ¿Cuánto te crees que iba un dragón? 478 00:21:00,849 --> 00:21:02,710 El nombre del dragón 479 00:21:02,710 --> 00:21:04,049 Pues yo qué sé 480 00:21:04,049 --> 00:21:05,970 Anita 481 00:21:05,970 --> 00:21:08,720 Y 482 00:21:08,720 --> 00:21:11,880 Y no tiene más propiedades 483 00:21:11,880 --> 00:21:13,940 Ah, sí, alta la temperatura del fuego 484 00:21:13,940 --> 00:21:18,000 Pues venga, 100 485 00:21:18,000 --> 00:21:19,000 ¿Cómo allá? 486 00:21:19,500 --> 00:21:21,700 ¿Sabes que en el escudo antiguo del metro había un dragón? 487 00:21:22,220 --> 00:21:22,539 ¿Ah, sí? 488 00:21:22,559 --> 00:21:25,480 Se lo inventaron porque se metieron con el escudo de Madrid 489 00:21:25,480 --> 00:21:27,579 Añadimos un dragón 490 00:21:27,579 --> 00:21:29,539 Es una dragón así con moño 491 00:21:29,539 --> 00:21:32,539 ¿Qué cosas? 492 00:21:32,539 --> 00:21:32,700 ¿Qué cosas? 493 00:21:32,700 --> 00:21:43,220 Venga, ahí vamos a hacernos dos unicornios 494 00:21:43,220 --> 00:22:00,289 Vale, uno punto 495 00:22:00,289 --> 00:22:03,730 Uno punto 496 00:22:03,730 --> 00:22:07,369 Claro, y sin embargo en el unicornio no me lo ofrece 497 00:22:07,369 --> 00:22:08,329 Y en el dragón sí 498 00:22:08,329 --> 00:22:12,369 Y en el unicornio 499 00:22:12,369 --> 00:22:13,490 Qué raro 500 00:22:13,490 --> 00:22:18,289 Bueno, da igual 501 00:22:18,289 --> 00:22:19,650 Será una chorrada 502 00:22:19,650 --> 00:22:21,769 Del entorno 503 00:22:21,769 --> 00:22:24,329 Venga, unicornio tiene 100 años 504 00:22:24,329 --> 00:22:29,349 Y el cuerno le mide mucho 505 00:22:29,349 --> 00:22:32,430 50 centímetros 506 00:22:32,430 --> 00:22:34,109 No es tan grande 507 00:22:34,109 --> 00:22:35,109 Yo diría que está en la media 508 00:22:35,109 --> 00:22:36,049 Vaya hombre 509 00:22:36,049 --> 00:22:40,109 Y se llama 510 00:22:40,109 --> 00:22:42,750 María 511 00:22:42,750 --> 00:22:56,190 Venga, unicornio 2 512 00:22:56,190 --> 00:22:59,769 El unicornio 2 tiene 2 513 00:22:59,769 --> 00:23:01,450 Y el cuerno le mide un poco menos 514 00:23:01,450 --> 00:23:05,269 Y se llama Carlos 515 00:23:05,269 --> 00:23:07,950 Y ahora ya, pues ya está 516 00:23:07,950 --> 00:23:14,240 Criaturas 0 517 00:23:14,240 --> 00:23:16,339 Iguala de 1 518 00:23:16,339 --> 00:23:23,380 Sí, sí, sí, perdón 519 00:23:23,380 --> 00:23:25,180 Estoy pisando a uno con el otro 520 00:23:25,180 --> 00:23:30,079 Y el dragón también con el copia y pega 521 00:23:30,079 --> 00:23:38,190 Sí, sí, estáis muy espabilados 522 00:23:38,190 --> 00:23:39,549 Sí, sí 523 00:23:39,549 --> 00:23:45,940 Criaturas 524 00:23:45,940 --> 00:23:48,200 Dos 525 00:23:48,200 --> 00:23:50,019 Iguala 526 00:23:50,019 --> 00:24:03,119 Unicornio 1 y criaturas 3 igual a el unicornio 2. 527 00:24:03,119 --> 00:24:07,900 Vale, ya tenemos el array con cuatro instancias cualesquiera que se nos han ocurrido. 528 00:24:08,380 --> 00:24:10,680 Y ahora, ¿qué tenemos que hacer? 529 00:24:13,700 --> 00:24:18,660 Vamos a mostrar la descripción de todas y activar el poder solo de los elfos. 530 00:24:18,720 --> 00:24:22,259 Pues lo cambiamos, solo de los unicornios. 531 00:24:22,259 --> 00:24:24,380 vale, vamos a mostrar la descripción 532 00:24:24,380 --> 00:24:26,180 de todas las criaturas, vale, pues entonces 533 00:24:26,180 --> 00:24:27,299 vamos a recorrer el array 534 00:24:27,299 --> 00:24:38,799 como tenemos que 535 00:24:38,799 --> 00:24:41,160 criatura mística 536 00:24:41,160 --> 00:24:44,549 perdón, vale 537 00:24:44,549 --> 00:24:49,539 activar el poder de todas 538 00:24:49,539 --> 00:24:51,019 no, activar 539 00:24:51,019 --> 00:24:52,599 mostrar la descripción de todas 540 00:24:52,599 --> 00:24:55,359 vale, pues aquí está claro 541 00:24:55,359 --> 00:24:57,319 describir criatura 542 00:24:57,319 --> 00:24:59,119 para todas y cada una me hará 543 00:24:59,119 --> 00:25:01,019 el describir criatura suyo, cada una 544 00:25:01,019 --> 00:25:02,579 el suyo, pero 545 00:25:02,579 --> 00:25:04,900 activar poder solo de las que 546 00:25:04,900 --> 00:25:05,240 sean 547 00:25:05,240 --> 00:25:08,839 dragones, por ejemplo, hemos dicho 548 00:25:08,839 --> 00:25:10,819 claro, entonces 549 00:25:10,819 --> 00:25:12,779 esta es la forma buena de hacerlo 550 00:25:12,779 --> 00:25:14,359 si 551 00:25:14,359 --> 00:25:16,819 c instance 552 00:25:16,819 --> 00:25:17,460 of 553 00:25:17,460 --> 00:25:19,500 dragón 554 00:25:19,500 --> 00:25:22,359 solo en ese caso 555 00:25:22,359 --> 00:25:23,680 solo en ese caso 556 00:25:23,680 --> 00:25:24,819 c punto 557 00:25:24,819 --> 00:25:27,019 activar poder 558 00:25:27,019 --> 00:25:35,920 y se acabó el ejercicio, vale, matiz 559 00:25:35,920 --> 00:25:37,940 aquí uno podría haber 560 00:25:37,940 --> 00:25:39,859 hecho. Hombre, como 561 00:25:39,859 --> 00:25:42,099 las sello, porque las tengo aquí arriba, las he visto, 562 00:25:43,559 --> 00:25:43,759 pues 563 00:25:43,759 --> 00:25:45,519 paso del instance of 564 00:25:45,519 --> 00:25:48,000 y decimos, bueno, pues 565 00:25:48,000 --> 00:25:50,119 en las dos primeras iteraciones 566 00:25:50,119 --> 00:25:51,900 o simplemente hago 567 00:25:51,900 --> 00:25:53,440 el for para este y luego me hago aquí. 568 00:25:53,920 --> 00:25:55,720 De uno punto activar poder y de dos 569 00:25:55,720 --> 00:25:57,660 punto activar poder. Pero, hombre, 570 00:25:57,779 --> 00:25:58,819 eso no lo valoramos. 571 00:26:00,200 --> 00:26:01,980 Especificamos, porque esto no es polimorfismo. 572 00:26:03,420 --> 00:26:05,779 O no lo valoramos del todo. Sabía yo que 573 00:26:05,779 --> 00:26:06,640 William iba a levantar la mano. 574 00:26:06,640 --> 00:26:08,359 Dime 575 00:26:08,359 --> 00:26:23,539 Perdón, perdón, es que no te he oído 576 00:26:23,539 --> 00:26:24,420 No te he entendido 577 00:26:24,420 --> 00:26:37,440 Nada, ninguna 578 00:26:37,440 --> 00:26:38,799 O sea, criar 579 00:26:38,799 --> 00:26:40,759 Ninguna 580 00:26:40,759 --> 00:26:44,099 Ninguna, o sea, yo puedo pasar de D1 581 00:26:44,099 --> 00:26:45,299 Lo he hecho así para que esté más organizado 582 00:26:45,299 --> 00:26:47,220 Puedo hacer criaturas de 0, New Unicorn 583 00:26:47,220 --> 00:26:49,819 Y luego criaturas de 0 puntos en nombre, criaturas de 1 584 00:26:49,819 --> 00:26:51,500 New Dragón, ninguna 585 00:26:51,500 --> 00:26:53,720 ¿Cómo se llama? 586 00:26:57,500 --> 00:26:57,940 ¿Perdón? 587 00:26:58,180 --> 00:27:00,720 ¿Cuál es el nombre técnico del dragón primero? 588 00:27:01,779 --> 00:27:04,140 ¿El nombre técnico del dragón primero? 589 00:27:07,440 --> 00:27:10,000 No entiendo la pregunta. 590 00:27:10,299 --> 00:27:10,920 ¿Tú lo entiendes? 591 00:27:11,000 --> 00:27:12,799 El nombre técnico del dragón primero. 592 00:27:14,059 --> 00:27:15,599 El segundo dragón es la instancia. 593 00:27:16,259 --> 00:27:17,640 El primer dragón quiere... 594 00:27:17,640 --> 00:27:20,119 ¿Qué? 595 00:27:20,640 --> 00:27:22,740 El segundo dragón es la instancia. 596 00:27:22,880 --> 00:27:23,299 El primer... 597 00:27:23,299 --> 00:27:24,279 Todos son instancias. 598 00:27:24,960 --> 00:27:25,700 No te entiendo. 599 00:27:27,279 --> 00:27:29,400 O sea, yo estoy haciendo un dragón, 600 00:27:30,059 --> 00:27:30,759 otro dragón, 601 00:27:31,039 --> 00:27:32,279 un unicornio y otro unicornio. 602 00:27:32,279 --> 00:27:33,140 No me refiero a esto. 603 00:27:33,200 --> 00:27:34,000 ¿A qué te refieres? 604 00:27:34,019 --> 00:27:34,700 A la de la vuelta. 605 00:27:37,440 --> 00:27:39,480 que tienes un dragón en la 606 00:27:39,480 --> 00:27:40,660 ahora te agachas 607 00:27:40,660 --> 00:27:53,099 esto que hace 608 00:27:53,099 --> 00:27:55,380 referencia 609 00:27:55,380 --> 00:27:57,880 esta es la clase 610 00:27:57,880 --> 00:27:59,920 o sea esta es una referencia 611 00:27:59,920 --> 00:28:01,579 de clase dragón que se instancia 612 00:28:01,579 --> 00:28:02,799 como clase dragón 613 00:28:02,799 --> 00:28:05,319 tu pregunta es podría poner aquí 614 00:28:05,319 --> 00:28:07,059 criatura mística, si claro que puedes 615 00:28:07,059 --> 00:28:12,440 cuando hago list 616 00:28:12,440 --> 00:28:14,259 es que esto de list criaturas de cero 617 00:28:14,259 --> 00:28:14,859 es lo que he perdido 618 00:28:14,859 --> 00:28:16,140 ¿qué es list criaturas de cero? 619 00:28:16,680 --> 00:28:17,440 perdón, claro 620 00:28:17,440 --> 00:28:20,259 criaturas 621 00:28:20,259 --> 00:28:22,119 a mi arraigo he llamado criaturas 622 00:28:22,119 --> 00:28:23,980 cuando hago criaturas de cero 623 00:28:23,980 --> 00:28:25,859 igual a new dragon 624 00:28:25,859 --> 00:28:26,700 sí 625 00:28:26,700 --> 00:28:30,079 ¿cómo se llama lo de izquierda? 626 00:28:30,160 --> 00:28:30,759 tiene un nombre 627 00:28:30,759 --> 00:28:32,599 instancia, no te entiendo 628 00:28:32,599 --> 00:28:35,380 vale, o sea 629 00:28:35,380 --> 00:28:38,839 Sí, a ver, pero 630 00:28:38,839 --> 00:28:40,720 Claro, yo podría, si es lo que te acabo de decir 631 00:28:40,720 --> 00:28:42,740 Yo podría, en lugar de haberlas 632 00:28:42,740 --> 00:28:44,059 Hecho por separado 633 00:28:44,059 --> 00:28:45,660 Pues haber hecho aquí 634 00:28:45,660 --> 00:28:48,720 Criaturas de cero igual a New Dragon 635 00:28:48,720 --> 00:28:50,240 ¿Vale? 636 00:28:50,779 --> 00:28:52,920 Y lo que pasa es que ahora tendría que haber ido 637 00:28:52,920 --> 00:28:54,180 Poniendo las propiedades 638 00:28:54,180 --> 00:28:56,940 Criaturas de cero, punto 639 00:28:56,940 --> 00:28:57,859 No sé qué 640 00:28:57,859 --> 00:28:58,759 ¿Vale? 641 00:29:00,180 --> 00:29:01,559 Pero habría tenido un problema 642 00:29:01,559 --> 00:29:04,819 Y es que desde aquí, criaturas de cero 643 00:29:04,819 --> 00:29:07,200 no me habría dejado acceder 644 00:29:07,200 --> 00:29:09,440 al tamaño, al fuego 645 00:29:09,440 --> 00:29:11,799 claro, por eso ponemos 646 00:29:11,799 --> 00:29:12,359 la referencia 647 00:29:12,359 --> 00:29:15,519 lo que está sucediendo es que criaturas de 0 648 00:29:15,519 --> 00:29:17,839 igual a 1 dragón sería lo mismo 649 00:29:17,839 --> 00:29:19,240 que decir criaturas 650 00:29:19,240 --> 00:29:21,559 justo, justo 651 00:29:21,559 --> 00:29:23,460 sería lo mismo que si tú aquí pones 652 00:29:23,460 --> 00:29:25,119 criatura mística en vez de dragón 653 00:29:25,119 --> 00:29:27,559 cuál es el problema, que a la hora de 654 00:29:27,559 --> 00:29:29,440 esta propiedad no te dejaría fijarla 655 00:29:29,440 --> 00:29:30,920 tendrías que hacer un casting 656 00:29:30,920 --> 00:29:33,720 ¿vale? pero sería lo mismo efectivamente 657 00:29:33,720 --> 00:29:35,960 Pero esto no te dejaría hacerlo 658 00:29:35,960 --> 00:29:37,019 Haces un casting 659 00:29:37,019 --> 00:29:39,700 Para eso lo más cómodo es instanciar un dragón directamente 660 00:29:39,700 --> 00:29:40,740 ¿Vale? 661 00:29:42,400 --> 00:29:42,880 Vale 662 00:29:42,880 --> 00:29:49,710 Vale 663 00:29:49,710 --> 00:29:51,410 Pues esto está entendido 664 00:29:51,410 --> 00:29:53,769 ¿Vale? 665 00:29:53,809 --> 00:29:54,630 Entonces lo que decía 666 00:29:54,630 --> 00:29:56,049 Uno podría decir 667 00:29:56,049 --> 00:29:58,109 Hombre, hago lo que hace el ejercicio si hago 668 00:29:58,109 --> 00:29:59,849 De uno punto de escribir 669 00:29:59,849 --> 00:30:00,650 De dos punto de escribir 670 00:30:00,650 --> 00:30:01,650 De tres punto de escribir 671 00:30:01,650 --> 00:30:03,049 Y luego de uno punto activar 672 00:30:03,049 --> 00:30:03,829 De dos punto activar 673 00:30:03,829 --> 00:30:04,069 Ya 674 00:30:04,069 --> 00:30:05,509 Pero el ejercicio 675 00:30:05,509 --> 00:30:09,630 lo que valoramos es el uso del polimorfismo 676 00:30:09,630 --> 00:30:10,710 no sé si aquí estaba 677 00:30:10,710 --> 00:30:12,930 en la puntuación especificado 678 00:30:12,930 --> 00:30:15,250 pero vamos, no se valoraba igual 679 00:30:15,250 --> 00:30:17,210 lógicamente, porque si aquí 680 00:30:17,210 --> 00:30:19,269 me cambia, me cambian de 681 00:30:19,269 --> 00:30:20,849 orden estos de aquí 682 00:30:20,849 --> 00:30:22,230 esto ya no me funcionaría 683 00:30:22,230 --> 00:30:22,930 si lo habéis hecho 684 00:30:22,930 --> 00:30:33,319 vale, pues ya está 685 00:30:33,319 --> 00:30:34,799 vamos a por el otro 686 00:30:34,799 --> 00:30:36,339 que esto es muy largo 687 00:30:36,339 --> 00:30:39,400 venga, que tenemos una hora 688 00:30:39,400 --> 00:30:40,140 ¿eh? 689 00:30:43,140 --> 00:30:44,019 bueno, a ver 690 00:30:44,019 --> 00:30:44,619 no 691 00:30:44,619 --> 00:30:49,480 esto es lo que dice 692 00:30:49,480 --> 00:30:50,500 esto 693 00:30:50,500 --> 00:30:52,980 la RA4 al completo 694 00:30:52,980 --> 00:30:54,799 si este vídeo está hecho, la RA 695 00:30:54,799 --> 00:30:57,299 si sacas un 10 en este ejercicio, tienes un 10 696 00:30:57,299 --> 00:30:58,079 en la RA4 697 00:30:58,079 --> 00:31:01,519 si sacas un 10 en este ejercicio, tienes un 10 en la RA7 698 00:31:01,519 --> 00:31:03,299 como no encuentro el ejercicio de ese mañana 699 00:31:03,299 --> 00:31:07,059 Pues a ver, lo que no podéis es ser 700 00:31:07,059 --> 00:31:08,859 muy, tampoco 701 00:31:08,859 --> 00:31:10,720 unos flojos, por Dios. 702 00:31:11,680 --> 00:31:12,000 Venga. 703 00:31:13,400 --> 00:31:14,859 Vamos a hacer el 704 00:31:14,859 --> 00:31:16,220 ejercicio 1. 705 00:31:17,119 --> 00:31:18,859 A ver, que nos tenemos que ir 706 00:31:18,859 --> 00:31:21,259 puntuales, por favor. 707 00:31:21,420 --> 00:31:23,000 Que tenemos sueño y hambre y de todo. 708 00:31:25,599 --> 00:31:26,000 Dígame. 709 00:31:28,480 --> 00:31:29,519 Es que no nos va a dar tiempo 710 00:31:29,519 --> 00:31:30,279 hacer el ejercicio. 711 00:31:31,000 --> 00:31:32,579 A ver, ¿por qué no descansáis en paralelo 712 00:31:32,579 --> 00:31:34,059 Que lo vamos haciendo 713 00:31:34,059 --> 00:31:38,740 O sea, a ver 714 00:31:38,740 --> 00:31:40,339 Según hacemos los getter y setter 715 00:31:40,339 --> 00:31:41,619 Que es automático, pues ahí 716 00:31:41,619 --> 00:31:44,220 Hacéis un click y desconectáis un rato 717 00:31:44,220 --> 00:31:47,180 A ver, es que no va a dar tiempo a hacerlo 718 00:31:47,180 --> 00:31:48,680 No va a dar tiempo a hacerlo 719 00:31:48,680 --> 00:31:50,599 Venga, vamos a hacerlo 720 00:31:50,599 --> 00:31:52,539 Y el que necesita descansar, que desconecte un rato 721 00:31:52,539 --> 00:31:53,380 Y luego ya se engancha 722 00:31:53,380 --> 00:31:56,680 No, que soy muy listo 723 00:31:56,680 --> 00:32:05,720 de que lo pusimos 724 00:32:05,720 --> 00:32:06,200 en la virtual 725 00:32:06,200 --> 00:32:11,480 ay Silvia 726 00:32:11,480 --> 00:32:15,200 necesitas un poco más de magnesio 727 00:32:15,200 --> 00:32:17,059 venga 728 00:32:17,059 --> 00:32:21,559 pero si lo has preguntado tú 729 00:32:21,559 --> 00:32:25,059 ah Andrea tú también 730 00:32:25,059 --> 00:32:25,960 que mala uva 731 00:32:25,960 --> 00:32:29,819 tú esto, pasa tú primero 732 00:32:29,819 --> 00:32:30,799 no vaya a ser que 733 00:32:30,799 --> 00:32:35,460 de verdad, venga 734 00:32:35,460 --> 00:32:37,519 a ver 735 00:32:37,519 --> 00:32:39,519 modelo de datos 736 00:32:39,519 --> 00:32:41,759 silencio 737 00:32:41,759 --> 00:32:43,859 en lugar de leerlo y recrearnos 738 00:32:43,859 --> 00:32:44,859 en la lectura 739 00:32:44,859 --> 00:32:47,819 vamos a ir tirando sobre la marcha 740 00:32:47,819 --> 00:32:48,859 y vamos resolviendo 741 00:32:48,859 --> 00:32:49,640 vale 742 00:32:49,640 --> 00:32:53,640 esto va a ser un jueguito con cartas y barajas 743 00:32:53,640 --> 00:32:55,579 pues venga, primero la clase carta 744 00:32:55,579 --> 00:32:57,420 El palo y el número de carta 745 00:32:57,420 --> 00:32:57,819 Venga 746 00:32:57,819 --> 00:33:00,079 Clase carta 747 00:33:00,079 --> 00:33:03,539 Mientras lo haces, la mano te va sola y tú desconectas 748 00:33:03,539 --> 00:33:19,130 Palo, oros 749 00:33:19,130 --> 00:33:20,549 Y el número de la carta 750 00:33:20,549 --> 00:33:22,130 Venga 751 00:33:22,130 --> 00:33:27,690 stream 752 00:33:27,690 --> 00:33:28,769 palo 753 00:33:28,769 --> 00:33:34,250 que generación 754 00:33:34,250 --> 00:33:34,890 por dios 755 00:33:34,890 --> 00:33:43,190 que está fatal 756 00:33:43,190 --> 00:33:43,869 que le va a pasar 757 00:33:43,869 --> 00:33:47,430 a ver 758 00:33:47,430 --> 00:33:48,490 que he dicho 759 00:33:48,490 --> 00:33:49,630 que si queréis descansar 760 00:33:49,630 --> 00:33:50,529 como la mano va sola 761 00:33:50,529 --> 00:33:51,829 dejad que la mano vaya sola 762 00:33:51,829 --> 00:33:53,349 y mientras os relajáis 763 00:33:53,349 --> 00:33:54,369 ya está 764 00:33:54,369 --> 00:34:07,690 hombre, porque asumo 765 00:34:07,690 --> 00:34:10,050 que son una generación evolucionada 766 00:34:10,050 --> 00:34:19,769 de todas formas, ¿por qué vosotros asumís 767 00:34:19,769 --> 00:34:21,570 que eso solo lo malinterpretan los hombres? 768 00:34:21,829 --> 00:34:26,130 las mujeres que pasa 769 00:34:26,130 --> 00:34:26,969 que no usan la mano 770 00:34:26,969 --> 00:34:28,150 ni hacen nada tampoco 771 00:34:28,150 --> 00:34:32,190 en fin, de verdad 772 00:34:32,190 --> 00:34:34,269 vamos, carta ya está 773 00:34:34,269 --> 00:34:37,989 palo y no un cartas 774 00:34:37,989 --> 00:34:39,030 venga 775 00:34:39,030 --> 00:34:41,489 baraja 776 00:34:41,489 --> 00:34:44,190 un set de cartas 777 00:34:44,190 --> 00:34:47,570 no, porque he dicho 778 00:34:47,570 --> 00:34:48,489 que no haga falta 779 00:34:48,489 --> 00:34:50,190 yo voy al mínimo esfuerzo 780 00:34:50,190 --> 00:34:51,369 ahora mismo para que nos dé tiempo 781 00:34:51,369 --> 00:34:54,070 venga, baraja 782 00:34:54,070 --> 00:34:55,789 un conjunto de cartas 783 00:34:55,789 --> 00:34:57,530 vale 784 00:34:57,530 --> 00:35:07,380 vale, este 785 00:35:07,380 --> 00:35:09,639 os reconozco que no era fácil 786 00:35:09,639 --> 00:35:13,519 este no era fácil, a cambio el otro era muy fácil 787 00:35:13,519 --> 00:35:15,219 vale 788 00:35:15,219 --> 00:35:17,039 ¿por qué se caracteriza? 789 00:35:17,179 --> 00:35:19,380 por un set de cartas 790 00:35:22,679 --> 00:35:23,599 Venga 791 00:35:23,599 --> 00:35:27,760 Ponemos un haset 792 00:35:27,760 --> 00:35:30,019 Si luego me hacen cambiar de idea ya cambio 793 00:35:30,019 --> 00:35:31,400 Pero por ahora ponemos un haset 794 00:35:31,400 --> 00:35:33,980 A ver, si ponemos un triset 795 00:35:33,980 --> 00:35:35,340 Acordaos que la ventaja 796 00:35:35,340 --> 00:35:37,880 Si pongo un triset, ¿qué va a ocurrir? 797 00:35:37,940 --> 00:35:39,320 ¿Qué carta tiene que implementar comparable? 798 00:35:39,539 --> 00:35:41,860 ¿Y qué ventaja tengo? Que cuando luego lo liste 799 00:35:41,860 --> 00:35:43,800 Van a ser ordenados, esa es la ventaja 800 00:35:43,800 --> 00:35:44,820 Lo listo y ordenados 801 00:35:44,820 --> 00:35:47,739 En algún momento voy a tener que sacar cartas ordenadas por algo 802 00:35:47,739 --> 00:35:49,900 Si las tuviera que sacar ordenadas me vendría muy bien un triset 803 00:35:49,900 --> 00:35:51,619 Si no tengo que sacar las ordenadas dejo un haset 804 00:35:51,619 --> 00:35:52,900 Vale 805 00:35:52,900 --> 00:36:10,880 Vale. ¿Qué más me dice Baraja? Un constructor sin parámetros en el cual en la baraja se metan 40 cartas del 1 al 10 de cada palo. Uf, eso mismo digo yo. 806 00:36:10,880 --> 00:36:24,400 public baraja 807 00:36:24,400 --> 00:36:25,679 entonces 808 00:36:25,679 --> 00:36:28,559 tenemos que hacer 809 00:36:28,559 --> 00:36:30,139 un bucle 810 00:36:30,139 --> 00:36:33,099 para ir metiendo en las cartas 811 00:36:33,099 --> 00:36:34,820 entonces primero vámonos 812 00:36:34,820 --> 00:36:36,920 como tienen que ir del 1 al 10 813 00:36:36,920 --> 00:36:39,119 pues vamos a generar los numeritos 814 00:36:39,119 --> 00:36:41,179 del 1 al 10 porque son del 1 al 10 hemos dicho 815 00:36:41,179 --> 00:36:44,039 cartas del 1 al 10 816 00:36:44,039 --> 00:36:46,139 Vale, como sabemos programar, afortunadamente 817 00:36:46,139 --> 00:36:47,980 La parte de programar la tenemos superada 818 00:36:47,980 --> 00:36:49,800 Mientras 819 00:36:49,800 --> 00:36:52,400 Y sea menor o igual que 10 820 00:36:52,400 --> 00:36:54,099 Incrementando 821 00:36:54,099 --> 00:36:54,739 Y 822 00:36:54,739 --> 00:36:57,719 Pues le vamos metiendo aquí al amigo 823 00:36:57,719 --> 00:37:00,320 Cartas.add 824 00:37:00,320 --> 00:37:01,900 New 825 00:37:01,900 --> 00:37:03,780 Aquí me va a venir muy bien un constructo con parámetros 826 00:37:03,780 --> 00:37:04,440 Así que lo voy a hacer 827 00:37:04,440 --> 00:37:07,039 New carta 828 00:37:07,039 --> 00:37:12,039 Oros 829 00:37:12,039 --> 00:37:14,219 Y con el numerito 830 00:37:14,219 --> 00:37:14,440 Y 831 00:37:14,440 --> 00:37:18,079 y esto mismo lo hago 832 00:37:18,079 --> 00:37:20,599 para copas 833 00:37:20,599 --> 00:37:22,340 espadas y bastos 834 00:37:22,340 --> 00:37:28,579 bueno, ¿para qué quiero hacer un array normalito? 835 00:37:30,159 --> 00:37:30,840 porque pone 836 00:37:30,840 --> 00:37:34,059 oro, espadas, bastos y copas 837 00:37:34,059 --> 00:37:34,840 lo recorres 838 00:37:34,840 --> 00:37:37,760 sí, a ver, que lo podemos hacer de muchas formas 839 00:37:37,760 --> 00:37:39,440 yo esto es lo más sencillo 840 00:37:39,440 --> 00:37:44,199 copas y bastos me falta 841 00:37:44,199 --> 00:37:47,909 vale, entonces voy a estar 842 00:37:47,909 --> 00:37:49,690 metiendo en el constructor sin parámetros 843 00:37:49,690 --> 00:37:51,829 de cada palo 10 cartas 844 00:37:51,829 --> 00:37:54,269 ¿verdad? ¿qué es lo que quiero? de cada palo 10 cartas 845 00:37:54,269 --> 00:37:56,090 pues voy a hacer el constructor 846 00:37:56,090 --> 00:37:57,110 este con parámetros 847 00:37:57,110 --> 00:38:00,250 crear constructor string int 848 00:38:00,250 --> 00:38:02,010 que este constructor 849 00:38:02,010 --> 00:38:03,530 string int 850 00:38:03,530 --> 00:38:05,809 ¿qué nombres más feos le ha puesto? 851 00:38:05,969 --> 00:38:07,989 vamos a poner que le llame 852 00:38:07,989 --> 00:38:08,929 palo 853 00:38:08,929 --> 00:38:12,389 numcartas 854 00:38:12,389 --> 00:38:15,150 y ahora este constructor 855 00:38:15,150 --> 00:38:18,130 Pues dis.palo 856 00:38:18,130 --> 00:38:19,570 Igual a palo 857 00:38:19,570 --> 00:38:24,130 Y dis.numcartas 858 00:38:24,130 --> 00:38:27,469 Ala 859 00:38:27,469 --> 00:38:28,670 Vale 860 00:38:28,670 --> 00:38:31,329 Pues ya hemos avanzado algo del ejercicio 861 00:38:31,329 --> 00:38:32,489 Ya tenemos el constructor 862 00:38:32,489 --> 00:38:34,150 Ya tenemos un punto y medio 863 00:38:34,150 --> 00:38:35,969 Por esto, toma ya 864 00:38:35,969 --> 00:38:38,389 Solo con esto un punto y medio 865 00:38:38,389 --> 00:38:40,949 Clase jugador 866 00:38:40,949 --> 00:38:44,489 Nombre, puntuación 867 00:38:44,489 --> 00:38:46,989 y una lista con las cartas que tiene en cada momento. 868 00:38:48,630 --> 00:38:50,769 Pues venga, vamos a ver. 869 00:38:59,099 --> 00:39:00,380 Vale, entonces. 870 00:39:06,179 --> 00:39:06,699 Nombre. 871 00:39:13,699 --> 00:39:14,179 Puntuación. 872 00:39:14,179 --> 00:39:17,099 Y aquí es que nos lo han especificado 873 00:39:17,099 --> 00:39:18,679 Podrían no habernoslo especificado 874 00:39:18,679 --> 00:39:19,900 Entonces nosotros decidir 875 00:39:19,900 --> 00:39:21,280 En función de si 876 00:39:21,280 --> 00:39:23,639 ¿Va a ser necesario duplicados? 877 00:39:23,760 --> 00:39:26,159 No, si no es necesario duplicado 878 00:39:26,159 --> 00:39:27,059 Siempre un set 879 00:39:27,059 --> 00:39:29,679 Pues 880 00:39:29,679 --> 00:39:31,320 Podéis vosotros decidir 881 00:39:31,320 --> 00:39:33,059 Y si en el caso de que no se especifique 882 00:39:33,059 --> 00:39:34,039 Tomáis la decisión correcta 883 00:39:34,039 --> 00:39:35,219 Pues se puntúa un poquito más 884 00:39:35,219 --> 00:39:38,059 Vale, y entonces aquí nos han dicho que sea una lista 885 00:39:38,059 --> 00:39:40,760 La mano entonces 886 00:39:40,760 --> 00:39:41,800 Va a ser una lista 887 00:39:41,800 --> 00:39:46,119 New, pues lo que os dé la gana 888 00:39:46,119 --> 00:39:48,199 Venga, ArrayList, que siempre pongo LinkedList 889 00:39:48,199 --> 00:39:49,380 No sé por qué les tengo manía 890 00:39:49,380 --> 00:39:54,320 Tienes razón, vale, me has convencido 891 00:39:54,320 --> 00:39:56,739 De verdad, no, tienes razón 892 00:39:56,739 --> 00:39:59,059 Que lo he hecho así un poco a lo 893 00:39:59,059 --> 00:40:02,119 Que no es tanto mostrar 894 00:40:02,119 --> 00:40:04,320 Porque uno cuando juega a la jarda no está mostrando todo el rato 895 00:40:04,320 --> 00:40:06,280 Sino que está más bien cogiendo y sacando 896 00:40:06,280 --> 00:40:08,519 Efectivamente, cambiando 897 00:40:08,519 --> 00:40:13,809 Vale, pues venga 898 00:40:13,809 --> 00:40:14,969 Get y set 899 00:40:14,969 --> 00:40:20,920 No, pues muy bien, muy bien 900 00:40:20,920 --> 00:40:22,800 Todo eso son puntos 901 00:40:22,800 --> 00:40:23,840 Estas 902 00:40:23,840 --> 00:40:25,440 Vale 903 00:40:25,440 --> 00:40:29,559 Jugador ya tiene 904 00:40:29,559 --> 00:40:30,099 Eso 905 00:40:30,099 --> 00:40:31,960 Jugador 906 00:40:31,960 --> 00:40:35,219 Jugador además va a tener métodos 907 00:40:35,219 --> 00:40:35,599 Que es 908 00:40:35,599 --> 00:40:37,639 Recibir una carta 909 00:40:37,639 --> 00:40:41,280 Se añade la carta 910 00:40:41,280 --> 00:40:43,159 en su conjunto de cartas 911 00:40:43,159 --> 00:40:44,880 y entonces se elimina 912 00:40:44,880 --> 00:40:46,420 desde la baraja. 913 00:40:47,019 --> 00:40:47,699 ¿Vale? 914 00:40:48,559 --> 00:40:50,139 Vale. Entonces. 915 00:40:51,320 --> 00:40:56,500 Vale. Aquí lo que pasa es que hay que leerlo 916 00:40:56,500 --> 00:40:58,500 entero para que, porque en el 917 00:40:58,500 --> 00:41:00,460 main habrá 918 00:41:00,460 --> 00:41:02,480 un objeto baraja nuevo. Entonces. 919 00:41:04,079 --> 00:41:06,500 Elimina desde la baraja. Entonces. 920 00:41:07,820 --> 00:41:08,500 Vale. 921 00:41:10,500 --> 00:41:12,639 A ver. En el main 922 00:41:12,639 --> 00:41:13,139 esto 923 00:41:13,139 --> 00:41:16,280 que lo explicábamos 924 00:41:16,280 --> 00:41:17,900 en el enunciado 925 00:41:17,900 --> 00:41:19,840 cuando se leía entero y lo explicábamos 926 00:41:19,840 --> 00:41:23,360 pues la clase main 927 00:41:23,360 --> 00:41:24,239 ¿vale? 928 00:41:36,239 --> 00:41:38,099 pero lo que pasa es que entonces la baraja 929 00:41:38,099 --> 00:41:39,739 tendríamos que hacerla como un linked list 930 00:41:39,739 --> 00:41:41,320 y la baraja en este ejercicio 931 00:41:41,320 --> 00:41:44,219 está puesto 932 00:41:44,219 --> 00:41:45,840 que las cartas sean un set 933 00:41:45,840 --> 00:41:47,840 vale, entonces no podemos usar push y pull 934 00:41:47,840 --> 00:41:49,340 pero estaría bien pensado también 935 00:41:49,340 --> 00:41:51,059 vamos a poner a hacer exámenes 936 00:41:51,059 --> 00:41:53,539 vale, entonces 937 00:41:53,539 --> 00:41:55,820 la baraja de cartas 938 00:41:55,820 --> 00:41:59,739 no es tan fácil 939 00:41:59,739 --> 00:42:07,019 vale 940 00:42:07,019 --> 00:42:10,380 entonces la baraja de cartas 941 00:42:10,380 --> 00:42:12,579 es, os indicábamos 942 00:42:12,579 --> 00:42:14,260 una variable estática 943 00:42:14,260 --> 00:42:15,019 de mi aplicación 944 00:42:15,019 --> 00:42:16,980 entonces podéis ir avanzando el main 945 00:42:16,980 --> 00:42:19,300 con una variable estática aquí de mi aplicación 946 00:42:19,300 --> 00:42:21,539 y ahora ya 947 00:42:21,539 --> 00:42:23,219 jugador añade una carta 948 00:42:23,219 --> 00:42:25,280 y tendrá acceso a esta baraja 949 00:42:25,280 --> 00:42:26,119 para eliminarla 950 00:42:26,119 --> 00:42:29,159 porque si no habría que pasárselo por parámetro también 951 00:42:29,159 --> 00:42:31,719 y aquí no está indicado que se le pase por parámetro 952 00:42:31,719 --> 00:42:33,519 ¿vale? 953 00:42:34,400 --> 00:42:35,139 aún así 954 00:42:35,139 --> 00:42:37,019 si uno, pues en un momento dado 955 00:42:37,019 --> 00:42:38,340 en una situación como esta, dice 956 00:42:38,340 --> 00:42:40,960 ostras, ¿cómo ha accedido a la baraja para eliminar las cartas de la baraja? 957 00:42:41,059 --> 00:42:42,920 pues se la paso y lo agrega y se la pasa 958 00:42:42,920 --> 00:42:44,599 contamos cosas 959 00:42:44,599 --> 00:42:47,760 nosotros lo que evaluamos es que 960 00:42:47,760 --> 00:42:49,739 sepáis programar y hagáis cosas con sentido 961 00:42:49,739 --> 00:42:51,579 que resuelvan, no tanto 962 00:42:51,579 --> 00:42:53,219 que hagáis 963 00:42:53,219 --> 00:42:55,320 adapteis a 964 00:42:55,320 --> 00:42:57,579 algo exactamente 965 00:42:57,579 --> 00:42:59,840 pues venga, vamos a hacer el recibir carta de jugador 966 00:42:59,840 --> 00:43:03,199 ala, venga 967 00:43:03,199 --> 00:43:15,260 porque si es con peor lo disculpas 968 00:43:15,260 --> 00:43:17,340 vale, recibir carta 969 00:43:17,340 --> 00:43:19,360 añadir una carta 970 00:43:19,360 --> 00:43:21,019 a la mano 971 00:43:21,019 --> 00:43:22,179 vale 972 00:43:22,179 --> 00:43:44,579 Pues entonces, vale, mano.ad, carta, vale, esto ya está, y se elimina de la baraja. 973 00:43:44,579 --> 00:43:47,239 entonces aquí 974 00:43:47,239 --> 00:43:48,940 la baraja que es esta 975 00:43:48,940 --> 00:43:50,159 a la que yo puedo acceder 976 00:43:50,159 --> 00:43:51,920 tiene el método 977 00:43:51,920 --> 00:43:56,750 main.baraja 978 00:43:56,750 --> 00:44:00,269 main.baraja 979 00:44:00,269 --> 00:44:04,889 le podemos sacar 980 00:44:04,889 --> 00:44:07,570 las cartas 981 00:44:07,570 --> 00:44:16,170 ah es que tengo las cartas 982 00:44:16,170 --> 00:44:17,989 Ah, es que no tengo el get 983 00:44:17,989 --> 00:44:19,349 En Baraja no tengo el get 984 00:44:19,349 --> 00:44:21,130 No tengo el get 985 00:44:21,130 --> 00:44:23,289 Entonces necesito el get 986 00:44:23,289 --> 00:44:24,349 Es que como estoy haciendo 987 00:44:24,349 --> 00:44:27,269 Sobre la marcha 988 00:44:27,269 --> 00:44:29,250 Según vamos necesitando 989 00:44:29,250 --> 00:44:31,409 Pues entonces, aquí 990 00:44:31,409 --> 00:44:36,289 Yo aquí saco las cartas 991 00:44:36,289 --> 00:44:38,269 Y aquí tengo que borrar 992 00:44:38,269 --> 00:44:39,530 Esta carta 993 00:44:39,530 --> 00:44:41,349 Entonces ahora aquí es donde 994 00:44:41,349 --> 00:44:43,630 Cuando ya estoy usando colecciones 995 00:44:43,630 --> 00:44:45,929 Claro, aquí cuando ya estoy usando colecciones 996 00:44:45,929 --> 00:44:47,550 es cuando me paro y digo, a ver, cuidadín 997 00:44:47,550 --> 00:44:49,869 para que remove funcione 998 00:44:49,869 --> 00:44:51,050 tiene que tener el método 999 00:44:51,050 --> 00:44:53,949 hashCodeEquals en la clase 1000 00:44:53,949 --> 00:44:55,690 carta, para que él sepa 1001 00:44:55,690 --> 00:44:57,369 encontrar una igual a esta 1002 00:44:57,369 --> 00:44:59,389 ¿vale? pues entonces 1003 00:44:59,389 --> 00:45:01,849 esto ya nos lleva a ver si 1004 00:45:01,849 --> 00:45:03,630 dado que cartas es un hashSet 1005 00:45:03,630 --> 00:45:05,730 porque cartas en baraja 1006 00:45:05,730 --> 00:45:06,610 es un hashSet 1007 00:45:06,610 --> 00:45:09,590 pues esto me lleva 1008 00:45:09,590 --> 00:45:11,530 a ver si hay un hashCodeEquals 1009 00:45:11,530 --> 00:45:12,269 en carta 1010 00:45:12,269 --> 00:45:15,469 ¿hay un hashCodeEquals en carta? 1011 00:45:15,469 --> 00:45:17,090 no, tenemos que ponérselo 1012 00:45:17,090 --> 00:45:19,369 ¿cuál es la igualdad entre cartas? mismo palo 1013 00:45:19,369 --> 00:45:20,730 mismo número, los dos 1014 00:45:20,730 --> 00:45:23,429 pues entonces aquí ponemos un 1015 00:45:23,429 --> 00:45:25,409 jasco de equals 1016 00:45:25,409 --> 00:45:26,050 de las dos 1017 00:45:26,050 --> 00:45:27,530 vale 1018 00:45:27,530 --> 00:45:31,130 esto ya está resuelto, este borrar carta 1019 00:45:31,130 --> 00:45:32,289 va a borrar la de la baraja 1020 00:45:32,289 --> 00:45:35,590 y ahora pensamos, añadir carta 1021 00:45:35,590 --> 00:45:36,429 vale 1022 00:45:36,429 --> 00:45:38,389 aquí 1023 00:45:38,389 --> 00:45:43,460 la mano es una lista 1024 00:45:43,460 --> 00:45:44,679 vale 1025 00:45:44,679 --> 00:45:46,420 entonces la mano es una lista 1026 00:45:46,420 --> 00:45:48,300 aquí todavía que exista el equals 1027 00:45:48,300 --> 00:45:50,559 o no, me da igual, porque añadir 1028 00:45:50,559 --> 00:45:52,460 carta no mira el equals ni mira nada, la añade 1029 00:45:52,460 --> 00:45:54,480 yo sé que por el funcionamiento 1030 00:45:54,480 --> 00:45:56,659 un jugador no va a tener en la mano dos cartas repetidas 1031 00:45:56,659 --> 00:45:58,420 porque se habrá 1032 00:45:58,420 --> 00:46:00,340 borrado de la baraja, entonces la aplicación 1033 00:46:00,340 --> 00:46:02,159 estará hecha para que se añada una carta 1034 00:46:02,159 --> 00:46:04,119 cogiendo la de la baraja, claro 1035 00:46:04,119 --> 00:46:06,079 entonces, ahora mismo en cualquier caso el equals 1036 00:46:06,079 --> 00:46:07,800 todavía no me hace falta, es que aunque lo pusiera 1037 00:46:07,800 --> 00:46:09,519 este add no lo mira 1038 00:46:09,519 --> 00:46:11,800 si mano fuera un set 1039 00:46:11,800 --> 00:46:13,539 si mano fuera un set 1040 00:46:13,539 --> 00:46:15,860 entonces, ese add 1041 00:46:15,860 --> 00:46:18,260 sí que miraría si hay un jasco de equals 1042 00:46:18,260 --> 00:46:20,280 o un comparetus es un tris, así que miraría 1043 00:46:20,280 --> 00:46:21,460 porque solo haría el add 1044 00:46:21,460 --> 00:46:23,980 si no hay uno igual, solo haría el add 1045 00:46:23,980 --> 00:46:25,559 entonces ahí sí que me interesaría 1046 00:46:25,559 --> 00:46:28,119 poner ya el jasco de equals, en este caso pues una lista 1047 00:46:28,119 --> 00:46:29,599 todavía puedo eludirlo 1048 00:46:29,599 --> 00:46:31,480 que luego quiero borrar yo de la lista 1049 00:46:31,480 --> 00:46:33,880 el remove de lista sí que usa el equals 1050 00:46:33,880 --> 00:46:35,780 entonces ahí sí que lo pondría, pero por ahora 1051 00:46:35,780 --> 00:46:37,880 lo imprescindible 1052 00:46:37,880 --> 00:46:39,980 recibir carta ya está, pues hala 1053 00:46:39,980 --> 00:46:42,119 vamos ya por dos puntos y medio 1054 00:46:42,119 --> 00:46:43,599 venga 1055 00:46:43,599 --> 00:46:46,079 jugar carta 1056 00:46:46,079 --> 00:46:50,960 selecciona la carta más alta 1057 00:46:50,960 --> 00:46:51,820 de ese palo 1058 00:46:51,820 --> 00:46:54,239 le elimina de la mano 1059 00:46:54,239 --> 00:46:56,260 de ese jugador, muestra el mensajito 1060 00:46:56,260 --> 00:47:00,280 y si no hay cartas de ese palo 1061 00:47:00,280 --> 00:47:01,119 pues no elimina nada 1062 00:47:01,119 --> 00:47:02,599 y muestra el mensaje 1063 00:47:02,599 --> 00:47:05,840 además devuelve la carta jugada 1064 00:47:05,840 --> 00:47:07,599 a la baraja 1065 00:47:07,599 --> 00:47:15,039 Vale, pues venga, vamos a ver jugar carta 1066 00:47:15,039 --> 00:47:16,800 Que es un poquito el más complicado 1067 00:47:16,800 --> 00:47:18,519 Porque mostrar mano es facilísimo 1068 00:47:18,519 --> 00:47:20,300 Es mostrar la mano, ya está, un puntito 1069 00:47:20,300 --> 00:47:22,480 Hacer un font para mostrar la lista 1070 00:47:22,480 --> 00:47:24,179 Este no hace falta hacerlo 1071 00:47:24,179 --> 00:47:27,099 Jugar carta, vamos a hacer jugar carta 1072 00:47:27,099 --> 00:47:29,119 Y luego ya es hacer un main que llame a las cosas 1073 00:47:29,119 --> 00:47:30,460 Y nada más 1074 00:47:30,460 --> 00:47:31,800 Venga 1075 00:47:31,800 --> 00:47:34,420 Jugar carta 1076 00:47:34,420 --> 00:47:35,539 Vamos a ver 1077 00:47:35,539 --> 00:47:44,920 jugar carta 1078 00:47:44,920 --> 00:47:47,000 la devuelve como valor de retorno 1079 00:47:47,000 --> 00:47:47,579 ¿vale? 1080 00:47:58,989 --> 00:48:00,489 ¿qué es lo que tiene que hacer? 1081 00:48:00,989 --> 00:48:03,050 lo que tiene que hacer es, ¡ay! se le pasa un palo 1082 00:48:03,050 --> 00:48:04,369 jugar carta de un palo 1083 00:48:04,369 --> 00:48:11,179 vale, pues tiene que seleccionar 1084 00:48:11,179 --> 00:48:12,900 la carta más alta 1085 00:48:12,900 --> 00:48:14,960 de ese palo, que esa es 1086 00:48:14,960 --> 00:48:16,380 la carta jugada, la que habrá que 1087 00:48:16,380 --> 00:48:18,980 devolver a la baraja, eliminar de la mano, etc 1088 00:48:18,980 --> 00:48:20,820 luego nuestro objetivo aquí 1089 00:48:20,820 --> 00:48:23,159 aquí es uno de los ejemplos en los cuales 1090 00:48:23,159 --> 00:48:24,980 uno tiene que organizar bien 1091 00:48:24,980 --> 00:48:26,719 en la cabeza los pasos de lo que va a hacer 1092 00:48:26,719 --> 00:48:29,019 ¿vale? para luego no empezar a liarse 1093 00:48:29,019 --> 00:48:30,500 y que le salga aquí un código raro 1094 00:48:30,500 --> 00:48:33,119 ¿su objetivo final cuál es? va a ser 1095 00:48:33,119 --> 00:48:35,099 hacer un remove de la lista 1096 00:48:35,099 --> 00:48:36,980 esta, hacer un remove porque es eliminar una 1097 00:48:36,980 --> 00:48:39,059 carta y luego hacer 1098 00:48:39,059 --> 00:48:40,059 un add a la baraja 1099 00:48:40,059 --> 00:48:41,860 ese es su objetivo final 1100 00:48:41,860 --> 00:48:44,519 pero claro, primero hay que encontrar la carta 1101 00:48:44,519 --> 00:48:46,579 luego tenemos un objetivo, un target 1102 00:48:46,579 --> 00:48:49,179 que es encontrar esta carta 1103 00:48:49,179 --> 00:48:51,059 esta, esa es la que tenemos 1104 00:48:51,059 --> 00:48:53,059 que encontrar, porque una vez que la hayamos 1105 00:48:53,059 --> 00:48:54,719 encontrado ya podemos hacer 1106 00:48:54,719 --> 00:48:56,760 mano remove carta 1107 00:48:56,760 --> 00:49:00,559 y luego main 1108 00:49:00,559 --> 00:49:02,000 punto baraja 1109 00:49:02,000 --> 00:49:05,000 punto get cartas 1110 00:49:05,000 --> 00:49:06,820 punto add carta 1111 00:49:06,820 --> 00:49:07,539 ¿vale? 1112 00:49:08,019 --> 00:49:10,420 y listo, lo único es que aquí 1113 00:49:10,420 --> 00:49:11,960 cuando ya 1114 00:49:11,960 --> 00:49:15,800 para que se calle 1115 00:49:15,800 --> 00:49:16,699 vale 1116 00:49:16,699 --> 00:49:19,440 y luego devolveríamos la carta 1117 00:49:19,440 --> 00:49:24,460 aquí ya vemos que ya 1118 00:49:24,460 --> 00:49:26,380 vamos a borrar, vamos a usar remove 1119 00:49:26,380 --> 00:49:27,659 de esto que es una 1120 00:49:27,659 --> 00:49:30,360 bueno, porque dice el método 1121 00:49:30,360 --> 00:49:31,119 que la devuelva 1122 00:49:31,119 --> 00:49:34,159 devuelve la carta, luego el main a lo mejor la usa 1123 00:49:34,159 --> 00:49:35,280 luego para algo, lo que sea 1124 00:49:35,280 --> 00:49:38,380 luego además te decía aquí que muestres jugando 1125 00:49:38,380 --> 00:49:39,639 el número, pero todavía no lo has averiguado 1126 00:49:39,639 --> 00:49:39,920 vale 1127 00:49:39,920 --> 00:49:43,579 entonces, aquí nos paramos 1128 00:49:43,579 --> 00:49:45,820 cuidado que estoy haciendo un remove 1129 00:49:45,820 --> 00:49:47,719 en una colección 1130 00:49:47,719 --> 00:49:49,739 el remove usa 1131 00:49:49,739 --> 00:49:51,139 equal si es una lista 1132 00:49:51,139 --> 00:49:53,420 hasco de equal si es un haset 1133 00:49:53,420 --> 00:49:55,960 y compare tú si es un triset 1134 00:49:55,960 --> 00:49:59,099 vale, pues cuidado, están esos métodos 1135 00:49:59,099 --> 00:50:00,960 en la colección correspondiente 1136 00:50:00,960 --> 00:50:02,619 vamos a ver, mano que es 1137 00:50:02,619 --> 00:50:04,280 mano es una lista 1138 00:50:04,280 --> 00:50:07,039 luego tiene que haber un equals en carta 1139 00:50:07,039 --> 00:50:09,099 para que remove funcione 1140 00:50:09,099 --> 00:50:10,659 vale, entonces cuidado 1141 00:50:10,659 --> 00:50:12,440 cada vez que hagáis un remove, un contains 1142 00:50:12,440 --> 00:50:14,980 porque remove y contains exigen 1143 00:50:14,980 --> 00:50:17,340 que en la lista correspondiente 1144 00:50:17,340 --> 00:50:18,679 la clase 1145 00:50:18,679 --> 00:50:20,920 a la que pertenecen 1146 00:50:20,920 --> 00:50:22,900 los objetos de esa lista tenga el método 1147 00:50:22,900 --> 00:50:25,079 que toque, que en una lista cualquiera 1148 00:50:25,079 --> 00:50:27,320 es equals, en un hash set 1149 00:50:27,320 --> 00:50:28,860 o linked hash set es un hasco de equals 1150 00:50:28,860 --> 00:50:30,679 en un triset es 1151 00:50:30,679 --> 00:50:34,519 compare tú, vale 1152 00:50:34,519 --> 00:50:37,260 pues lista de carta, ¿carta tiene equals? 1153 00:50:38,099 --> 00:50:39,079 pues tiene equal 1154 00:50:39,079 --> 00:50:40,579 porque se lo hemos puesto antes 1155 00:50:40,579 --> 00:50:43,159 pues genial, vale 1156 00:50:43,159 --> 00:50:44,900 pues entonces 1157 00:50:44,900 --> 00:50:46,400 ahora que nos falta, nos falta 1158 00:50:46,400 --> 00:50:48,840 localizar esta carta, que es la más alta 1159 00:50:48,840 --> 00:50:50,900 de ese palo, pues venga 1160 00:50:50,900 --> 00:50:52,679 vamos a, ya sabemos que 1161 00:50:52,679 --> 00:50:55,179 inicialmente 1162 00:50:55,179 --> 00:50:57,940 tenemos la suerte de que está ordenada 1163 00:50:57,940 --> 00:50:59,320 luego vamos a 1164 00:50:59,320 --> 00:51:01,659 poner 1165 00:51:01,659 --> 00:51:03,940 como carta que sea 1166 00:51:03,940 --> 00:51:06,059 la primera de todas 1167 00:51:06,059 --> 00:51:07,960 mano punto get 1168 00:51:07,960 --> 00:51:09,820 cero, la primera, y ahora recorremos todas 1169 00:51:09,820 --> 00:51:11,760 las demás, a ver si encontramos alguna 1170 00:51:11,760 --> 00:51:13,340 cuya puntuación sea mayor 1171 00:51:13,340 --> 00:51:15,300 teniendo 1172 00:51:15,300 --> 00:51:17,480 ese palo 1173 00:51:17,480 --> 00:51:19,940 ¿eh? 1174 00:51:19,940 --> 00:51:23,460 bueno, voy a hacer algoritmo de máximo 1175 00:51:23,460 --> 00:51:25,139 que es, asumo que 1176 00:51:25,139 --> 00:51:26,960 esto es como si fuera carta máxima 1177 00:51:26,960 --> 00:51:29,219 asumo que la máxima 1178 00:51:29,219 --> 00:51:31,019 es la primera y luego ya recorro el resto 1179 00:51:31,019 --> 00:51:32,719 a ver si alguna supera la máxima y ya está 1180 00:51:32,719 --> 00:51:37,340 bueno, a ver, llámala como quieres 1181 00:51:37,340 --> 00:51:38,960 si te quedas más tranquilo llamándola así 1182 00:51:38,960 --> 00:51:39,579 me da lo mismo 1183 00:51:39,579 --> 00:51:44,420 me da igual, si lo que importa 1184 00:51:44,420 --> 00:51:46,159 es que esa carta va a ser la carta 1185 00:51:46,159 --> 00:51:48,380 que tiene el máximo número 1186 00:51:48,380 --> 00:51:50,440 dentro de ese palo, inicialmente 1187 00:51:50,440 --> 00:51:52,579 la primera de todas. Y ahora vamos a ver 1188 00:51:52,579 --> 00:51:54,260 recorremos 1189 00:51:54,260 --> 00:51:56,420 para 1190 00:51:56,420 --> 00:51:58,920 ind igual a 1191 00:51:58,920 --> 00:52:02,559 1. Porque la 1192 00:52:02,559 --> 00:52:04,559 primera ya la hemos mirado. Mientras 1193 00:52:04,559 --> 00:52:06,559 i sea menor que mano.6 1194 00:52:07,260 --> 00:52:10,480 Incrementando i. 1195 00:52:11,380 --> 00:52:12,860 Nos preguntamos 1196 00:52:12,860 --> 00:52:14,659 ¿la carta 1197 00:52:14,659 --> 00:52:16,639 esta de 1198 00:52:16,639 --> 00:52:18,519 aquí es de 1199 00:52:18,519 --> 00:52:45,800 Este palo es igual a palo y además de ser igual a palo, porque la primera ya la he encontrado con, justo eso iba a decir, que en cualquier caso esta podría no ser de ese palo. 1200 00:52:45,800 --> 00:52:51,880 Entonces, tendríamos que quedarnos con la primera carta que es igual de ese palo, ¿vale? 1201 00:52:53,320 --> 00:53:00,360 Sí, perdón, me ha faltado este. 1202 00:53:02,219 --> 00:53:04,639 Vale, entonces un momentito, vamos a completar 1203 00:53:04,639 --> 00:53:06,539 esto y vemos como esto podría dar un 1204 00:53:06,539 --> 00:53:08,639 y mano.get 1205 00:53:09,559 --> 00:53:12,639 y 1206 00:53:12,639 --> 00:53:17,039 .getNumCartas 1207 00:53:17,039 --> 00:53:21,949 es mayor 1208 00:53:21,949 --> 00:53:24,389 que 1209 00:53:24,389 --> 00:53:26,809 cartaMax.get 1210 00:53:26,809 --> 00:53:28,130 con cartas 1211 00:53:28,130 --> 00:53:32,519 entonces 1212 00:53:32,519 --> 00:53:34,980 pero hay que cambiar 1213 00:53:34,980 --> 00:53:36,159 carta máxima, entonces 1214 00:53:36,159 --> 00:53:39,420 máxima 1215 00:53:39,420 --> 00:53:40,139 igual a 1216 00:53:40,139 --> 00:53:43,519 mano.get 1217 00:53:43,519 --> 00:53:45,639 mano.get 1218 00:53:45,639 --> 00:53:45,679 mano.get 1219 00:53:45,679 --> 00:53:49,400 el objetivo de esto es ir 1220 00:53:49,400 --> 00:53:51,320 navegando por toda la mano y para todas 1221 00:53:51,320 --> 00:53:53,280 aquellas, solo aquellas cuyo palo sea 1222 00:53:53,280 --> 00:53:54,679 este, las que superen 1223 00:53:54,679 --> 00:53:56,320 número 1224 00:53:56,320 --> 00:53:59,559 la que tiene el máximo 1225 00:53:59,559 --> 00:54:00,960 pues ya estaría 1226 00:54:00,960 --> 00:54:03,320 pero cuidado que tenemos un problema 1227 00:54:03,320 --> 00:54:05,340 por ejemplo, imaginaos que 1228 00:54:05,340 --> 00:54:06,639 me han pasado oros 1229 00:54:06,639 --> 00:54:09,159 y la primera carta es 1230 00:54:09,159 --> 00:54:11,139 el doce de espadas 1231 00:54:11,139 --> 00:54:15,360 pues ninguna carta de oro 1232 00:54:15,360 --> 00:54:16,940 superaría el doce de espadas 1233 00:54:16,940 --> 00:54:18,780 es el número doce 1234 00:54:18,780 --> 00:54:19,480 claro 1235 00:54:19,480 --> 00:54:22,619 por eso esta inicialización está mal 1236 00:54:22,619 --> 00:54:25,280 entonces, lo que podríamos es 1237 00:54:25,280 --> 00:54:31,320 quitar la 1238 00:54:31,320 --> 00:54:33,380 sí, pero el tema es que 1239 00:54:33,380 --> 00:54:35,039 al comparar 1240 00:54:35,039 --> 00:54:36,159 yo no puedo poner aquí un null 1241 00:54:36,159 --> 00:54:38,820 o sea, puedo poner una carta porque entonces 1242 00:54:38,820 --> 00:54:41,000 aquí me saldría cuando hago el gendun cartas 1243 00:54:41,000 --> 00:54:42,860 pero puedo poner una nueva carta 1244 00:54:42,860 --> 00:54:44,900 de este mismo palo y con puntuación 0 1245 00:54:44,900 --> 00:54:47,619 new carta 1246 00:54:47,619 --> 00:54:52,159 new carta 1247 00:54:52,159 --> 00:54:54,980 Y 1248 00:54:54,980 --> 00:54:59,079 Y ahora pongo 1249 00:54:59,079 --> 00:55:01,119 Carta max 1250 00:55:01,119 --> 00:55:02,480 Punto set 1251 00:55:02,480 --> 00:55:03,960 Palo 1252 00:55:03,960 --> 00:55:05,500 Igual al palo que me han pasado 1253 00:55:05,500 --> 00:55:07,539 Creo que no, porque como he ido al 1254 00:55:07,539 --> 00:55:11,659 Iset num cartas 1255 00:55:11,659 --> 00:55:13,460 Cero 1256 00:55:13,460 --> 00:55:16,019 Y luego abajo aquí pondría 1257 00:55:16,019 --> 00:55:17,320 Y ahora aquí el cero 1258 00:55:17,320 --> 00:55:21,900 Vale 1259 00:55:21,900 --> 00:55:25,500 Vale, new carta, el constructor sin parámetros está indefinido. 1260 00:55:25,599 --> 00:55:28,079 Debe ser que he hecho un constructor con parámetros en algún momento. 1261 00:55:28,760 --> 00:55:30,260 Claro, es que he hecho un constructor con parámetros. 1262 00:55:31,340 --> 00:55:33,239 Vale, pues entonces podríamos haber hecho esto más fácil. 1263 00:55:33,340 --> 00:55:36,059 New carta, palo, cero. 1264 00:55:36,539 --> 00:55:37,280 Y me ahorro esto. 1265 00:55:40,119 --> 00:55:40,380 ¿Vale? 1266 00:55:41,380 --> 00:55:43,519 Entonces, hacemos algoritmo de máximo. 1267 00:55:44,179 --> 00:55:48,300 Ponemos una carta cualquiera que sea de este palo con puntuación cero. 1268 00:55:48,460 --> 00:55:52,320 Para que ya la primera de todas, la primera, sea la carta máxima. 1269 00:55:52,320 --> 00:55:54,920 Y ahora ya, para todas las cartas de la mano 1270 00:55:54,920 --> 00:55:55,940 Que sean de ese palo 1271 00:55:55,940 --> 00:55:58,239 Y su número de cartas supere 1272 00:55:58,239 --> 00:56:00,579 A la que es máxima hasta ese momento, actualiza 1273 00:56:00,579 --> 00:56:02,380 Y ya está 1274 00:56:02,380 --> 00:56:03,960 Ya tenemos la carta máxima 1275 00:56:03,960 --> 00:56:05,099 Yo pondría aparte un i 1276 00:56:05,099 --> 00:56:07,260 Por si acaso se sigue valiendo cero 1277 00:56:07,260 --> 00:56:08,659 Es decir, no ha encontrado la carta 1278 00:56:08,659 --> 00:56:10,579 Claro, es que lo vamos a tener que poner 1279 00:56:10,579 --> 00:56:13,679 Porque aquí me dice que nos falta añadir el mensajito 1280 00:56:13,679 --> 00:56:15,579 Entonces, ahora 1281 00:56:15,579 --> 00:56:18,300 Primero añadimos el mensajito 1282 00:56:18,300 --> 00:56:18,760 Que es 1283 00:56:18,760 --> 00:56:20,019 si 1284 00:56:20,019 --> 00:56:22,460 carta máxima 1285 00:56:22,460 --> 00:56:22,960 punto 1286 00:56:22,960 --> 00:56:25,219 getNumCartas 1287 00:56:25,219 --> 00:56:27,239 es mayor que cero 1288 00:56:27,239 --> 00:56:28,699 es porque ha encontrado carta 1289 00:56:28,699 --> 00:56:30,239 y en ese caso 1290 00:56:30,239 --> 00:56:31,940 jugando carta 1291 00:56:31,940 --> 00:56:36,789 jugando carta 1292 00:56:36,789 --> 00:56:38,269 y ahí se ponen los datos 1293 00:56:38,269 --> 00:56:38,969 ni lo pongo 1294 00:56:38,969 --> 00:56:42,150 y si no es porque sigue siendo cero 1295 00:56:42,150 --> 00:56:43,489 con lo cual no se actualizó 1296 00:56:43,489 --> 00:56:44,190 o lo que es lo mismo 1297 00:56:44,190 --> 00:56:45,630 no existe ninguna de ese palo 1298 00:56:45,630 --> 00:56:46,050 ninguna 1299 00:56:46,050 --> 00:56:48,329 pues entonces se pone 1300 00:56:48,329 --> 00:56:50,809 No tengo 1301 00:56:50,809 --> 00:56:54,050 Carta de ese palo 1302 00:56:54,050 --> 00:56:55,969 No tengo carta 1303 00:56:55,969 --> 00:56:57,030 De ese palo 1304 00:56:57,030 --> 00:56:58,469 Y aquí ya saldría 1305 00:56:58,469 --> 00:57:03,360 Return null para que no me haga el add y el remove 1306 00:57:03,360 --> 00:57:03,679 Claro 1307 00:57:03,679 --> 00:57:08,940 El mensajito que fuera 1308 00:57:08,940 --> 00:57:12,039 Y ya está 1309 00:57:12,039 --> 00:57:14,380 Me aseguro que salgo 1310 00:57:14,380 --> 00:57:14,960 Del método 1311 00:57:14,960 --> 00:57:18,079 Porque esto solamente lo quiero hacer 1312 00:57:18,079 --> 00:57:19,460 En el if 1313 00:57:19,460 --> 00:57:21,920 Lo podríais meter en el if como quisierais 1314 00:57:21,920 --> 00:57:25,179 vale, pues bueno, este era un poquito 1315 00:57:25,179 --> 00:57:26,920 el método más complicado 1316 00:57:26,920 --> 00:57:28,579 pero vamos, que en realidad es 1317 00:57:28,579 --> 00:57:30,460 hacer un algoritmo de máximo 1318 00:57:30,460 --> 00:57:31,619 para encontrar una carta 1319 00:57:31,619 --> 00:57:34,500 y luego borrarla de una lista 1320 00:57:34,500 --> 00:57:36,440 y añadirla a otro, a un set 1321 00:57:36,440 --> 00:57:38,639 y ya está, vale 1322 00:57:38,639 --> 00:57:41,860 y esto ya 1323 00:57:41,860 --> 00:57:44,500 la inicialización era lo más 1324 00:57:44,500 --> 00:57:45,400 que os podía complicar 1325 00:57:45,400 --> 00:57:48,139 vale, y esto ya es uno y medio 1326 00:57:48,139 --> 00:57:49,920 este en na 1327 00:57:49,920 --> 00:57:56,559 Vale, y ahora aquí 1328 00:57:56,559 --> 00:58:03,460 Vale, habría que hacer el main 1329 00:58:03,460 --> 00:58:04,320 ¿Vale? 1330 00:58:05,320 --> 00:58:06,320 El main es 1331 00:58:06,320 --> 00:58:09,400 Venga, vamos a ver lo que nos da tiempo a hacer del main 1332 00:58:09,400 --> 00:58:11,179 Mostrar mano lo dejamos 1333 00:58:11,179 --> 00:58:13,119 Porque no es nada, recorrer un list 1334 00:58:13,119 --> 00:58:14,639 Vale 1335 00:58:14,639 --> 00:58:20,340 Venga, pues main 1336 00:58:20,340 --> 00:58:24,480 La baraja ya está creada 1337 00:58:24,480 --> 00:58:27,420 ¿Vale? Es una variable estática del main 1338 00:58:27,420 --> 00:58:30,539 Y ahora 1339 00:58:30,539 --> 00:58:33,739 Dos objetos jugador 1340 00:58:33,739 --> 00:58:35,840 Con cualquier nombre y a puntuación 0 1341 00:58:35,840 --> 00:58:36,500 Pues venga 1342 00:58:36,500 --> 00:58:38,500 Vamos a crear 1343 00:58:38,500 --> 00:58:40,000 Jugador 1 1344 00:58:40,000 --> 00:58:42,760 Igual a new jugador 1345 00:58:42,760 --> 00:58:45,599 Que es el jugador Luis 1346 00:58:45,599 --> 00:58:47,320 Que tiene 0 puntos 1347 00:58:47,320 --> 00:58:53,940 Jugador 1348 00:58:53,940 --> 00:58:56,380 Y aquí sí que no tengo constructor con parámetros 1349 00:58:56,380 --> 00:58:58,000 Venga, se lo voy a poner 1350 00:58:58,000 --> 00:59:01,059 Ah, que estoy en 1351 00:59:01,059 --> 00:59:05,559 Ah, vaya 1352 00:59:05,559 --> 00:59:07,420 Bueno, hasta luego 1353 00:59:07,420 --> 00:59:12,139 Sí, pero me da unos parámetros que luego tengo que cambiar también 1354 00:59:12,139 --> 00:59:13,039 Son nombres muy raros 1355 00:59:13,039 --> 00:59:15,679 Entonces casi mejor así y así me pone los nombres buenos 1356 00:59:15,679 --> 00:59:19,739 Un constructor con puntuación 1357 00:59:19,739 --> 00:59:21,239 Y nombre y puntuación 1358 00:59:21,239 --> 00:59:23,840 Venga, ya está 1359 00:59:23,840 --> 00:59:25,420 Y ahora lo mismo otro jugador 1360 00:59:25,420 --> 00:59:37,809 ¿Vale? Pues venga 1361 00:59:37,809 --> 00:59:45,619 Ya tenemos dos jugadores 1362 00:59:45,619 --> 00:59:46,119 Ahora 1363 00:59:46,119 --> 00:59:49,559 Cada jugador recibe 10 cartas 1364 00:59:49,559 --> 00:59:50,360 Al principio 1365 00:59:50,360 --> 00:59:53,460 Escogidas aleatoriamente 1366 00:59:53,460 --> 00:59:54,139 De la baraja 1367 00:59:54,139 --> 00:59:57,400 Esto de escogidas aleatoriamente de la baraja 1368 00:59:57,400 --> 00:59:59,360 ¿Vale? Pues lo podíais hacer 1369 00:59:59,360 --> 01:00:00,099 De muchas maneras 1370 01:00:00,099 --> 01:00:02,639 Pero si uno pues 1371 01:00:02,639 --> 01:00:05,159 Da las 10 cartas que le den la gana ahí 1372 01:00:05,159 --> 01:00:05,440 Va 1373 01:00:05,440 --> 01:00:08,780 no, vale, por ejemplo 1374 01:00:08,780 --> 01:00:13,039 vamos a hacer primero el jugador 1 1375 01:00:13,039 --> 01:00:15,260 bueno, vamos a hacer un bucle que se ejecute 10 veces 1376 01:00:15,260 --> 01:00:26,289 vale, pues aquí podríais jugar con 1377 01:00:26,289 --> 01:00:28,690 el random, ¿verdad? 1378 01:00:30,530 --> 01:00:32,110 claro, pero podemos hacerlo 1379 01:00:32,110 --> 01:00:34,050 más sencillo, si queréis 1380 01:00:34,050 --> 01:00:34,590 que es 1381 01:00:34,590 --> 01:00:37,929 punto 1382 01:00:37,929 --> 01:00:39,570 recibir carta 1383 01:00:39,570 --> 01:00:42,829 New carta 1384 01:00:42,829 --> 01:00:47,780 Oros 1385 01:00:47,780 --> 01:00:50,079 De I 1386 01:00:50,079 --> 01:00:52,139 Entonces aquí empiezo en 1 1387 01:00:52,139 --> 01:00:54,039 Y acabo en 10 1388 01:00:54,039 --> 01:00:56,079 Pues mira, al primero le he dado 1389 01:00:56,079 --> 01:00:57,619 Todos los oros 1390 01:00:57,619 --> 01:01:07,900 A ver, es que recibir carta ya la sacaba 1391 01:01:07,900 --> 01:01:09,280 Esa es la historia 1392 01:01:09,280 --> 01:01:11,159 El método recibir carta 1393 01:01:11,159 --> 01:01:13,019 de jugador 1394 01:01:13,019 --> 01:01:15,199 el método recibir carta 1395 01:01:15,199 --> 01:01:18,099 la carta que le pasas 1396 01:01:18,099 --> 01:01:19,960 ya la saca de la baraja 1397 01:01:19,960 --> 01:01:22,119 la añade a tu madre y le saca la baraja 1398 01:01:22,119 --> 01:01:23,460 entonces repartir 1399 01:01:23,460 --> 01:01:25,639 es hacer esto, recibir cartas sin más 1400 01:01:25,639 --> 01:01:27,400 y la baraja esta seguirá quedando vacía 1401 01:01:27,400 --> 01:01:29,739 pues yo lo estoy haciendo 1402 01:01:29,739 --> 01:01:33,639 ah ya 1403 01:01:33,639 --> 01:01:35,019 por no hacerlos aleatoriamente 1404 01:01:35,019 --> 01:01:39,460 ya bueno ya 1405 01:01:39,460 --> 01:01:41,340 pero me refiero que sea aleatorio 1406 01:01:41,340 --> 01:01:43,599 que también puede ser aleatorio 1407 01:01:43,599 --> 01:01:45,239 vuestro cerebro, me refiero que 1408 01:01:45,239 --> 01:01:47,599 cualquier, con aleatoriamente 1409 01:01:47,599 --> 01:01:49,679 estaba más elegido, podía ser al azar 1410 01:01:49,679 --> 01:01:51,000 queríamos decir al azar 1411 01:01:51,000 --> 01:01:52,780 que las que te dieran la gana 1412 01:01:52,780 --> 01:01:55,239 entonces a ver, si esto es añadir un random 1413 01:01:55,239 --> 01:01:57,519 y ya está entre cuatro y en función de eso seleccionar 1414 01:01:57,519 --> 01:01:59,800 si es oro, si luego añadir un random para aquí 1415 01:01:59,800 --> 01:02:00,699 ¿vale? 1416 01:02:02,699 --> 01:02:03,599 y como las vas 1417 01:02:03,599 --> 01:02:04,920 sacando da igual que se repitan 1418 01:02:04,920 --> 01:02:05,699 pero 1419 01:02:05,699 --> 01:02:08,340 entonces 1420 01:02:08,340 --> 01:02:20,309 Venga, esto nos vale 1421 01:02:20,309 --> 01:02:22,110 Al primero le hemos dado todos los oros 1422 01:02:22,110 --> 01:02:24,530 De hecho, si miráramos el tamaño con el que se ha quedado la baraja 1423 01:02:24,530 --> 01:02:30,170 Saca una carta de la baraja 1424 01:02:30,170 --> 01:02:31,570 Y la mete en la mano del jugador 1425 01:02:31,570 --> 01:02:34,809 Entonces, por ejemplo, si nosotros aquí mostráramos 1426 01:02:34,809 --> 01:02:36,369 Lo que tiene la baraja 1427 01:02:36,369 --> 01:02:37,909 Antes y después, debería quedarse 1428 01:02:37,909 --> 01:02:40,530 Aquí tiene 40, la baraja tiene 1429 01:02:40,530 --> 01:02:48,989 Sí, pero ya he dicho 1430 01:02:48,989 --> 01:02:50,710 Para mí el azar es 1431 01:02:50,710 --> 01:02:53,429 Le doy los 10 oros al primero y las 10 copas al segundo 1432 01:02:53,429 --> 01:02:55,449 Queda igual, queda lo mismo 1433 01:02:55,449 --> 01:03:01,250 ¿Cómo recibir carta por 10? 1434 01:03:04,150 --> 01:03:05,409 Porque recibir carta 1435 01:03:05,409 --> 01:03:07,530 Hay que pasar a una carta, recibir carta vacío no existe 1436 01:03:07,530 --> 01:03:08,889 Recibir carta y pasar a una carta 1437 01:03:08,889 --> 01:03:13,769 tienes que pasarle cartas 1438 01:03:13,769 --> 01:03:15,690 y además cartas que no estén en la baraja 1439 01:03:15,690 --> 01:03:17,130 porque ya se han sacado de antes 1440 01:03:17,130 --> 01:03:19,429 vale, la baraja tiene 1441 01:03:19,429 --> 01:03:21,250 y aquí si ponemos 1442 01:03:21,250 --> 01:03:23,170 baraja.size 1443 01:03:23,170 --> 01:03:30,010 baraja.getCartas 1444 01:03:30,010 --> 01:03:30,489 perdón 1445 01:03:30,489 --> 01:03:38,059 si lo probamos antes y después 1446 01:03:38,059 --> 01:03:40,119 primero me tendrá que decir 40 y luego 20 1447 01:03:40,119 --> 01:03:42,320 porque he repartido 10 a cada uno 1448 01:03:42,320 --> 01:03:44,960 vale 1449 01:03:44,960 --> 01:03:50,000 vamos a hacer, a probar solo este main 1450 01:03:50,000 --> 01:03:51,659 para ver si realmente 1451 01:03:51,659 --> 01:03:53,659 inicialmente la baraja tiene 20 1452 01:03:53,659 --> 01:03:55,699 o sea se ha inicializado bien con el, perdón 40 1453 01:03:55,699 --> 01:03:57,820 y luego después de haber 1454 01:03:57,820 --> 01:03:59,900 hecho esto, la baraja se ha quedado 1455 01:03:59,900 --> 01:04:01,760 con 20, con lo cual habrá 10 ya 1456 01:04:01,760 --> 01:04:03,900 en la mano de este y 10 en la mano de este otro 1457 01:04:03,900 --> 01:04:10,519 40 y 20 1458 01:04:10,519 --> 01:04:11,739 perfecto 1459 01:04:11,739 --> 01:04:14,519 hay 10 en la mano de este y si tuviéramos 1460 01:04:14,519 --> 01:04:16,400 el mostrar mano hecho veríamos que efectivamente 1461 01:04:16,400 --> 01:04:19,360 Vale, ¿y qué más hay que hacer aquí? 1462 01:04:19,420 --> 01:04:21,139 Ya con esto pues llevamos casi el 8 1463 01:04:21,139 --> 01:04:23,480 O el 8 y pico en el examen 1464 01:04:23,480 --> 01:04:24,619 Venga 1465 01:04:24,619 --> 01:04:30,320 Ya, sí 1466 01:04:30,320 --> 01:04:33,719 Venga, a ver 1467 01:04:33,719 --> 01:04:34,940 Cada jugador recibe 10 cartas 1468 01:04:34,940 --> 01:04:37,400 El sistema elige un palo aleatoriamente 1469 01:04:37,400 --> 01:04:40,800 Bueno, aquí sí que se puede hacer con un 1470 01:04:40,800 --> 01:04:41,719 Y ahora empieza el juego 1471 01:04:41,719 --> 01:04:44,440 Y ahora esto es un bucle que está todo el rato 1472 01:04:44,440 --> 01:04:45,260 Vale 1473 01:04:45,260 --> 01:04:56,139 Elige un palo aleatoriamente 1474 01:04:56,139 --> 01:04:56,840 A ver 1475 01:04:56,840 --> 01:05:02,000 Vale, a ver, aquí se podría hacer un random 1476 01:05:02,000 --> 01:05:03,199 Entre 1 y 4 1477 01:05:03,199 --> 01:05:06,099 Y luego ya en función de si es 1, 2, 3 y 4 1478 01:05:06,099 --> 01:05:07,960 Cogeré los espadas, bastos y no sé qué 1479 01:05:07,960 --> 01:05:10,159 Pero para mí, elegir un palo 1480 01:05:10,159 --> 01:05:11,300 Aleatoriamente es esto 1481 01:05:11,300 --> 01:05:16,539 Sí, pero lo especificaremos 1482 01:05:16,539 --> 01:05:18,019 A ver, este enunciado 1483 01:05:18,019 --> 01:05:19,659 Luego de palabra 1484 01:05:19,659 --> 01:05:21,460 Sí que dijimos ciertas cosas 1485 01:05:21,460 --> 01:05:24,019 Para facilitaros 1486 01:05:24,019 --> 01:05:25,739 La optimización del tiempo 1487 01:05:25,739 --> 01:05:26,619 Claro 1488 01:05:26,619 --> 01:05:29,500 Enunciado de mañana 1489 01:05:29,500 --> 01:05:32,019 Quedará más especificado 1490 01:05:32,019 --> 01:05:38,099 Claro, o sea que el juego 1491 01:05:38,099 --> 01:05:39,380 Va a acabar instantáneamente 1492 01:05:39,380 --> 01:05:41,000 Porque el juego finaliza 1493 01:05:41,000 --> 01:05:43,300 Es decir, más altos 1494 01:05:43,300 --> 01:05:44,679 No ha podido jugar 1495 01:05:44,679 --> 01:05:46,800 Y el otro sí, si no ha podido jugar 1496 01:05:46,800 --> 01:05:49,519 No, porque si no ha podido jugar, cada jugador recibe 1497 01:05:49,519 --> 01:05:51,920 Cartas para que vuelva a tener 10 1498 01:05:51,920 --> 01:05:53,460 Claro, pero como ya tiene 10 1499 01:05:53,460 --> 01:05:55,679 Pues se metería en un bucle infinito 1500 01:05:55,679 --> 01:05:56,260 Efectivamente 1501 01:05:56,260 --> 01:05:58,559 En este caso, venga, vamos a poner oro 1502 01:05:58,559 --> 01:06:01,460 Pero da igual, se metería en un bucle infinito y no pasa nada 1503 01:06:01,460 --> 01:06:02,320 Tu programa estaría bien 1504 01:06:02,320 --> 01:06:05,480 Lo que pasa es que qué mala suerte 1505 01:06:05,480 --> 01:06:06,579 Que todos tengan oro 1506 01:06:06,579 --> 01:06:08,159 O copas 1507 01:06:08,159 --> 01:06:09,760 Venga 1508 01:06:09,760 --> 01:06:13,679 Pues ala, el palo aleatorio es 1509 01:06:13,679 --> 01:06:14,820 Oros 1510 01:06:14,820 --> 01:06:17,219 Y ahora, ¿qué hace el programa? 1511 01:06:17,840 --> 01:06:18,380 Un bucle 1512 01:06:18,380 --> 01:06:21,119 Y ahora un bucle que está todo el rato haciendo esto 1513 01:06:21,119 --> 01:06:22,760 Pues venga, un bucle 1514 01:06:22,760 --> 01:06:25,539 ¿Cuándo termina el juego? 1515 01:06:25,679 --> 01:06:26,880 Pues ya veremos cuándo termina 1516 01:06:26,880 --> 01:06:29,219 Es un bucle que está todo el rato 1517 01:06:29,219 --> 01:06:30,400 Haciendo lo que me digan 1518 01:06:30,400 --> 01:06:33,000 Pues venga, ¿qué hace todo el rato? 1519 01:06:36,280 --> 01:06:37,360 Cada jugador 1520 01:06:37,360 --> 01:06:39,639 Trata de jugar la carta más alta 1521 01:06:39,639 --> 01:06:41,599 de ese palo, para eso tenemos un método 1522 01:06:41,599 --> 01:06:42,440 afortunadamente 1523 01:06:42,440 --> 01:06:44,500 vale, entonces 1524 01:06:44,500 --> 01:06:47,679 la carta 1525 01:06:47,679 --> 01:06:49,340 que juega el jugador 1 1526 01:06:49,340 --> 01:06:51,519 la carta que juega el jugador 1 1527 01:06:51,519 --> 01:06:51,900 será 1528 01:06:51,900 --> 01:06:55,619 jugador1.jugarCarta 1529 01:06:55,619 --> 01:06:57,500 del palo que me han dado 1530 01:06:57,500 --> 01:06:58,519 vale 1531 01:06:58,519 --> 01:07:01,739 la carta 1532 01:07:01,739 --> 01:07:03,599 que juega el jugador 2 1533 01:07:03,599 --> 01:07:05,300 es esta 1534 01:07:05,300 --> 01:07:07,880 jugarCarta de ese mismo palo 1535 01:07:07,880 --> 01:07:09,500 ya tengo las dos cartas 1536 01:07:09,500 --> 01:07:10,820 jugadas que pueden ser nul 1537 01:07:10,820 --> 01:07:13,619 si alguno de los dos no ha podido jugar 1538 01:07:13,619 --> 01:07:14,619 o los dos, vale 1539 01:07:14,619 --> 01:07:17,760 si una 1540 01:07:17,760 --> 01:07:19,639 de las dos es nul y la otra 1541 01:07:19,639 --> 01:07:21,440 no, el que no sea nul 1542 01:07:21,440 --> 01:07:22,300 sube la puntuación 1543 01:07:22,300 --> 01:07:25,639 y si las dos son nul, recibimos 1544 01:07:25,639 --> 01:07:26,679 carta hasta 10 1545 01:07:26,679 --> 01:07:28,940 vale, vamos a 1546 01:07:28,940 --> 01:07:31,559 son tres casos, que ninguna 1547 01:07:31,559 --> 01:07:33,519 de las dos sea nul, pues el 1548 01:07:33,519 --> 01:07:35,199 de la carta más alta sube la puntuación 1549 01:07:35,199 --> 01:07:35,920 pues venga 1550 01:07:35,920 --> 01:07:39,039 Si C1 es 1551 01:07:39,039 --> 01:07:40,400 Diferente de nul 1552 01:07:40,400 --> 01:07:45,760 Vale, reconozco que era un poco complicado 1553 01:07:45,760 --> 01:07:47,360 El ejercicio, o largo más bien 1554 01:07:47,360 --> 01:07:49,360 Si C1 es diferente de nul 1555 01:07:49,360 --> 01:07:52,539 Sí, sí, sí 1556 01:07:52,539 --> 01:07:55,760 No estuvo muy bien logrado este ejercicio 1557 01:07:55,760 --> 01:07:58,780 El enunciado no estuvo bien 1558 01:07:58,780 --> 01:08:00,639 Vale 1559 01:08:00,639 --> 01:08:05,659 Tranquilo 1560 01:08:05,659 --> 01:08:07,079 Tato controlado 1561 01:08:07,079 --> 01:08:11,019 Si los dos han jugado cartas, vamos a ver cuál tiene mayor para subir la puntuación. 1562 01:08:11,019 --> 01:08:23,020 Pues venga, si c1.getnumCartas es mayor que c2.getnumCartas, 1563 01:08:23,020 --> 01:08:39,579 Pues entonces, jugador1.set.puntuación igual a jugador1.get.puntuación más 1. 1564 01:08:45,680 --> 01:08:50,520 Podéis hacer el jugador, sube punto, incrementar puntuación y ya está. 1565 01:08:50,840 --> 01:08:51,939 Y estupendo y muy bonito. 1566 01:08:51,939 --> 01:08:54,399 y si no, pues lo mismo 1567 01:08:54,399 --> 01:08:56,340 pero es jugador 2, no pueden tener 1568 01:08:56,340 --> 01:08:57,939 la misma puntuación porque es el mismo palo 1569 01:08:57,939 --> 01:08:59,720 o es uno o es el otro 1570 01:08:59,720 --> 01:09:02,199 no pueden ser que saquen la misma puntuación los dos 1571 01:09:02,199 --> 01:09:04,819 porque no pueden tener cartas repetidas 1572 01:09:04,819 --> 01:09:07,840 y si no es el jugador 2 1573 01:09:07,840 --> 01:09:12,069 ala, la primera parte está 1574 01:09:12,069 --> 01:09:14,010 pero que ocurre 1575 01:09:14,010 --> 01:09:16,550 si esto no se ha cumplido 1576 01:09:16,550 --> 01:09:18,050 que sean los dos diferentes de null 1577 01:09:18,050 --> 01:09:19,630 el save 1578 01:09:19,630 --> 01:09:23,970 Y lo que ocurre es que 1579 01:09:23,970 --> 01:09:26,829 C1 es igual a nul 1580 01:09:26,829 --> 01:09:28,210 Y 1581 01:09:28,210 --> 01:09:30,329 C2 1582 01:09:30,329 --> 01:09:32,250 Es diferente 1583 01:09:32,250 --> 01:09:33,989 De nul 1584 01:09:33,989 --> 01:09:36,930 ¿Por qué no pones C1 o C2? 1585 01:09:39,069 --> 01:09:40,350 Sí, es que no 1586 01:09:40,350 --> 01:09:41,810 Porque no sé ni lo que hay que hacer 1587 01:09:41,810 --> 01:09:44,529 Vale, el que ha jugado 1588 01:09:44,529 --> 01:09:46,770 Cartas sube 1, bueno, porque tenemos que distinguir 1589 01:09:46,770 --> 01:09:47,930 Pero sí podría 1590 01:09:47,930 --> 01:09:50,470 si a ver, si c1 1591 01:09:50,470 --> 01:09:52,869 es, o sea tarde o temprano voy a tener 1592 01:09:52,869 --> 01:09:54,689 que, si c1 es 1593 01:09:54,689 --> 01:09:55,970 igual a nul o 1594 01:09:55,970 --> 01:09:58,170 c2 es igual a nul 1595 01:09:58,170 --> 01:09:59,829 pues ahora ya 1596 01:09:59,829 --> 01:10:01,550 tengo que ver 1597 01:10:01,550 --> 01:10:04,590 claro 1598 01:10:04,590 --> 01:10:06,409 pero tiene que ser excluyente 1599 01:10:06,409 --> 01:10:09,090 porque si los dos son nul no le subo la puntuación 1600 01:10:09,090 --> 01:10:10,430 tiene que ser excluyente 1601 01:10:10,430 --> 01:10:11,689 entonces 1602 01:10:11,689 --> 01:10:14,229 si c1 es igual a nul y 1603 01:10:14,229 --> 01:10:16,449 c2 es diferente de nul 1604 01:10:16,449 --> 01:10:17,729 Entonces 1605 01:10:17,729 --> 01:10:20,210 Efectivamente 1606 01:10:20,210 --> 01:10:22,449 Al jugador 2, este de aquí 1607 01:10:22,449 --> 01:10:24,529 Este código se puede hacer más bonito 1608 01:10:24,529 --> 01:10:26,710 Anidándolos, pues estamos repitiendo 1609 01:10:26,710 --> 01:10:28,210 Código a lo bestia, esto está muy feo 1610 01:10:28,210 --> 01:10:30,350 Pero bueno, estamos en un examen 1611 01:10:30,350 --> 01:10:36,130 Y ahora el otro, el save 1612 01:10:36,130 --> 01:10:38,630 En un examen, pues es que uno optimizar código 1613 01:10:38,630 --> 01:10:40,050 Para no tener tantos anidados 1614 01:10:40,050 --> 01:10:42,050 No estamos 1615 01:10:42,050 --> 01:10:43,289 Por la labor 1616 01:10:43,289 --> 01:10:47,050 C2, C1 1617 01:10:47,050 --> 01:10:49,189 pues entonces es el jugador 1 1618 01:10:49,189 --> 01:10:52,859 y ahora el else 1619 01:10:52,859 --> 01:10:55,520 es que ninguno haya jugado 1620 01:10:55,520 --> 01:11:01,350 vale, pues si ninguno 1621 01:11:01,350 --> 01:11:02,270 ha jugado carta 1622 01:11:02,270 --> 01:11:04,850 hay que dar hasta que vuelvan a tener 10 1623 01:11:04,850 --> 01:11:06,529 entonces 1624 01:11:06,529 --> 01:11:09,250 el jugador 1 tendrá que recibir 1625 01:11:09,250 --> 01:11:10,930 tantas cartas como 10 menos 1626 01:11:10,930 --> 01:11:12,189 tamaño de cartas tenga 1627 01:11:12,189 --> 01:11:15,149 y el jugador 2 pues entonces vamos a ver 1628 01:11:15,149 --> 01:11:17,710 ¿cuántas cartas recibe el jugador 1? 1629 01:11:17,710 --> 01:11:20,470 Número de cartas del jugador 1 1630 01:11:20,470 --> 01:11:22,810 Pues el número de cartas que tiene que recibir el jugador 1 1631 01:11:22,810 --> 01:11:23,270 Va a ser 1632 01:11:23,270 --> 01:11:25,590 10 menos 1633 01:11:25,590 --> 01:11:31,109 Jugador1.getMano.size 1634 01:11:31,109 --> 01:11:32,909 Estas va a recibir el jugador 1 1635 01:11:32,909 --> 01:11:34,109 Vale 1636 01:11:34,109 --> 01:11:36,750 Y ahora ya que hacemos 1637 01:11:36,750 --> 01:11:38,050 Pues un bucle 1638 01:11:38,050 --> 01:11:40,710 Desde int igual a 0 1639 01:11:40,710 --> 01:11:41,329 Mientras 1640 01:11:41,329 --> 01:11:44,069 Y sea menor que 1641 01:11:44,069 --> 01:11:47,609 Las cartas que tiene que recibir el jugador 1 1642 01:11:47,609 --> 01:11:50,130 y más más 1643 01:11:50,130 --> 01:11:51,550 pues jugador 1 1644 01:11:51,550 --> 01:11:53,850 punto recibir carta 1645 01:11:53,850 --> 01:11:57,279 y ahora 1646 01:11:57,279 --> 01:11:58,880 lo mismo con el jugador 2 1647 01:11:58,880 --> 01:12:16,039 efectivamente 1648 01:12:16,039 --> 01:12:18,300 hay que ponerle 1649 01:12:18,300 --> 01:12:19,779 aquí una carta de 1650 01:12:19,779 --> 01:12:22,300 la baraja, si esto es un rollo patatero 1651 01:12:22,300 --> 01:12:28,460 Que no, que no, que esto fue una fumada 1652 01:12:28,460 --> 01:12:30,579 Pero bueno, nosotros también fumamos a veces 1653 01:12:30,579 --> 01:12:36,319 Por eso es que repetir cada vez 1654 01:12:36,319 --> 01:12:37,659 La carta a mano es imposible 1655 01:12:37,659 --> 01:12:39,239 Claro, entonces 1656 01:12:39,239 --> 01:12:45,399 Recibir carta 1657 01:12:45,399 --> 01:12:47,239 Y tiene que recibir una carta 1658 01:12:47,239 --> 01:12:54,520 Claro, entonces aquí 1659 01:12:54,520 --> 01:12:56,739 la carta que recibimos 1660 01:12:56,739 --> 01:12:59,100 pues tiene que ser una acogida 1661 01:12:59,100 --> 01:12:59,720 de la baraja 1662 01:12:59,720 --> 01:13:03,939 ¿Dónde? 1663 01:13:03,939 --> 01:13:06,180 ¿No hay un método que te haga una carta de la baraja? 1664 01:13:06,359 --> 01:13:06,560 No 1665 01:13:06,560 --> 01:13:09,979 ¿Sería en el recibir 1666 01:13:09,979 --> 01:13:11,060 carta que editarlo? 1667 01:13:11,060 --> 01:13:12,640 Sí, pero 1668 01:13:12,640 --> 01:13:13,779 claro 1669 01:13:13,779 --> 01:13:16,600 Sí, pero 1670 01:13:16,600 --> 01:13:18,340 Sí, sería lo ideal 1671 01:13:18,340 --> 01:13:20,680 Vale, pero estoy viendo cómo sacar aquí 1672 01:13:20,680 --> 01:13:22,300 Cartas de la baraja 1673 01:13:22,300 --> 01:13:24,060 Hasta que 1674 01:13:24,060 --> 01:13:29,500 Ya, pero en el resto del juego 1675 01:13:29,500 --> 01:13:30,279 Pueden 1676 01:13:30,279 --> 01:13:32,699 Hasta que llegue a salir 1677 01:13:32,699 --> 01:13:39,279 Claro, pero esto para que fuera más o menos bonito 1678 01:13:39,279 --> 01:13:45,800 Claro, no, esto cómo lo podríamos dejar bonito 1679 01:13:45,800 --> 01:13:49,279 bueno, sí, pero luego nos faltaría la condición 1680 01:13:49,279 --> 01:13:50,979 y la condición de finalización sería 1681 01:13:50,979 --> 01:13:53,600 mientras la carta 1682 01:13:53,600 --> 01:13:55,279 el tamaño de la baraja 1683 01:13:55,279 --> 01:13:55,640 sea 1684 01:13:55,640 --> 01:13:58,920 mayor que cero 1685 01:13:58,920 --> 01:14:01,720 while baraja.get 1686 01:14:01,720 --> 01:14:03,279 cartas.size 1687 01:14:04,000 --> 01:14:06,460 mayor que cero 1688 01:14:06,460 --> 01:14:07,720 mientras haya cartas 1689 01:14:07,720 --> 01:14:08,359 en la baraja 1690 01:14:08,359 --> 01:14:10,800 intentamos jugar 1691 01:14:10,800 --> 01:14:27,430 se puede dar de todo 1692 01:14:27,430 --> 01:14:28,729 pero da igual 1693 01:14:28,729 --> 01:14:30,029 es el 10 igual 1694 01:14:30,029 --> 01:14:32,270 tú haces esto y tienes un 10 1695 01:14:32,270 --> 01:14:34,909 me hicieron oríficas 1696 01:14:34,909 --> 01:14:36,529 tienes menos 1697 01:14:36,529 --> 01:14:41,789 vale 1698 01:14:41,789 --> 01:14:43,810 Es que yo ya estoy bloqueada 1699 01:14:43,810 --> 01:14:45,189 sobre cómo... 1700 01:14:45,189 --> 01:14:47,130 Que no, que no, que... 1701 01:14:47,130 --> 01:14:50,090 No, más fácil, más fácil. 1702 01:14:51,109 --> 01:14:52,270 Esto era muy... 1703 01:14:52,270 --> 01:14:53,489 El main era muy complicado. 1704 01:14:53,649 --> 01:14:55,350 A ver, el de recibir carta, no. 1705 01:14:56,689 --> 01:14:57,829 El main era complicado. 1706 01:15:00,550 --> 01:15:05,390 A ver, aquí lo que pasa es que 1707 01:15:05,390 --> 01:15:07,789 lo que tendría sentido es hacer un... 1708 01:15:11,789 --> 01:15:17,260 Saca carta 1709 01:15:17,260 --> 01:15:18,579 Baraja 1710 01:15:18,579 --> 01:15:23,279 Y aquí 1711 01:15:23,279 --> 01:15:35,619 A ver 1712 01:15:35,619 --> 01:15:37,420 De todas formas es muy fácil 1713 01:15:37,420 --> 01:15:39,039 Escoger la primera carta de la baraja 1714 01:15:39,039 --> 01:15:40,819 Y ya está, le damos siempre la primera 1715 01:15:40,819 --> 01:15:41,680 No hace falta la zar 1716 01:15:41,680 --> 01:15:44,920 Claro, yo hago aquí un método 1717 01:15:44,920 --> 01:15:46,060 Sacar carta baraja 1718 01:15:46,060 --> 01:15:48,880 Y me hago lo siguiente 1719 01:15:48,880 --> 01:15:50,760 For 1720 01:15:50,760 --> 01:15:52,060 Carta 1721 01:15:52,060 --> 01:15:53,520 C en 1722 01:15:53,520 --> 01:15:57,600 Baraja.getCartas 1723 01:15:57,600 --> 01:15:59,039 La primera que me sale 1724 01:15:59,039 --> 01:16:00,619 La devuelvo y punto pelota 1725 01:16:00,619 --> 01:16:02,180 Y ya está 1726 01:16:02,180 --> 01:16:04,720 Retur C 1727 01:16:04,720 --> 01:16:08,880 Y ahora para que este se calle 1728 01:16:08,880 --> 01:16:10,140 Un retur 1729 01:16:10,140 --> 01:16:14,020 Y ahora ya aquí 1730 01:16:14,020 --> 01:16:16,319 Recibir carta, sacar, saca carta baraja 1731 01:16:16,319 --> 01:16:17,399 ¿Qué? 1732 01:16:18,399 --> 01:16:20,020 Arriba, dentro del paréntesis 1733 01:16:20,020 --> 01:16:20,800 Puedes poner 1734 01:16:20,800 --> 01:16:24,039 Baraja.getcarta de cero 1735 01:16:24,039 --> 01:16:26,699 No, porque es un set 1736 01:16:26,699 --> 01:16:30,220 No es una lista, si fuera un set sería 1737 01:16:30,220 --> 01:16:31,779 Y podrían hacer lo del push y pop 1738 01:16:31,779 --> 01:16:33,399 Que decía él, que sería mucho más fácil 1739 01:16:33,399 --> 01:16:34,859 Sacar carta, pop 1740 01:16:34,859 --> 01:16:37,020 Devolver carta, push 1741 01:16:37,020 --> 01:16:38,180 Pero como es un set 1742 01:16:38,180 --> 01:16:40,520 Pues sacar carta baraja 1743 01:16:40,520 --> 01:16:42,520 No sea más remedio que iterar 1744 01:16:42,520 --> 01:16:43,520 Para coger la primera 1745 01:16:43,520 --> 01:16:45,140 No sea otra 1746 01:16:45,140 --> 01:16:47,500 Este es mi propio 1747 01:16:47,500 --> 01:16:51,319 Claro 1748 01:16:51,319 --> 01:16:52,720 La que salga 1749 01:16:52,720 --> 01:16:55,340 Vale, sacar carta baraja 1750 01:16:55,340 --> 01:16:56,699 Entonces 1751 01:16:56,699 --> 01:17:00,420 Recibir carta 1752 01:17:00,420 --> 01:17:01,560 Sacar carta baraja 1753 01:17:01,560 --> 01:17:02,520 ¿Y qué me dice aquí? 1754 01:17:04,239 --> 01:17:05,560 Ah, que no lo he puesto estático 1755 01:17:05,560 --> 01:17:19,720 Vale, bueno, lo voy a subir a la hora virtual 1756 01:17:19,720 --> 01:17:24,279 11 1757 01:17:24,279 --> 01:17:32,300 A ver, lo que pasa es que en un examen 1758 01:17:32,300 --> 01:17:33,920 Uno se le va mal la pinza 1759 01:17:37,640 --> 01:17:41,500 Uy, que ni ha parado