From 932053afb4947c8586c22bce802fc60467fe3c41 Mon Sep 17 00:00:00 2001 From: medicina Date: Tue, 3 Dec 2024 00:37:47 +0100 Subject: [PATCH 1/9] Cambio a OOP --- Practica006 - Combate OOP.py | 124 +++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 Practica006 - Combate OOP.py diff --git a/Practica006 - Combate OOP.py b/Practica006 - Combate OOP.py new file mode 100644 index 0000000..962e5c1 --- /dev/null +++ b/Practica006 - Combate OOP.py @@ -0,0 +1,124 @@ +""" +Si te parece bien, me gustaría colaborar en tu proyecto para poder aprender mutuamente tanto a colaborar +como a utilizar github correctamente, ya que necesito practicar. +Voy a tratar de sugerir algún cambio en el código. +1- El primer cambio que te sugiero es utilizar Clases y Objetos para poder ir escalando poco a poco. +2- El segundo cambio es utilizar los fstrings en vez del .format() para pasar variables a Strings +""" + +# Importamos la funcion random para el ataque del Pokemon Oponente +# Pikachu en este caso +import random + +# Creamos la clase Ataque con los atributos nombre que guardará el nombre del ataque +# y poder que guardará los puntos de daño de los ataques +class Ataque: + def __init__(self, nombre: str, poder: int) -> None: + self.nombre = nombre + self.poder = poder + +# Creamos la clase Pokemon con los atributos nombre, vida y ataques +# y los métodos para agregar, elegir y recibir ataques +class Pokemon: + def __init__(self, nombre: str, vida: int) -> None: + self.nombre = nombre + self.vida = vida + self.ataques = {} + + def agregar_ataque(self, nombre: str, poder: int): + self.ataques[nombre] = Ataque(nombre, poder) + + def elegir_ataque(self, nombre_ataque: str): + return self.ataques.get(nombre_ataque) + + def recibir_ataque(self, ataque: Ataque): + self.vida -= ataque.poder + if self.vida < 0: + self.vida = 0 + +# Creamos la clase Combate que contendrá el Pokemon del jugador y del oponente +# y los turnos de ataque de jugador y oponente. Empezará atacando el oponente. +class Combate: + def __init__(self, jugador: Pokemon, oponente: Pokemon) -> None: + self.jugador = jugador + self.oponente = oponente + self.historico = [] + self.pulsa_para_continuar = "\nPulsa ENTER/INTRO para continuar...\n" + + def turno_atacar_oponente(self): + ataque_oponente = random.choice(list(self.oponente.ataques.values())) + print(f"{self.oponente.nombre} usa {ataque_oponente.nombre} y causa {ataque_oponente.poder} puntos de daño.") + self.jugador.recibir_ataque(ataque_oponente) + print(f"Te quedan {self.jugador.vida} puntos de vida.") + + def turno_atacar_jugador(self): + print("\nAhora es tu turno para atacar. Puedes elegir entre los 3 ataques que tienes disponibles.") + elegir_ataque = int(input("Elige que ataque quieres hacer\n" + "1- Placaje\n" + "2- Pistola de agua\n" + "3- Burbuja\n" + "Tu opción --> ")) + ataques_posibles = list(self.jugador.ataques.values()) + if 1 <= elegir_ataque <= len(ataques_posibles): + ataque_jugador = ataques_posibles[elegir_ataque - 1] + print(f"¡Lanzas un ataque {ataque_jugador.nombre} y causas {ataque_jugador.poder} puntos de daño a {self.oponente.nombre}.") + self.oponente.recibir_ataque(ataque_jugador) + print(f"A {self.oponente.nombre} le quedan {self.oponente.vida} puntos de vida.") + else: + print("¡Has perdido el turno! No elegiste un ataque válido.") + +# Explicación del juego, componentes y dinámica + def jugar(self): + print("** COMBATE POKEMON -- Pikachu contra Squirtle **") + print("Te reto a un combate entre personajes Pokemon. Yo controlo a Pikachu y tú a Squirtle.") + print("Combatimos mientras ambos tengamos vida.\n") + input(self.pulsa_para_continuar) + + while self.jugador.vida > 0 and self.oponente.vida > 0: + self.turno_atacar_oponente() + + if self.jugador.vida == 0: + break + + input(self.pulsa_para_continuar) + self.turno_atacar_jugador() + + if self.oponente.vida == 0: + break + + input(self.pulsa_para_continuar) + + print("\nResumen del combate:") + print(f"Te quedan {self.jugador.vida} puntos de vida.") + print(f"A {self.oponente.nombre} le quedan {self.oponente.vida} puntos de vida.") + + if self.jugador.vida == 0: + print("\nLo siento, pero Pikachu te ha ganado.") + if self.oponente.vida == 0: + print("\n¡ENHORABUENA! Has derrotado a Pikachu.") + + print("\nEspero volver a verte pronto.") + +# Creamos ambos Pokémon +pikachu = Pokemon("Pikachu", 80) +pikachu.agregar_ataque("Bola Voltio", 10) +pikachu.agregar_ataque("Onda Trueno", 11) + +squirtle = Pokemon("Squirtle", 90) +squirtle.agregar_ataque("Placaje", 10) +squirtle.agregar_ataque("Pistola de agua", 12) +squirtle.agregar_ataque("Burbuja", 9) + +# Creamos el Combate: +# El primer Pokemon que pasamos como argumento es el del jugador y el segundo el del oponente +combate = Combate(squirtle, pikachu) +combate.jugar() + +""" +Como primera aportación creo que es suficiente para ver si te parece bien continuar por esta línea de colaboración. + +Como siguientes pasos sugiero: +1- Cambiar los sitios donde aparecen Pikachu y Squirtle escritos "a mano" por una llamada al Pokemon.nombre que corresponda + por ejemplo en las líneas 72, 73, 96, 98 +2- Cambiar los valores escritos "a mano" en la función turno_atacar_jugador() por una llamada a los mismos +""" \ No newline at end of file From 61c84a2e17a8e9fbc575d70793e7ab230495a570 Mon Sep 17 00:00:00 2001 From: usuario Date: Tue, 3 Dec 2024 13:31:09 +0100 Subject: [PATCH 2/9] Utilizando atributos de la clase para llamar al Pokemon --- Practica006 - Combate OOP.py | 50 ++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/Practica006 - Combate OOP.py b/Practica006 - Combate OOP.py index 962e5c1..936268d 100644 --- a/Practica006 - Combate OOP.py +++ b/Practica006 - Combate OOP.py @@ -1,24 +1,20 @@ """ -Si te parece bien, me gustaría colaborar en tu proyecto para poder aprender mutuamente tanto a colaborar -como a utilizar github correctamente, ya que necesito practicar. -Voy a tratar de sugerir algún cambio en el código. -1- El primer cambio que te sugiero es utilizar Clases y Objetos para poder ir escalando poco a poco. -2- El segundo cambio es utilizar los fstrings en vez del .format() para pasar variables a Strings + Importamos la funcion random para el ataque del Pokemon Oponente + Pikachu en este caso """ - -# Importamos la funcion random para el ataque del Pokemon Oponente -# Pikachu en este caso import random - -# Creamos la clase Ataque con los atributos nombre que guardará el nombre del ataque -# y poder que guardará los puntos de daño de los ataques +""" + Creamos la clase Ataque con los atributos nombre que guardará el nombre del ataque + y poder que guardará los puntos de daño de los ataques +""" class Ataque: def __init__(self, nombre: str, poder: int) -> None: self.nombre = nombre self.poder = poder - -# Creamos la clase Pokemon con los atributos nombre, vida y ataques -# y los métodos para agregar, elegir y recibir ataques +""" + Creamos la clase Pokemon con los atributos nombre, vida y ataques + y los métodos para agregar, elegir y recibir ataques +""" class Pokemon: def __init__(self, nombre: str, vida: int) -> None: self.nombre = nombre @@ -35,9 +31,10 @@ def recibir_ataque(self, ataque: Ataque): self.vida -= ataque.poder if self.vida < 0: self.vida = 0 - -# Creamos la clase Combate que contendrá el Pokemon del jugador y del oponente -# y los turnos de ataque de jugador y oponente. Empezará atacando el oponente. +""" + Creamos la clase Combate que contendrá el Pokemon del jugador y del oponente + y los turnos de ataque de jugador y oponente. Empezará atacando el oponente. +""" class Combate: def __init__(self, jugador: Pokemon, oponente: Pokemon) -> None: self.jugador = jugador @@ -69,7 +66,7 @@ def turno_atacar_jugador(self): # Explicación del juego, componentes y dinámica def jugar(self): - print("** COMBATE POKEMON -- Pikachu contra Squirtle **") + print(f"** COMBATE POKEMON -- {self.oponente.nombre} contra {self.jugador.nombre} **") print("Te reto a un combate entre personajes Pokemon. Yo controlo a Pikachu y tú a Squirtle.") print("Combatimos mientras ambos tengamos vida.\n") input(self.pulsa_para_continuar) @@ -93,9 +90,9 @@ def jugar(self): print(f"A {self.oponente.nombre} le quedan {self.oponente.vida} puntos de vida.") if self.jugador.vida == 0: - print("\nLo siento, pero Pikachu te ha ganado.") + print(f"\nLo siento, pero {self.oponente.nombre} te ha ganado.") if self.oponente.vida == 0: - print("\n¡ENHORABUENA! Has derrotado a Pikachu.") + print(f"\n¡ENHORABUENA! Has derrotado a {self.oponente.nombre}.") print("\nEspero volver a verte pronto.") @@ -108,17 +105,14 @@ def jugar(self): squirtle.agregar_ataque("Placaje", 10) squirtle.agregar_ataque("Pistola de agua", 12) squirtle.agregar_ataque("Burbuja", 9) - -# Creamos el Combate: -# El primer Pokemon que pasamos como argumento es el del jugador y el segundo el del oponente +""" + Creamos el Combate: + El primer Pokemon que pasamos como argumento es el del jugador y el segundo el del oponente +""" combate = Combate(squirtle, pikachu) combate.jugar() """ -Como primera aportación creo que es suficiente para ver si te parece bien continuar por esta línea de colaboración. - -Como siguientes pasos sugiero: -1- Cambiar los sitios donde aparecen Pikachu y Squirtle escritos "a mano" por una llamada al Pokemon.nombre que corresponda - por ejemplo en las líneas 72, 73, 96, 98 +Siguiente Commit Previsto: 2- Cambiar los valores escritos "a mano" en la función turno_atacar_jugador() por una llamada a los mismos """ \ No newline at end of file From aea28a658f5dd6bbdf191e69219c9e03c952fddb Mon Sep 17 00:00:00 2001 From: usuario Date: Tue, 3 Dec 2024 14:31:07 +0100 Subject: [PATCH 3/9] Llamada atributo ataques. Eliminar historico (sin usar) --- Practica006 - Combate OOP.py | 39 ++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/Practica006 - Combate OOP.py b/Practica006 - Combate OOP.py index 936268d..35ff47a 100644 --- a/Practica006 - Combate OOP.py +++ b/Practica006 - Combate OOP.py @@ -1,6 +1,5 @@ """ Importamos la funcion random para el ataque del Pokemon Oponente - Pikachu en este caso """ import random """ @@ -39,7 +38,6 @@ class Combate: def __init__(self, jugador: Pokemon, oponente: Pokemon) -> None: self.jugador = jugador self.oponente = oponente - self.historico = [] self.pulsa_para_continuar = "\nPulsa ENTER/INTRO para continuar...\n" def turno_atacar_oponente(self): @@ -50,15 +48,15 @@ def turno_atacar_oponente(self): def turno_atacar_jugador(self): print("\nAhora es tu turno para atacar. Puedes elegir entre los 3 ataques que tienes disponibles.") + ataques_posibles = list(self.jugador.ataques.values()) elegir_ataque = int(input("Elige que ataque quieres hacer\n" - "1- Placaje\n" - "2- Pistola de agua\n" - "3- Burbuja\n" + f"1- {ataques_posibles[0].nombre}\n" + f"2- {ataques_posibles[1].nombre}\n" + f"3- {ataques_posibles[2].nombre}\n" "Tu opción --> ")) - ataques_posibles = list(self.jugador.ataques.values()) if 1 <= elegir_ataque <= len(ataques_posibles): ataque_jugador = ataques_posibles[elegir_ataque - 1] - print(f"¡Lanzas un ataque {ataque_jugador.nombre} y causas {ataque_jugador.poder} puntos de daño a {self.oponente.nombre}.") + print(f"¡Lanzas un ataque {ataque_jugador.nombre} y causas {ataque_jugador.poder} puntos de daño a {self.oponente.nombre}!.") self.oponente.recibir_ataque(ataque_jugador) print(f"A {self.oponente.nombre} le quedan {self.oponente.vida} puntos de vida.") else: @@ -67,7 +65,7 @@ def turno_atacar_jugador(self): # Explicación del juego, componentes y dinámica def jugar(self): print(f"** COMBATE POKEMON -- {self.oponente.nombre} contra {self.jugador.nombre} **") - print("Te reto a un combate entre personajes Pokemon. Yo controlo a Pikachu y tú a Squirtle.") + print(f"Te reto a un combate entre personajes Pokemon. Yo controlo a {self.oponente.nombre} y tú a {self.jugador.nombre}.") print("Combatimos mientras ambos tengamos vida.\n") input(self.pulsa_para_continuar) @@ -96,23 +94,24 @@ def jugar(self): print("\nEspero volver a verte pronto.") -# Creamos ambos Pokémon -pikachu = Pokemon("Pikachu", 80) -pikachu.agregar_ataque("Bola Voltio", 10) -pikachu.agregar_ataque("Onda Trueno", 11) - -squirtle = Pokemon("Squirtle", 90) -squirtle.agregar_ataque("Placaje", 10) -squirtle.agregar_ataque("Pistola de agua", 12) -squirtle.agregar_ataque("Burbuja", 9) """ - Creamos el Combate: + Creamos un nuevo Combate con dos nuevos Pokemon: El primer Pokemon que pasamos como argumento es el del jugador y el segundo el del oponente """ +pikachu = Pokemon("Charmander", 130) +pikachu.agregar_ataque("Arañazo", 40) +pikachu.agregar_ataque("Gruñido", 0) +pikachu.agregar_ataque("Ascuas", 40) + +squirtle = Pokemon("Bulbasaur", 125) +squirtle.agregar_ataque("Placaje", 40) +squirtle.agregar_ataque("Gruñido", 0) +squirtle.agregar_ataque("Látigo Cepa", 45) + combate = Combate(squirtle, pikachu) combate.jugar() """ -Siguiente Commit Previsto: -2- Cambiar los valores escritos "a mano" en la función turno_atacar_jugador() por una llamada a los mismos + El siguiente Commit propuesto sería cambiar en el método elegir_ataque() las opciones puestas a mano, + por introducirlas dentro de un bucle, ya que no sabemos cuántos ataques vamos a definir en la llamada. """ \ No newline at end of file From f31a598f322e7b97d07a985d95daa1f932e4fc13 Mon Sep 17 00:00:00 2001 From: usuario Date: Tue, 3 Dec 2024 14:45:56 +0100 Subject: [PATCH 4/9] Llamada atributo ataques. Eliminar historico (sin usar) --- Practica006 - Combate OOP.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Practica006 - Combate OOP.py b/Practica006 - Combate OOP.py index 35ff47a..a64d912 100644 --- a/Practica006 - Combate OOP.py +++ b/Practica006 - Combate OOP.py @@ -98,17 +98,17 @@ def jugar(self): Creamos un nuevo Combate con dos nuevos Pokemon: El primer Pokemon que pasamos como argumento es el del jugador y el segundo el del oponente """ -pikachu = Pokemon("Charmander", 130) -pikachu.agregar_ataque("Arañazo", 40) -pikachu.agregar_ataque("Gruñido", 0) -pikachu.agregar_ataque("Ascuas", 40) +charmander = Pokemon("Charmander", 130) +charmander.agregar_ataque("Arañazo", 40) +charmander.agregar_ataque("Gruñido", 0) +charmander.agregar_ataque("Ascuas", 40) -squirtle = Pokemon("Bulbasaur", 125) -squirtle.agregar_ataque("Placaje", 40) -squirtle.agregar_ataque("Gruñido", 0) -squirtle.agregar_ataque("Látigo Cepa", 45) +bulbasaur = Pokemon("Bulbasaur", 125) +bulbasaur.agregar_ataque("Placaje", 40) +bulbasaur.agregar_ataque("Gruñido", 0) +bulbasaur.agregar_ataque("Látigo Cepa", 45) -combate = Combate(squirtle, pikachu) +combate = Combate(bulbasaur, charmander) combate.jugar() """ From 65e6cf9d6332b8c8e4488dcd455e023dab37cc41 Mon Sep 17 00:00:00 2001 From: usuario Date: Tue, 3 Dec 2024 15:27:41 +0100 Subject: [PATCH 5/9] =?UTF-8?q?Introducir=20Notas=20(inspiraci=C3=B3n)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Notas.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 Notas.txt diff --git a/Notas.txt b/Notas.txt new file mode 100644 index 0000000..38ff945 --- /dev/null +++ b/Notas.txt @@ -0,0 +1,14 @@ +Proyectos de Github de los que podemos sacar información a utilizar en el futuro + +El principal: +https://github.com/pret/pokered + +2 de sus Forks: +https://github.com/Vortyne/pureRGB +https://github.com/jojobear13/shinpokered + +Listado de Forks: +https://github.com/pret/pokered/forks + +Detalles del Funcionamiento del Juego, explicado en video: +https://www.youtube.com/watch?v=b-cGPIgxxWg \ No newline at end of file From cbcee72876c2d886f2393eca43231151257c8451 Mon Sep 17 00:00:00 2001 From: medicina Date: Tue, 3 Dec 2024 20:12:27 +0100 Subject: [PATCH 6/9] =?UTF-8?q?A=C3=B1adida=20Pokedex?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pokedex.py | 153 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 Pokedex.py diff --git a/Pokedex.py b/Pokedex.py new file mode 100644 index 0000000..bcec8a3 --- /dev/null +++ b/Pokedex.py @@ -0,0 +1,153 @@ +pokemon_dict = { + "#001": {"nombre": "Bulbasaur", "tipos": ["Planta", "Veneno"]}, + "#002": {"nombre": "Ivysaur", "tipos": ["Planta", "Veneno"]}, + "#003": {"nombre": "Venusaur", "tipos": ["Planta", "Veneno"]}, + "#004": {"nombre": "Charmander", "tipos": ["Fuego"]}, + "#005": {"nombre": "Charmeleon", "tipos": ["Fuego"]}, + "#006": {"nombre": "Charizard", "tipos": ["Fuego", "Volador"]}, + "#007": {"nombre": "Squirtle", "tipos": ["Agua"]}, + "#008": {"nombre": "Wartortle", "tipos": ["Agua"]}, + "#009": {"nombre": "Blastoise", "tipos": ["Agua"]}, + "#010": {"nombre": "Caterpie", "tipos": ["Bicho"]}, + "#011": {"nombre": "Metapod", "tipos": ["Bicho"]}, + "#012": {"nombre": "Butterfree", "tipos": ["Bicho", "Volador"]}, + "#013": {"nombre": "Weedle", "tipos": ["Bicho", "Veneno"]}, + "#014": {"nombre": "Kakuna", "tipos": ["Bicho", "Veneno"]}, + "#015": {"nombre": "Beedrill", "tipos": ["Bicho", "Veneno"]}, + "#016": {"nombre": "Pidgey", "tipos": ["Normal", "Volador"]}, + "#017": {"nombre": "Pidgeotto", "tipos": ["Normal", "Volador"]}, + "#018": {"nombre": "Pidgeot", "tipos": ["Normal", "Volador"]}, + "#019": {"nombre": "Rattata", "tipos": ["Normal"]}, + "#020": {"nombre": "Raticate", "tipos": ["Normal"]}, + "#021": {"nombre": "Spearow", "tipos": ["Normal", "Volador"]}, + "#022": {"nombre": "Fearow", "tipos": ["Normal", "Volador"]}, + "#023": {"nombre": "Ekans", "tipos": ["Veneno"]}, + "#024": {"nombre": "Arbok", "tipos": ["Veneno"]}, + "#025": {"nombre": "Pikachu", "tipos": ["Eléctrico"]}, + "#026": {"nombre": "Raichu", "tipos": ["Eléctrico"]}, + "#027": {"nombre": "Sandshrew", "tipos": ["Tierra"]}, + "#028": {"nombre": "Sandslash", "tipos": ["Tierra"]}, + "#029": {"nombre": "Nidoran♀", "tipos": ["Veneno"]}, + "#030": {"nombre": "Nidorina", "tipos": ["Veneno"]}, + "#031": {"nombre": "Nidoqueen", "tipos": ["Veneno", "Tierra"]}, + "#032": {"nombre": "Nidoran♂", "tipos": ["Veneno"]}, + "#033": {"nombre": "Nidorino", "tipos": ["Veneno"]}, + "#034": {"nombre": "Nidoking", "tipos": ["Veneno", "Tierra"]}, + "#035": {"nombre": "Clefairy", "tipos": ["Hada"]}, + "#036": {"nombre": "Clefable", "tipos": ["Hada"]}, + "#037": {"nombre": "Vulpix", "tipos": ["Fuego"]}, + "#038": {"nombre": "Ninetales", "tipos": ["Fuego"]}, + "#039": {"nombre": "Jigglypuff", "tipos": ["Normal", "Hada"]}, + "#040": {"nombre": "Wigglytuff", "tipos": ["Normal", "Hada"]}, + "#041": {"nombre": "Zubat", "tipos": ["Veneno", "Volador"]}, + "#042": {"nombre": "Golbat", "tipos": ["Veneno", "Volador"]}, + "#043": {"nombre": "Oddish", "tipos": ["Planta", "Veneno"]}, + "#044": {"nombre": "Gloom", "tipos": ["Planta", "Veneno"]}, + "#045": {"nombre": "Vileplume", "tipos": ["Planta", "Veneno"]}, + "#046": {"nombre": "Paras", "tipos": ["Bicho", "Planta"]}, + "#047": {"nombre": "Parasect", "tipos": ["Bicho", "Planta"]}, + "#048": {"nombre": "Venonat", "tipos": ["Bicho", "Veneno"]}, + "#049": {"nombre": "Venomoth", "tipos": ["Bicho", "Veneno"]}, + "#050": {"nombre": "Diglett", "tipos": ["Tierra"]}, + "#051": {"nombre": "Dugtrio", "tipos": ["Tierra"]}, + "#052": {"nombre": "Meowth", "tipos": ["Normal"]}, + "#053": {"nombre": "Persian", "tipos": ["Normal"]}, + "#054": {"nombre": "Psyduck", "tipos": ["Agua"]}, + "#055": {"nombre": "Golduck", "tipos": ["Agua"]}, + "#056": {"nombre": "Mankey", "tipos": ["Lucha"]}, + "#057": {"nombre": "Primeape", "tipos": ["Lucha"]}, + "#058": {"nombre": "Growlithe", "tipos": ["Fuego"]}, + "#059": {"nombre": "Arcanine", "tipos": ["Fuego"]}, + "#060": {"nombre": "Poliwag", "tipos": ["Agua"]}, + "#061": {"nombre": "Poliwhirl", "tipos": ["Agua"]}, + "#062": {"nombre": "Poliwrath", "tipos": ["Agua", "Lucha"]}, + "#063": {"nombre": "Abra", "tipos": ["Psíquico"]}, + "#064": {"nombre": "Kadabra", "tipos": ["Psíquico"]}, + "#065": {"nombre": "Alakazam", "tipos": ["Psíquico"]}, + "#066": {"nombre": "Machop", "tipos": ["Lucha"]}, + "#067": {"nombre": "Machoke", "tipos": ["Lucha"]}, + "#068": {"nombre": "Machamp", "tipos": ["Lucha"]}, + "#069": {"nombre": "Bellsprout", "tipos": ["Planta", "Veneno"]}, + "#070": {"nombre": "Weepinbell", "tipos": ["Planta", "Veneno"]}, + "#071": {"nombre": "Victreebel", "tipos": ["Planta", "Veneno"]}, + "#072": {"nombre": "Tentacool", "tipos": ["Agua", "Veneno"]}, + "#073": {"nombre": "Tentacruel", "tipos": ["Agua", "Veneno"]}, + "#074": {"nombre": "Geodude", "tipos": ["Roca", "Tierra"]}, + "#075": {"nombre": "Graveler", "tipos": ["Roca", "Tierra"]}, + "#076": {"nombre": "Golem", "tipos": ["Roca", "Tierra"]}, + "#077": {"nombre": "Ponyta", "tipos": ["Fuego"]}, + "#078": {"nombre": "Rapidash", "tipos": ["Fuego"]}, + "#079": {"nombre": "Slowpoke", "tipos": ["Agua", "Psíquico"]}, + "#080": {"nombre": "Slowbro", "tipos": ["Agua", "Psíquico"]}, + "#081": {"nombre": "Magnemite", "tipos": ["Eléctrico", "Acero"]}, + "#082": {"nombre": "Magneton", "tipos": ["Eléctrico", "Acero"]}, + "#083": {"nombre": "Farfetch'd", "tipos": ["Normal", "Volador"]}, + "#084": {"nombre": "Doduo", "tipos": ["Normal", "Volador"]}, + "#085": {"nombre": "Dodrio", "tipos": ["Normal", "Volador"]}, + "#086": {"nombre": "Seel", "tipos": ["Agua"]}, + "#087": {"nombre": "Dewgong", "tipos": ["Agua", "Hielo"]}, + "#088": {"nombre": "Grimer", "tipos": ["Veneno"]}, + "#089": {"nombre": "Muk", "tipos": ["Veneno"]}, + "#090": {"nombre": "Shellder", "tipos": ["Agua"]}, + "#091": {"nombre": "Cloyster", "tipos": ["Agua", "Hielo"]}, + "#092": {"nombre": "Gastly", "tipos": ["Fantasma", "Veneno"]}, + "#093": {"nombre": "Haunter", "tipos": ["Fantasma", "Veneno"]}, + "#094": {"nombre": "Gengar", "tipos": ["Fantasma", "Veneno"]}, + "#095": {"nombre": "Onix", "tipos": ["Roca", "Tierra"]}, + "#096": {"nombre": "Drowzee", "tipos": ["Psíquico"]}, + "#097": {"nombre": "Hypno", "tipos": ["Psíquico"]}, + "#098": {"nombre": "Krabby", "tipos": ["Agua"]}, + "#099": {"nombre": "Kingler", "tipos": ["Agua"]}, + "#100": {"nombre": "Voltorb", "tipos": ["Eléctrico"]}, + "#101": {"nombre": "Electrode", "tipos": ["Eléctrico"]}, + "#102": {"nombre": "Exeggcute", "tipos": ["Planta", "Psíquico"]}, + "#103": {"nombre": "Exeggutor", "tipos": ["Planta", "Psíquico"]}, + "#104": {"nombre": "Cubone", "tipos": ["Tierra"]}, + "#105": {"nombre": "Marowak", "tipos": ["Tierra"]}, + "#106": {"nombre": "Hitmonlee", "tipos": ["Lucha"]}, + "#107": {"nombre": "Hitmonchan", "tipos": ["Lucha"]}, + "#108": {"nombre": "Lickitung", "tipos": ["Normal"]}, + "#109": {"nombre": "Koffing", "tipos": ["Veneno"]}, + "#110": {"nombre": "Weezing", "tipos": ["Veneno"]}, + "#111": {"nombre": "Rhyhorn", "tipos": ["Tierra", "Roca"]}, + "#112": {"nombre": "Rhydon", "tipos": ["Tierra", "Roca"]}, + "#113": {"nombre": "Chansey", "tipos": ["Normal"]}, + "#114": {"nombre": "Tangela", "tipos": ["Planta"]}, + "#115": {"nombre": "Kangaskhan", "tipos": ["Normal"]}, + "#116": {"nombre": "Horsea", "tipos": ["Agua"]}, + "#117": {"nombre": "Seadra", "tipos": ["Agua"]}, + "#118": {"nombre": "Goldeen", "tipos": ["Agua"]}, + "#119": {"nombre": "Seaking", "tipos": ["Agua"]}, + "#120": {"nombre": "Staryu", "tipos": ["Agua"]}, + "#121": {"nombre": "Starmie", "tipos": ["Agua", "Psíquico"]}, + "#122": {"nombre": "Mr. Mime", "tipos": ["Psíquico", "Hada"]}, + "#123": {"nombre": "Scyther", "tipos": ["Bicho", "Volador"]}, + "#124": {"nombre": "Jynx", "tipos": ["Hielo", "Psíquico"]}, + "#125": {"nombre": "Electabuzz", "tipos": ["Eléctrico"]}, + "#126": {"nombre": "Magmar", "tipos": ["Fuego"]}, + "#127": {"nombre": "Pinsir", "tipos": ["Bicho"]}, + "#128": {"nombre": "Tauros", "tipos": ["Normal"]}, + "#129": {"nombre": "Magikarp", "tipos": ["Agua"]}, + "#130": {"nombre": "Gyarados", "tipos": ["Agua", "Volador"]}, + "#131": {"nombre": "Lapras", "tipos": ["Agua", "Hielo"]}, + "#132": {"nombre": "Ditto", "tipos": ["Normal"]}, + "#133": {"nombre": "Eevee", "tipos": ["Normal"]}, + "#134": {"nombre": "Vaporeon", "tipos": ["Agua"]}, + "#135": {"nombre": "Jolteon", "tipos": ["Eléctrico"]}, + "#136": {"nombre": "Flareon", "tipos": ["Fuego"]}, + "#137": {"nombre": "Porygon", "tipos": ["Normal"]}, + "#138": {"nombre": "Omanyte", "tipos": ["Roca", "Agua"]}, + "#139": {"nombre": "Omastar", "tipos": ["Roca", "Agua"]}, + "#140": {"nombre": "Kabuto", "tipos": ["Roca", "Agua"]}, + "#141": {"nombre": "Kabutops", "tipos": ["Roca", "Agua"]}, + "#142": {"nombre": "Aerodactyl", "tipos": ["Roca", "Volador"]}, + "#143": {"nombre": "Snorlax", "tipos": ["Normal"]}, + "#144": {"nombre": "Articuno", "tipos": ["Hielo", "Volador"]}, + "#145": {"nombre": "Zapdos", "tipos": ["Eléctrico", "Volador"]}, + "#146": {"nombre": "Moltres", "tipos": ["Fuego", "Volador"]}, + "#147": {"nombre": "Dratini", "tipos": ["Dragón"]}, + "#148": {"nombre": "Dragonair", "tipos": ["Dragón"]}, + "#149": {"nombre": "Dragonite", "tipos": ["Dragón", "Volador"]}, + "#150": {"nombre": "Mewtwo", "tipos": ["Psíquico"]}, + "#151": {"nombre": "Mew", "tipos": ["Psíquico"]} +} \ No newline at end of file From a30fc97df07ba53585674a7ef128977b23923165 Mon Sep 17 00:00:00 2001 From: usuario Date: Wed, 4 Dec 2024 14:15:30 +0100 Subject: [PATCH 7/9] Elegir pokemon desde un input [1-151] --- Practica006 - Combate OOP.py | 49 ++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/Practica006 - Combate OOP.py b/Practica006 - Combate OOP.py index a64d912..fb06ff3 100644 --- a/Practica006 - Combate OOP.py +++ b/Practica006 - Combate OOP.py @@ -2,6 +2,10 @@ Importamos la funcion random para el ataque del Pokemon Oponente """ import random +""" + Importamos la Pokedex, archivo donde están los Pokemon (nombres y tipos) +""" +from Pokedex import pokemon_dict """ Creamos la clase Ataque con los atributos nombre que guardará el nombre del ataque y poder que guardará los puntos de daño de los ataques @@ -62,6 +66,26 @@ def turno_atacar_jugador(self): else: print("¡Has perdido el turno! No elegiste un ataque válido.") + # Elegimos los Pokemon del Oponente y del Jugador desde la Pokedex eligiendo un número del 1 al 151 + def elegir_pokemon_oponente(): + elegir_pokemon_oponente = int(input("Elige un pokemon para tu oponente. Del 1 al 151.\n")) + # Usar zfill para agregar ceros a la izquierda y crear la cadena con # + elegir_pokemon_oponente = f"#{str(elegir_pokemon_oponente).zfill(3)}" + pokemon_oponente = Pokemon(pokemon_dict[elegir_pokemon_oponente]['nombre'], 130) + pokemon_oponente.agregar_ataque("Placaje", 40) + pokemon_oponente.agregar_ataque("Gruñido", 0) + pokemon_oponente.agregar_ataque("Látigo Cepa", 45) + return pokemon_oponente + + def elegir_pokemon_jugador(): + elegir_pokemon_jugador = int(input("¡Muy bien!, ahora elige tu Pokemon. Del 1 al 151.\n")) + elegir_pokemon_jugador = f"#{str(elegir_pokemon_jugador).zfill(3)}" + pokemon_jugador = Pokemon(pokemon_dict[elegir_pokemon_jugador]['nombre'], 130) + pokemon_jugador.agregar_ataque("Arañazo", 40) + pokemon_jugador.agregar_ataque("Gruñido", 0) + pokemon_jugador.agregar_ataque("Ascuas", 40) + return pokemon_jugador + # Explicación del juego, componentes y dinámica def jugar(self): print(f"** COMBATE POKEMON -- {self.oponente.nombre} contra {self.jugador.nombre} **") @@ -71,47 +95,30 @@ def jugar(self): while self.jugador.vida > 0 and self.oponente.vida > 0: self.turno_atacar_oponente() - if self.jugador.vida == 0: break - input(self.pulsa_para_continuar) self.turno_atacar_jugador() - if self.oponente.vida == 0: break - input(self.pulsa_para_continuar) - print("\nResumen del combate:") print(f"Te quedan {self.jugador.vida} puntos de vida.") print(f"A {self.oponente.nombre} le quedan {self.oponente.vida} puntos de vida.") - if self.jugador.vida == 0: print(f"\nLo siento, pero {self.oponente.nombre} te ha ganado.") if self.oponente.vida == 0: print(f"\n¡ENHORABUENA! Has derrotado a {self.oponente.nombre}.") - print("\nEspero volver a verte pronto.") - """ Creamos un nuevo Combate con dos nuevos Pokemon: El primer Pokemon que pasamos como argumento es el del jugador y el segundo el del oponente """ -charmander = Pokemon("Charmander", 130) -charmander.agregar_ataque("Arañazo", 40) -charmander.agregar_ataque("Gruñido", 0) -charmander.agregar_ataque("Ascuas", 40) - -bulbasaur = Pokemon("Bulbasaur", 125) -bulbasaur.agregar_ataque("Placaje", 40) -bulbasaur.agregar_ataque("Gruñido", 0) -bulbasaur.agregar_ataque("Látigo Cepa", 45) - -combate = Combate(bulbasaur, charmander) +combate = Combate(Combate.elegir_pokemon_jugador(), Combate.elegir_pokemon_oponente()) combate.jugar() """ - El siguiente Commit propuesto sería cambiar en el método elegir_ataque() las opciones puestas a mano, - por introducirlas dentro de un bucle, ya que no sabemos cuántos ataques vamos a definir en la llamada. + Siguientes Commits propuestos: + - Cambiar en el método elegir_ataque() las opciones puestas a mano, + - Controlar la entrada del usuario de modo que se garantice que el jugador elija un número válido entre 1 y 151 """ \ No newline at end of file From 6021041d7497afc7559fd8b0b1c13160c4cf0785 Mon Sep 17 00:00:00 2001 From: usuario Date: Wed, 4 Dec 2024 14:38:07 +0100 Subject: [PATCH 8/9] =?UTF-8?q?Controlar=20input=20para=20que=20el=20jugad?= =?UTF-8?q?or=20elija=20un=20n=C3=BAmero=20entre=201=20y=20151?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Practica006 - Combate OOP.py | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/Practica006 - Combate OOP.py b/Practica006 - Combate OOP.py index fb06ff3..3c14554 100644 --- a/Practica006 - Combate OOP.py +++ b/Practica006 - Combate OOP.py @@ -68,7 +68,18 @@ def turno_atacar_jugador(self): # Elegimos los Pokemon del Oponente y del Jugador desde la Pokedex eligiendo un número del 1 al 151 def elegir_pokemon_oponente(): - elegir_pokemon_oponente = int(input("Elige un pokemon para tu oponente. Del 1 al 151.\n")) + # Elegir Pokémon oponente con validación + while True: + try: + elegir_pokemon_oponente = int(input("Elige un pokemon para tu oponente. Del 1 al 151.\n")) + # Comprobar si el número está dentro del rango válido + if 1 <= elegir_pokemon_oponente <= 151: + break # Salir del bucle si el número es válido + else: + print("¡Número fuera de rango! Elige un número entre 1 y 151.") + except ValueError: + # Si el usuario introduce algo que no es un número + print("¡Por favor ingresa un número válido entre 1 y 151.") # Usar zfill para agregar ceros a la izquierda y crear la cadena con # elegir_pokemon_oponente = f"#{str(elegir_pokemon_oponente).zfill(3)}" pokemon_oponente = Pokemon(pokemon_dict[elegir_pokemon_oponente]['nombre'], 130) @@ -78,7 +89,18 @@ def elegir_pokemon_oponente(): return pokemon_oponente def elegir_pokemon_jugador(): - elegir_pokemon_jugador = int(input("¡Muy bien!, ahora elige tu Pokemon. Del 1 al 151.\n")) + while True: + try: + elegir_pokemon_jugador = int(input("¡Muy bien!, ahora elige tu Pokemon. Del 1 al 151.\n")) + # Comprobar si el número está dentro del rango válido + if 1 <= elegir_pokemon_jugador <= 151: + break # Salir del bucle si el número es válido + else: + print("¡Número fuera de rango! Elige un número entre 1 y 151.") + except ValueError: + # Si el usuario introduce algo que no es un número + print("¡Por favor ingresa un número válido entre 1 y 151.") + # Usar zfill para agregar ceros a la izquierda y crear la cadena con # elegir_pokemon_jugador = f"#{str(elegir_pokemon_jugador).zfill(3)}" pokemon_jugador = Pokemon(pokemon_dict[elegir_pokemon_jugador]['nombre'], 130) pokemon_jugador.agregar_ataque("Arañazo", 40) From c6c442ddf973960bccc5668dfb3bdb5a5ebe02c2 Mon Sep 17 00:00:00 2001 From: usuario Date: Wed, 4 Dec 2024 15:50:58 +0100 Subject: [PATCH 9/9] =?UTF-8?q?Introducci=C3=B3n=20del=20Fichero=20Ataques?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ataques.csv | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Notas.txt | 19 +++++- 2 files changed, 184 insertions(+), 1 deletion(-) create mode 100644 Ataques.csv diff --git a/Ataques.csv b/Ataques.csv new file mode 100644 index 0000000..0b1c7be --- /dev/null +++ b/Ataques.csv @@ -0,0 +1,166 @@ +Nombre;Inglés;move_id;effect;power;type;accuracy;pp +Absorber;Absorb;ABSORB,;DRAIN_HP_EFFECT,;20;GRASS,;100;20 +Ácido;Acid;ACID,;DEFENSE_DOWN_SIDE_EFFECT,;40;POISON,;100;30 +Afilar;Sharpen;SHARPEN,;ATTACK_UP1_EFFECT,;0;NORMAL,;100;30 +Agarre;Vise Grip;VINE_WHIP,;NO_ADDITIONAL_EFFECT,;35;GRASS,;100;10 +Agilidad;Agility;AGILITY,;SPEED_UP2_EFFECT,;0;PSYCHIC_TYPE,;100;30 +Amnesia;Amnesia;AMNESIA,;SPECIAL_UP2_EFFECT,;0;PSYCHIC_TYPE,;100;20 +Anulación;Disable;DISABLE,;DISABLE_EFFECT,;0;NORMAL,;55;20 +Arañazo;Scratch;SCRATCH,;NO_ADDITIONAL_EFFECT,;40;NORMAL,;100;35 +Armadura ácida;Acid Armor;ACID_ARMOR,;DEFENSE_UP2_EFFECT,;0;POISON,;100;40 +Ascuas;Ember;EMBER,;BURN_SIDE_EFFECT1,;40;FIRE,;100;25 +Atadura;Bind;BIND,;TRAPPING_EFFECT,;15;NORMAL,;75;20 +Ataque aéreo;Sky Attack;SKY_ATTACK,;CHARGE_EFFECT,;140;FLYING,;90;5 +Ataque ala;Wing Attack;WING_ATTACK,;NO_ADDITIONAL_EFFECT,;35;FLYING,;100;35 +Ataque arena;Sand Attack;SAND_ATTACK,;ACCURACY_DOWN1_EFFECT,;0;NORMAL,;100;15 +Ataque furia;Fury Attack;FURY_ATTACK,;TWO_TO_FIVE_ATTACKS_EFFECT,;15;NORMAL,;85;20 +Ataque rápido;Quick Attack;QUICK_ATTACK,;NO_ADDITIONAL_EFFECT,;40;NORMAL,;100;30 +Atizar;Slam;SLAM,;NO_ADDITIONAL_EFFECT,;80;NORMAL,;75;20 +Autodestrucción;Self-Destruct;SELFDESTRUCT,;EXPLODE_EFFECT,;130;NORMAL,;100;5 +Avalancha;Rock Slide;ROCK_SLIDE,;NO_ADDITIONAL_EFFECT,;75;ROCK,;90;10 +Barrera;Barrier;BARRIER,;DEFENSE_UP2_EFFECT,;0;PSYCHIC_TYPE,;100;30 +Beso amoroso;Lovely Kiss;LOVELY_KISS,;SLEEP_EFFECT,;0;NORMAL,;75;10 +Bomba huevo;Egg Bomb;EGG_BOMB,;NO_ADDITIONAL_EFFECT,;100;NORMAL,;75;10 +Bomba sónica;Sonic Boom;SONICBOOM,;SPECIAL_DAMAGE_EFFECT,;1;NORMAL,;90;20 +Bombardeo;Barrage;BARRAGE,;TWO_TO_FIVE_ATTACKS_EFFECT,;15;NORMAL,;85;20 +Burbuja;Bubble;BUBBLE,;SPEED_DOWN_SIDE_EFFECT,;20;WATER,;100;30 +Cabezazo;Skull Bash;SKULL_BASH,;CHARGE_EFFECT,;100;NORMAL,;100;15 +Canto;Sing;SING,;SLEEP_EFFECT,;0;NORMAL,;55;15 +Cascada;Waterfall;WATERFALL,;NO_ADDITIONAL_EFFECT,;80;WATER,;100;15 +Chirrido;Screech;SCREECH,;DEFENSE_DOWN2_EFFECT,;0;NORMAL,;85;40 +Chupavidas;Leech Life;LEECH_LIFE,;DRAIN_HP_EFFECT,;20;BUG,;100;15 +Clavo cañón;Spike Cannon;SPIKE_CANNON,;TWO_TO_FIVE_ATTACKS_EFFECT,;20;NORMAL,;100;15 +Combate ;Struggle;STRUGGLE,;RECOIL_EFFECT,;50;NORMAL,;100;10 +Comesueños;Dream Eater;DREAM_EATER,;DREAM_EATER_EFFECT,;100;PSYCHIC_TYPE,;100;15 +Confusión;Confusion;CONFUSION,;CONFUSION_SIDE_EFFECT,;50;PSYCHIC_TYPE,;100;25 +Constricción;Wrap;WRAP,;TRAPPING_EFFECT,;15;NORMAL,;85;20 +Contraataque;Counter;COUNTER,;NO_ADDITIONAL_EFFECT,;1;FIGHTING,;100;20 +Conversión;Conversion;CONVERSION,;CONVERSION_EFFECT,;0;NORMAL,;100;30 +Cornada;Horn Attack;HORN_ATTACK,;NO_ADDITIONAL_EFFECT,;65;NORMAL,;100;25 +Corte;Cut;CUT,;NO_ADDITIONAL_EFFECT,;50;NORMAL,;95;30 +Cuchillada;Slash;SLASH,;NO_ADDITIONAL_EFFECT,;70;NORMAL,;100;20 +Danza espada;Swords Dance;SWORDS_DANCE,;ATTACK_UP2_EFFECT,;0;NORMAL,;100;30 +Danza pétalo;Petal Dance;PETAL_DANCE,;THRASH_PETAL_DANCE_EFFECT,;70;GRASS,;100;20 +Derribo;Take Down;TAKE_DOWN,;RECOIL_EFFECT,;90;NORMAL,;85;20 +Desarrollo;Growth;GROWTH,;SPECIAL_UP1_EFFECT,;0;NORMAL,;100;40 +Descanso;Rest;REST,;HEAL_EFFECT,;0;PSYCHIC_TYPE,;100;10 +Deslumbrar;Glare;GLARE,;PARALYZE_EFFECT,;0;NORMAL,;75;30 +Destello;Flash;FLASH,;ACCURACY_DOWN1_EFFECT,;0;NORMAL,;70;20 +Destructor;Pound;POUND,;NO_ADDITIONAL_EFFECT,;40;NORMAL,;100;35 +Día de pago;Pay Day;PAY_DAY,;PAY_DAY_EFFECT,;40;NORMAL,;100;20 +Disparo demora;String Shot;STRING_SHOT,;SPEED_DOWN1_EFFECT,;0;BUG,;95;40 +Doble ataque;Twineedle;TWINEEDLE,;TWINEEDLE_EFFECT,;25;BUG,;100;20 +Doble bofetón;Double Slap;DOUBLE_KICK,;ATTACK_TWICE_EFFECT,;30;FIGHTING,;100;30 +Doble equipo;Double Team;DOUBLE_TEAM,;EVASION_UP1_EFFECT,;0;NORMAL,;100;15 +Doble filo;Double-Edge;DOUBLESLAP,;TWO_TO_FIVE_ATTACKS_EFFECT,;15;NORMAL,;85;10 +Doble patada;Double Kick;DOUBLE_EDGE,;RECOIL_EFFECT,;100;NORMAL,;100;15 +Drenadoras;Leech Seed;LEECH_SEED,;LEECH_SEED_EFFECT,;0;GRASS,;90;10 +Espejo;Mirror Move;MIRROR_MOVE,;MIRROR_MOVE_EFFECT,;0;FLYING,;100;20 +Espora;Spore;SPORE,;SLEEP_EFFECT,;0;GRASS,;100;15 +Excavar;Dig;DIG,;CHARGE_EFFECT,;100;GROUND,;100;10 +Explosión;Explosion;EXPLOSION,;EXPLODE_EFFECT,;170;NORMAL,;100;5 +Fisura;Fissure;FISSURE,;OHKO_EFFECT,;1;GROUND,;30;5 +Foco energía;Focus Energy;FOCUS_ENERGY,;FOCUS_ENERGY_EFFECT,;0;NORMAL,;100;30 +Fortaleza;Harden;HARDEN,;DEFENSE_UP1_EFFECT,;0;NORMAL,;100;30 +Fuerza;Strength;STRENGTH,;NO_ADDITIONAL_EFFECT,;80;NORMAL,;100;15 +Furia;Rage;RAGE,;RAGE_EFFECT,;20;NORMAL,;100;20 +Furia dragón;Dragon Rage;DRAGON_RAGE,;SPECIAL_DAMAGE_EFFECT,;1;DRAGON,;100;10 +Gas venenoso;Poison Gas;POISON_GAS,;POISON_EFFECT,;0;POISON,;55;40 +Giro fuego;Fire Spin;FIRE_SPIN,;TRAPPING_EFFECT,;15;FIRE,;70;15 +Golpe cabeza;Headbutt;HEADBUTT,;FLINCH_SIDE_EFFECT2,;70;NORMAL,;100;15 +Golpe cuerpo;Body Slam;BODY_SLAM,;PARALYZE_SIDE_EFFECT2,;85;NORMAL,;100;15 +Golpe kárate;Karate Chop;KARATE_CHOP,;NO_ADDITIONAL_EFFECT,;50;NORMAL,;100;25 +Golpes furia;Fury Swipes;FURY_SWIPES,;TWO_TO_FIVE_ATTACKS_EFFECT,;18;NORMAL,;80;15 +Gruñido;Growl;GROWL,;ATTACK_DOWN1_EFFECT,;0;NORMAL,;100;40 +Guillotina;Guillotine;GUILLOTINE,;OHKO_EFFECT,;1;NORMAL,;30;5 +Hidrobomba;Hydro Pump;HYDRO_PUMP,;NO_ADDITIONAL_EFFECT,;120;WATER,;80;5 +Hipercolmillo;Hyper Fang;HYPER_FANG,;FLINCH_SIDE_EFFECT1,;80;NORMAL,;90;15 +Hiperrayo;Hyper Beam;HYPER_BEAM,;HYPER_BEAM_EFFECT,;150;NORMAL,;90;5 +Hipnosis;Hypnosis;HYPNOSIS,;SLEEP_EFFECT,;0;PSYCHIC_TYPE,;60;20 +Hoja afilada;Razor Leaf;RAZOR_LEAF,;NO_ADDITIONAL_EFFECT,;55;GRASS,;95;25 +Hueso palo;Bone Club;BONE_CLUB,;FLINCH_SIDE_EFFECT1,;65;GROUND,;85;20 +Huesomerang;Bonemerang;BONEMERANG,;ATTACK_TWICE_EFFECT,;50;GROUND,;90;10 +Impactrueno;Thunder Shock;THUNDERBOLT,;PARALYZE_SIDE_EFFECT1,;95;ELECTRIC,;100;15 +Kinético;Kinesis;KINESIS,;ACCURACY_DOWN1_EFFECT,;0;PSYCHIC_TYPE,;80;15 +Lanzallamas;Flamethrower;FLAMETHROWER,;BURN_SIDE_EFFECT1,;95;FIRE,;100;15 +Lanzarrocas;Rock Throw;ROCK_THROW,;NO_ADDITIONAL_EFFECT,;50;ROCK,;65;15 +Látigo;Tail Whip;TAIL_WHIP,;DEFENSE_DOWN1_EFFECT,;0;NORMAL,;100;30 +Látigo cepa;Vine Whip;VICEGRIP,;NO_ADDITIONAL_EFFECT,;55;NORMAL,;100;30 +Lengüetazo;Lick;LICK,;PARALYZE_SIDE_EFFECT2,;20;GHOST,;100;30 +Llamarada;Fire Blast;FIRE_BLAST,;BURN_SIDE_EFFECT2,;120;FIRE,;85;5 +Malicioso;Leer;LEER,;DEFENSE_DOWN1_EFFECT,;0;NORMAL,;100;30 +Martillazo;Crabhammer;CRABHAMMER,;NO_ADDITIONAL_EFFECT,;90;WATER,;85;10 +Meditación;Meditate;MEDITATE,;ATTACK_UP1_EFFECT,;0;PSYCHIC_TYPE,;100;40 +Megaagotar;Mega Drain;MEGA_DRAIN,;DRAIN_HP_EFFECT,;40;GRASS,;100;10 +Megapatada;Mega Kick;MEGA_KICK,;NO_ADDITIONAL_EFFECT,;120;NORMAL,;75;5 +Megapuño;Mega Punch;MEGA_PUNCH,;NO_ADDITIONAL_EFFECT,;80;NORMAL,;85;20 +Meteoros;Swift;SWIFT,;SWIFT_EFFECT,;60;NORMAL,;100;20 +Metrónomo;Metronome;METRONOME,;METRONOME_EFFECT,;0;NORMAL,;100;10 +Mimético;Mimic;MIMIC,;MIMIC_EFFECT,;0;NORMAL,;100;10 +Mordisco;Bite;BITE,;FLINCH_SIDE_EFFECT1,;60;NORMAL,;100;25 +Neblina;Mist;MIST,;MIST_EFFECT,;0;ICE,;100;30 +Niebla;Haze;HAZE,;HAZE_EFFECT,;0;ICE,;100;30 +Onda trueno;Thunder Wave;THUNDERPUNCH,;PARALYZE_SIDE_EFFECT1,;75;ELECTRIC,;100;15 +Ovocuración;Soft-Boiled;SOFTBOILED,;HEAL_EFFECT,;0;NORMAL,;100;10 +Pantalla de humo;Smokescreen;SMOKESCREEN,;ACCURACY_DOWN1_EFFECT,;0;NORMAL,;100;20 +Pantalla de luz;Light Screen;LIGHT_SCREEN,;LIGHT_SCREEN_EFFECT,;0;PSYCHIC_TYPE,;100;30 +Paralizador;Stun Spore;STUN_SPORE,;PARALYZE_EFFECT,;0;GRASS,;75;30 +Patada baja;Low Kick;LOW_KICK,;FLINCH_SIDE_EFFECT2,;50;FIGHTING,;90;20 +Patada giro;Rolling Kick;ROLLING_KICK,;FLINCH_SIDE_EFFECT2,;60;FIGHTING,;85;15 +Patada salto;Jump Kick;JUMP_KICK,;JUMP_KICK_EFFECT,;70;FIGHTING,;95;25 +Patada salto alta;High Jump Kick;HI_JUMP_KICK,;JUMP_KICK_EFFECT,;85;FIGHTING,;90;20 +Perforador;Horn Drill;HORN_DRILL,;OHKO_EFFECT,;1;NORMAL,;30;5 +Pico taladro;Drill Peck;DRILL_PECK,;NO_ADDITIONAL_EFFECT,;80;FLYING,;100;20 +Picotazo;Peck;PECK,;NO_ADDITIONAL_EFFECT,;35;FLYING,;100;35 +Picotazo veneno;Poison Sting;POISONPOWDER,;POISON_EFFECT,;0;POISON,;75;35 +Pin misil;Pin Missile;PIN_MISSILE,;TWO_TO_FIVE_ATTACKS_EFFECT,;14;BUG,;85;20 +Pisotón;Stomp;STOMP,;FLINCH_SIDE_EFFECT2,;65;NORMAL,;100;20 +Pistola agua;Water Gun;WATER_GUN,;NO_ADDITIONAL_EFFECT,;40;WATER,;100;25 +Placaje;Tackle;TACKLE,;NO_ADDITIONAL_EFFECT,;35;NORMAL,;95;35 +Polución;Smog;SMOG,;POISON_SIDE_EFFECT2,;20;POISON,;70;20 +Polvo veneno;Poison Powder;POISON_STING,;POISON_SIDE_EFFECT1,;15;POISON,;100;35 +Psicoonda;Psywave;PSYWAVE,;SPECIAL_DAMAGE_EFFECT,;1;PSYCHIC_TYPE,;80;15 +Psicorrayo;Psybeam;PSYBEAM,;CONFUSION_SIDE_EFFECT,;65;PSYCHIC_TYPE,;100;20 +Psíquico;Psychic;PSYCHIC_M,;SPECIAL_DOWN_SIDE_EFFECT,;90;PSYCHIC_TYPE,;100;10 +Puño cometa;Comet Punch;COMET_PUNCH,;TWO_TO_FIVE_ATTACKS_EFFECT,;18;NORMAL,;85;15 +Puño fuego;Fire Punch;FIRE_PUNCH,;BURN_SIDE_EFFECT1,;75;FIRE,;100;15 +Puño hielo;Ice Punch;ICE_PUNCH,;FREEZE_SIDE_EFFECT1,;75;ICE,;100;15 +Puño mareo;Dizzy Punch;DIZZY_PUNCH,;NO_ADDITIONAL_EFFECT,;70;NORMAL,;100;10 +Puño trueno;Thunder Punch;THUNDER_WAVE,;PARALYZE_EFFECT,;0;ELECTRIC,;100;20 +Rayo;Thunderbolt;THUNDERSHOCK,;PARALYZE_SIDE_EFFECT1,;40;ELECTRIC,;100;30 +Rayo aurora;Aurora Beam;AURORA_BEAM,;ATTACK_DOWN_SIDE_EFFECT,;65;ICE,;100;20 +Rayo burbuja;Bubble Beam;BUBBLEBEAM,;SPEED_DOWN_SIDE_EFFECT,;65;WATER,;100;20 +Rayo confuso;Confuse Ray;CONFUSE_RAY,;CONFUSION_EFFECT,;0;GHOST,;100;10 +Rayo hielo;Ice Beam;ICE_BEAM,;FREEZE_SIDE_EFFECT1,;95;ICE,;100;10 +Rayo solar;Solar Beam;SOLARBEAM,;CHARGE_EFFECT,;120;GRASS,;100;10 +Recuperación;Recover;RECOVER,;HEAL_EFFECT,;0;NORMAL,;100;20 +Reducción;Minimize;MINIMIZE,;EVASION_UP1_EFFECT,;0;NORMAL,;100;20 +Reflejo;Reflect;REFLECT,;REFLECT_EFFECT,;0;PSYCHIC_TYPE,;100;20 +Refugio;Withdraw;WITHDRAW,;DEFENSE_UP1_EFFECT,;0;WATER,;100;40 +Remolino;Whirlwind;WHIRLWIND,;SWITCH_AND_TELEPORT_EFFECT,;0;NORMAL,;85;20 +Residuos;Sludge;SLUDGE,;POISON_SIDE_EFFECT2,;65;POISON,;100;20 +Restricción;Constrict;CONSTRICT,;SPEED_DOWN_SIDE_EFFECT,;10;NORMAL,;100;35 +Rizo defensa;Defense Curl;DEFENSE_CURL,;DEFENSE_UP1_EFFECT,;0;NORMAL,;100;40 +Rugido;Roar;ROAR,;SWITCH_AND_TELEPORT_EFFECT,;0;NORMAL,;100;20 +Salpicadura;Splash;SPLASH,;SPLASH_EFFECT,;0;NORMAL,;100;40 +Saña;Thrash;THRASH,;THRASH_PETAL_DANCE_EFFECT,;90;NORMAL,;100;20 +Sísmico;Seismic Toss;SEISMIC_TOSS,;SPECIAL_DAMAGE_EFFECT,;1;FIGHTING,;100;20 +Somnífero;Sleep Powder;SLEEP_POWDER,;SLEEP_EFFECT,;0;GRASS,;75;15 +Sumisión;Submission;SUBMISSION,;RECOIL_EFFECT,;80;FIGHTING,;80;25 +Superdiente;Super Fang;SUPER_FANG,;SUPER_FANG_EFFECT,;1;NORMAL,;90;10 +Supersónico;Supersonic;SUPERSONIC,;CONFUSION_EFFECT,;0;NORMAL,;55;20 +Surf;Surf;SURF,;NO_ADDITIONAL_EFFECT,;95;WATER,;100;15 +Sustituto;Substitute;SUBSTITUTE,;SUBSTITUTE_EFFECT,;0;NORMAL,;100;10 +Teletransporte;Teleport;TELEPORT,;SWITCH_AND_TELEPORT_EFFECT,;0;PSYCHIC_TYPE,;100;20 +Tenaza;Clamp;CLAMP,;TRAPPING_EFFECT,;35;WATER,;75;10 +Terremoto;Earthquake;EARTHQUAKE,;NO_ADDITIONAL_EFFECT,;100;GROUND,;100;10 +Tinieblas;Night Shade;NIGHT_SHADE,;SPECIAL_DAMAGE_EFFECT,;0;GHOST,;100;15 +Tornado;Gust;GUST,;NO_ADDITIONAL_EFFECT,;40;NORMAL,;100;35 +Tóxico;Toxic;TOXIC,;POISON_EFFECT,;0;POISON,;85;10 +Transformación;Transform;TRANSFORM,;TRANSFORM_EFFECT,;0;NORMAL,;100;10 +Triataque;Tri Attack;TRI_ATTACK,;NO_ADDITIONAL_EFFECT,;80;NORMAL,;100;10 +Trueno;Thunder;THUNDER,;PARALYZE_SIDE_EFFECT1,;120;ELECTRIC,;70;10 +Venganza;Bide;BIDE,;BIDE_EFFECT,;0;NORMAL,;100;10 +Ventisca;Blizzard;BLIZZARD,;FREEZE_SIDE_EFFECT1,;120;ICE,;90;5 +Viento cortante;Razor Wind;RAZOR_WIND,;CHARGE_EFFECT,;80;NORMAL,;75;10 +Vuelo;Fly;FLY,;FLY_EFFECT,;70;FLYING,;95;15 diff --git a/Notas.txt b/Notas.txt index 38ff945..ce1fd0d 100644 --- a/Notas.txt +++ b/Notas.txt @@ -11,4 +11,21 @@ Listado de Forks: https://github.com/pret/pokered/forks Detalles del Funcionamiento del Juego, explicado en video: -https://www.youtube.com/watch?v=b-cGPIgxxWg \ No newline at end of file +https://www.youtube.com/watch?v=b-cGPIgxxWg + +TIPOS: +Agua +Bicho +Dragón +Eléctrico +Fantasma +Fuego +Hielo +Lucha +Normal +Planta +Psíquico +Roca +Tierra +Veneno +Volador