Ejercicio
- Realizar un programa que enseñe al usuario el nombre y tipo de dos Pokémon y elija cual cree que tiene mayor experiencia base.
- Si acierta gana 10 puntos. Si falla o empata no obtiene nada.
- El usuario escoge si desea seguir jugando después de cada desafío.
- Al final si decide no seguir se le mostrará el puntaje final
Este ejercicio se realiza con el fin de afianzar un poco más el uso de los diccionarios. Para ello los datos del pokémon deben ir almacenados en diccionarios, dentro de una lista, donde almacenamos el nombre, tipo y base de experiencia.
pokemon_random = [
{
"name":"pikachu",
"type":"electric",
"base_experience": 112
},
{
"name":"charmander",
"type":"fire",
"base_experience":62
},
{
"name":"bulbasaur",
"type":"grass",
"base_experience":64
},
{
"name":"pidgeotto",
"type":"flying",
"base_experience":122
},
{
"name":"zubat",
"type":"flying",
"base_experience":49
},
{
"name":"mankey",
"type":"fighting",
"base_experience":61
}
]
Para darle un poco más de funcionalidad este diccionario se crea en un archivo aparte que nos va a servir como un módulo para el programa principal.
El programa principal debe comenzar mostrando solo dos datos de cada pokémon y solo se va a pedir que se decida por uno de ellos
print(f"Pokemon del equipo 'a', su nombre es: {poke_a['name']} y es de tipo {poke_a['type']}")
print(f"Pokemon del equipo 'b', su nombre es: {poke_b['name']} y es de tipo {poke_b['type']}")
opcion = input("Escoja 'a' o 'b' cual tiene mas base experiencia\t")
print(winner_pokemon(opcion))
Del anterior código se puede observar que para mostrar los datos se pueden obtener de una lista llamada poke_a
y poke_b
, cada una me debe traer un pokémon diferente:
poke_a = choice_pokemon()
poke_b = choice_pokemon()
while poke_a == poke_b:
poke_b = choice_pokemon()
La función que se esta invocando dos veces para obtener el pokémon hace esta elección de manera aleatoria con el método choice
del módulo random
import data as d
import random as r
def choice_pokemon():
return r.choice(d.pokemon_random)
El módulo data
es el archivo que creamos inicialmente con la lista de pokémon. Pero volviendo al menú inicial donde se le solicita al usuario que se decida por alguno de los dos pokémon presentados aleatoriamente, se hace uso del método local winner_pokemon
el cual va a comparar la base de experiencia de cada uno y si el jugador acierta se le asigna un puntaje.
def asignar_puntaje():
global score
score += 10
return score
def winner_pokemon(op):
experience_a = poke_a["base_experience"]
experience_b = poke_b["base_experience"]
if experience_a > experience_b:
if op == 'a':
asignar_puntaje()
return f"El ganador es {poke_a['name']} con experiencia {experience_a} y usted obtiene 10 puntos"
elif op == 'b':
return f"El ganador es {poke_a['name']} con experiencia {experience_a} y usted no obtiene puntos"
elif experience_a < experience_b:
if op == 'a':
return f"El ganador es {poke_b['name']} con experiencia {experience_b} y usted no obtiene puntos"
elif op == 'b':
asignar_puntaje()
return f"El ganador es {poke_b['name']} con experiencia {experience_b} y usted obtiene 10 puntos"
else:
return "No hay ganador, es empate"
El ejercicio completo lo pueden descargar del repositorio Github
Top comments (0)