**POKEAPI**
# Narrativa de Datos
Se realizaron ejercicios para entender la estructura de escritura en smalltalk utilizando Pharo, siguiendo el ejemplo del documento [revisando la participación Continua](https://mutabit.com/repos.fossil/labci/doc/25A1/wiki/revisando-la-participacion-continua--2w3jt.md.html) explicada y compartida por el profesor.
Nuevamente ejemplo. Quiero que me trajera el nombre del pokemon que se lista en la ordeno puerto numero 1.
Usando bloques podemos pensar en algo como
Usar colecciones en Pharo/Smalltalk para coleccionar los pesos de todos los Pokemones.
Quiero asociar mi narrativa con el orden en los que se encuentran los pokemones, es decir que de acuerdo con el orden, me pueda arrojar el nombre del pokemon:
# Clase Pokemon
Vamos a extraer las clases de pokemones, de acuerdo con el siguiente codigo de Pharo: pokemonDataDictionary := [ :name | | dataLink pokemonRawData | dataLink := 'https://pokeapi.co/api/v2/pokemon/', name. pokemonRawData := dataLink asUrl retrieveContents. STONJSON fromString: pokemonRawData ]
# Batalla Pokemon
Definamos un combate entre 2 pokemon:
# NARRATIVA DE DATOS PROYECTO FINAL
## Selección de Peleadores para Batalla Final
Peleador 1
![ ](https://sm.ign.com/ign_es/screenshot/default/squirtle-pokemon_nr3p.jpg)
Peleador 2
![ ](https://i.pinimg.com/736x/b1/5b/8b/b15b8be12f971b02f3d1398a4553dca1.jpg)
## Información Peleador 1
![ ](https://i.imgur.com/epBQAhW.png)
## Información Peleador 2
![ ](https://i.imgur.com/sgmmBIM.png)
## Selección de movimientos al azar para la batalla
Para realizar los movimientos al azar de cada peleador e ir avanzando en cada ronda de la batalla hasta definir un ganador se realizarà el siguiente código:
La batalla esta definida para realizarse en tres rondas, ganará la batalla el pokemon que sea el ganador de 2, de las 3 rondas.
De este modo, podemos modelar una ronda de lucha como la selección aleatoria de un movimiento de ataque:
![ ](https://i.imgur.com/cS5qFYJ.png)
Definir Ganador al Azar:
![ ](https://i.imgur.com/icw1lhl.png)
## Data Frames Ronda Torneo Pokemon Gimnacio de Ciudad Paleta
Para colocar la información en una tabla usaremos Data Frames, particularmente, adatando el ejemplo de la ´pagina 21 del libro [Data Analysis Made Simple with Pharo DataFrame](https://mutabit.com/repos.fossil/labci/uv/wiki/herramientas/25A-DataFrame-wip.pdf)haciendo qyue las columnas guarden la información sobre cada peleador, los movimientos que usan y el correspondiente ganador, registrando en cada fila como se llevó a cabo cada ronda de combate.
![ ](https://i.imgur.com/0GDQ1h3.png)
#Primera Ronda
Esta seria la primera ronda de la batalla pokemon, ejecutada con el código de manera sencilla.:
Ganador: Squirtle
![ Ganador Primera Ronda ](https://i.imgur.com/TWbnvNm.png)
## Ronda 2
Ganador Ronda 2: squirtle
![ Ganador Ronda 2 ](https://i.imgur.com/Zjkc14R.png)
## Ronda 3
![ Ganador Ronda 3 ](https://i.imgur.com/U7Vn1JJ.png)
Ganador: Squirtle
### Resultados Rondas Batalla
![ ](https://i.imgur.com/S3LYTVF.png)
Coloco los rounds como llaves:
![ LLaves Rounds ](https://i.imgur.com/EmM7EYy.png)
Luego colocamos las columnas como llaves:
![ LLaves Columnas ](https://i.imgur.com/LUrdgBt.png)
### Acceder a Filas y Columnas
Accediento por Nombre
![ Nombres Filas ](https://i.imgur.com/gS0TD3c.png)
Luego revisamos los nombres de las columnas:
![ Nombres Columnas ](https://i.imgur.com/vUktZAw.png)
![ Resultados Round 1 ](https://i.imgur.com/cSDR46g.png)
![ Resultados Round 2 ](https://i.imgur.com/mtMKX3g.png)
![ Resultados Round 3 ](https://i.imgur.com/yMtviOs.png)
Se puede acceder a las filas y columnas mediante sus índices numéricos. Puede obtener la misma fila y columna que en el ejemplo anterior usando:
Cabeza y Cola
![ Busqueda por Cabeza y Cola ](https://i.imgur.com/iL9v0x4.png)
### Agregación y Agrupación
![ Intento de código para contar las victorias por Round ](https://i.imgur.com/Qq8M1Qp.png)
### Pokemon Ganador: Squirtle
![ Pokemon Ganador ](https://wallpapers.com/images/featured/imagenes-de-squirtle-h6x0uzslec9uezge.jpg)
### Registro Ganador:
Se toma como referencia el libro mencionado anteriormente, en especial la parte que permite revisar y contar las columnas, donde se trae la columna numero 5, que representa el ganador de cada round como se muestra en la imagen.
![ Ganador en cada Round ](https://i.imgur.com/sZgRISn.png)
### Data Series
![ ](https://i.imgur.com/dJo6LLJ.png)
![ Al intentar replicar lo explicado del libro, para el caso de la creación de Data Series, me generó este error, impidiendo continuar. ](https://i.imgur.com/m0ceNRM.png)
![ Error ](https://i.imgur.com/6D6bilL.png)
### Conteo del Ganador
Para saber el ganador de los 3 round de acuerdo con el libro el método valueCounts proporcionará el número de valores únicos en su serie de datos:
![ ](https://i.imgur.com/zUzt2j6.png)