**Corte No. 3 POKEAPI**
Comprendiendo pharo desde los Pokemones. Presentado por Valentina Vanegas, para la clase de Unidades Semanticas. PUJ.
# PRUEBAS
#Snorlax: Es mi pokemon favorito, porque ama dormir.
![ ](https://alfabetajuega.com/hero/2024/01/pokemon-lanza-un-nuevo-manga-centrado-en-snorlax.jpg?width=768&aspect_ratio=16:9&format=nowebp)
Con este código se realiza la descarga de los contenidos dentro de PokemonExampleLink y los almace na en PokemonRawData
![ ](https://docutopia.sustrato.red/uploads/72e0c34a-7781-433f-b730-b04643dcde6b.png)
## Resultado: https://pokeapi.co/api/v2/pokemon/snorlax https://pokeapi.co/api/v2/pokemon/scyther
Con el siguiente codigo, tendre los datos de los 6 pokemones que elegí para trabajar.
# ¿Cuanto pesan los pokémones que elegí anteriormente? Pikachu: 4 Ditto: 3 Snorlax: 21 Scyther: 15 Charizard: 17 Haunter: 16
# Batalla de pokémones
Primeros intentos
# ¿Cómo puedo tener la data de mis guerreros?
# Usando la función AtRandom :
![ ](https://i.pinimg.com/originals/50/3b/5f/503b5fdcd4264b7d9e614ffc714da049.gif)
En un principio se crearon 6 peleadores, para elegir al azar con el comando correspondiente, de estos seleccionaron el peleador 4 y 2. Además se probó obtener un ganador con el mismo comando.
Para elegir un ganador de forma aleatoria, usaría el AtRandom. Que en este caso a Ditto como ganador.
# Resultado: ('scyther' 'ditto' 'counter' 'tera-blast' 'scyther') ('scyther' 'ditto' 'transform' 'transform' 'ditto') ('scyther' 'ditto' 'transform' 'transform' 'ditto')
![ ](https://i.pinimg.com/originals/c7/e4/c3/c7e4c397e9f25f3d42a78827769cb980.gif)
# Uso del data Frame No pude replicar correctamente la sugerencia pero decido aplicar algunas indicaciones propias del libro (p. 22) con un arreglo que e ve así:
# Tabla manual No pude incluir columnas, porque el codigo no me corre al intentar adherirla, es por eso que solo le di la información de lo combates a *row* y quedo algo así:
![ ](https://docutopia.sustrato.red/uploads/f235457b-01c9-42e8-83dc-eb681a68375c.png)
![ ](https://docutopia.sustrato.red/uploads/1b356253-0be7-4a99-ab1f-cc1bbb0755ac.png)
Lo que sigue dandonos como absoluto ganador a Ditto.
![ ](https://i.pinimg.com/originals/a5/c8/8e/a5c88effed16e5f370338edde1630608.gif)
# Propiedades del DataFrame
# Resultado
![ ](https://docutopia.sustrato.red/uploads/9ee90486-4de8-40b7-a18a-12f30623f833.png)
El código anterior traduce un conteo de las victorias de cada peleador, en la que tenemos a Dittto con 2/3
# Sobre PokemonAtRandom ¿cómo debería modificarse el código anterior para que el Data Frame pokemonTournament guarde la batalla de dos Pokemones elegidos al azar en lugar de dos Pokemones predefinidos?
En mi caso, había elegido 6 diferentes pokemones y cada uno lo cree bajo el alias dde ''fighter1..2..3..'' por lo que al usar al AtRandom el resultado siempre sería alguno de esos pokemones. Por lo que según lo solicitado lo ideal sería: 1. A partir de todas las opciones posibles, aplicar el atrandom, dos veces paara obtener los 2 pokemones al azar. 2. Aplicar luego el RandomMove para conocer los ataques 3. Realizar el arreglo para el DataFrame con la información de los anteriores comandos.
![ ](https://i.pinimg.com/originals/09/0e/80/090e809fec5d5751e397bfd0aba05d31.gif)
#Código equivalente
PokemonAtRandom: 2 veces para seleccionar los dos Pokes al azar randomMove := [ (fighterX randomMoves Value) (fighterZ randomMoves Value') at: 'name'] winners := DataSeries withKeys: keys values: #('X' 'X' 'Z') name: #winners.
#Algunas incidencias. Como no tenía instalado minidocs, debí pedir orientación de mis compañeros, adicionalmente intente realizar un proceso manual que fracasó