class EntrenadorController: def __init__(self): self.rutaArchivo = const.ENTRENADORES_FILE self.archivo = Archivo(self.rutaArchivo) self.pokemonController = PokemonController() self.listaEntrenadores = [] self.listaEstructuraEntrenadores = [] self.__cargarEntrenadores() def __cargarEntrenadores(self): self.listaEstructuraEntrenadores = self.archivo.contenido for entrenadorParams in self.listaEstructuraEntrenadores: entrenador = self.__nuevoEntrenador(entrenadorParams["id"], entrenadorParams) self.listaEntrenadores.append(entrenador) def __nuevoEntrenador(self, id, entrenadorParams): entrenador = Entrenador(id, entrenadorParams["nombre"], entrenadorParams["region"], entrenadorParams["nivel"], entrenadorParams["pokemons"], entrenadorParams["medallas"]) return entrenador def __entrenadorEstructura(self, entrenador): return { "id": entrenador.id, "nombre": entrenador.nombre, "region": entrenador.region, "nivel": entrenador.nivel, "pokemons": entrenador.pokemons, "medallas": entrenador.medallas } def crearEntrenador(self, entrenadorParams): id = len(self.listaEntrenadores) entrenador = self.__nuevoEntrenador(id, entrenadorParams) entrenadorEstructura = self.__entrenadorEstructura(entrenador) self.listaEntrenadores.append(entrenador) self.listaEstructuraEntrenadores.append(entrenadorEstructura) self.archivo.guardarArchivo() print(entrenador) self.imprimirPokemonsEntrenador(entrenador.pokemons) def verEntrenador(self, idEntrenador): for entrenador in self.listaEntrenadores: if entrenador.id == idEntrenador: print(entrenador) self.imprimirPokemonsEntrenador(entrenador.pokemons) def actualizarEntrenador(self, idEntrenador, entrenadorParams): entrenador = self.listaEntrenadores[idEntrenador] entrenador.nombre = entrenadorParams["nombre"] entrenador.region = entrenadorParams["region"] entrenador.nivel = entrenadorParams["nivel"] entrenador.pokemons = entrenadorParams["pokemons"] entrenador.medallas = entrenadorParams["medallas"] entrenadorEstructura = self.__entrenadorEstructura(entrenador) self.listaEstructuraEntrenadores[idEntrenador] = entrenadorEstructura self.archivo.guardarArchivo() print(entrenador) self.imprimirPokemonsEntrenador(entrenador.pokemons) def borrarEntrenador(self, idEntrenador): idsPokemons = self.listaEntrenadores[idEntrenador].pokemons print("Entrenador a eliminar") self.verEntrenador(idEntrenador) self.imprimirPokemonsEntrenador(idsPokemons) self.listaEstructuraEntrenadores.pop(idEntrenador) self.listaEntrenadores.pop(idEntrenador) self.archivo.guardarArchivo() print("Se eliminó el Entrenador") def verEntrenadores(self): listaImpresa = "" for entrenador in self.listaEntrenadores: listaImpresa += f" | ID: {entrenador.id} | Nombre: {entrenador.nombre} | Nivel: {entrenador.nivel} |\n" print(listaImpresa) def imprimirPokemonsEntrenador(self, idsPokemons): print("Pokemons del entrenador:") for idPokemon in idsPokemons: self.pokemonController.verPokemon(int(idPokemon))
class PokemonController(): def __init__(self): self.rutaArchivo = const.POKEMONS_FILE self.archivo = Archivo(self.rutaArchivo) self.listaPokemons = [] self.listaEstructuraPokemons = [] self.__cargarPokemons() def __cargarPokemons(self): self.listaEstructuraPokemons = self.archivo.contenido for pokemonParams in self.listaEstructuraPokemons: pokemon = self.__nuevoPokemon(pokemonParams["id"], pokemonParams) self.listaPokemons.append(pokemon) def __nuevoPokemon(self, id, pokemonParams): pokemon = Pokemon(id, pokemonParams["nombre"], pokemonParams["tipo"], pokemonParams["subtipo"], pokemonParams["habitad"], pokemonParams["nivel"], pokemonParams["habilidades"]) return pokemon def __pokemonEstructura(self, pokemon): return { "id": pokemon.id, "nombre": pokemon.nombre, "tipo": pokemon.tipo, "subtipo": pokemon.subtipo, "habitad": pokemon.habitad, "nivel": pokemon.nivel, "habilidades": pokemon.habilidades } def crearPokemon(self, pokemonParams): id = len(self.listaPokemons) pokemon = self.__nuevoPokemon(id, pokemonParams) pokemonEstructura = self.__pokemonEstructura(pokemon) self.listaPokemons.append(pokemon) self.listaEstructuraPokemons.append(pokemonEstructura) self.archivo.guardarArchivo() print(pokemon) return id def verPokemon(self, idPokemon): for pokemon in self.listaPokemons: if pokemon.id == idPokemon: print(pokemon) break def actualizarPokemon(self, idPokemon, pokemonParams): pokemon = self.listaPokemons[idPokemon] pokemon.nombre = pokemonParams["nombre"] pokemon.tipo = pokemonParams["tipo"] pokemon.subtipo = pokemonParams["subtipo"] pokemon.habitad = pokemonParams["habitad"] pokemon.nivel = pokemonParams["nivel"] pokemon.habilidades = pokemonParams["habilidades"] pokemonEstructura = self.__pokemonEstructura(pokemon) self.listaEstructuraPokemons[idPokemon] = pokemonEstructura self.archivo.guardarArchivo() print(pokemon) def borrarPokemon(self, idPokemon): print("Pokemon a eliminar") self.verPokemon(idPokemon) self.listaEstructuraPokemons.pop(idPokemon) self.listaPokemons.pop(idPokemon) self.archivo.guardarArchivo() print("Se eliminó el Pokemon") def verPokemones(self): listaImpresa = "" for pokemon in self.listaPokemons: listaImpresa += f" | ID: {pokemon.id} | Nombre: {pokemon.nombre} | Nivel: {pokemon.nivel} |\n" print(listaImpresa)