La Pokédex


Enviar solució

Punts: 8,5
Temps Límit: 6.0s
Límit de memòria: 64M

Autor/a:
tipus del problema
Bucles simples, Diccionaris
Categoria
Problemes fets per Alumnes
Llenguatges permesos
Java

La Pokédex

La Pokédex és probablement un dels elements més emblemàtics de la saga Pokémon, juntament amb les Poké Balls, ja que és la materialització literal del lema de la franquícia: 'Gotta catch 'em all!' ('¡Hazte con todos!' a Espanya i més perdut en la traducció 'Atrápalos ya!' als països hispanoamericans). Per als no coneixedors, la Pokédex és un dispositiu que enregistra les dades dels Pokémon que atrapes, entre altres, el seu nom, tipus, pes, alçada, formes que pot tenir (diferències de gènere, formes “shiny”, megaevolucions, formes regionals, variants...), informació addicional, crit, animacions... i en algunes generacions fins i tot podíem veure la seva empremta. Doncs bé, avui crearàs el teu propi filtre de cerca per a una Pokédex.

Evidentment, no hauràs de posar tots els Pokémon ni totes les seves dades en aquest exercici. A sota tens una llista de Pokémon amb els seus tipus elementals i la regió en què es va descobrir originalment aquesta espècie. Hauràs de programar un codi que et permeti introduir totes aquestes dades com a diccionari (nom del Pokémon a una banda i les seves dades a l'altra, amb el format 'Tipus1/Tipus2 - Regió'). Després de crear el diccionari, hauràs de crear un filtre de cerca funcional que et permeti fer dues coses:

  • Accedir a la informació d'un Pokémon simplement escrivint el seu nom.
  • En escriure un tipus o regió, que retorni una llista amb tots els Pokémon que posseeixen aquest tipus o que pertanyen a aquesta regió.

És a dir, que si escrius ‘TYRANITAR’, el codi hauria de retornar la seva informació, en aquest cas 'ROCK/DARK - JOHTO', però si, pel contrari, escrius 'FIRE', hauria de retornar tots els Pokémon en els quals aparegui el tipus FIRE (CHARIZARD, INCINEROAR, INFERNAPE), i si escrius 'HOENN', haurien de sortir tots els Pokémon de la regió de Hoenn (RELICANTH, METAGROSS, MEDICHAM), en tots dos casos amb la seva respectiva informació. El programa hauria de permetre't continuar fent cerques indefinidament i d'una en una. En resum, ha de verificar si el que envies és el nom d'un Pokémon, i si no ho és, mirar si es tracta d'una regió de les 10 existents a la saga principal o un dels 18 tipus elementals.".

30

CHARIZARD

FIRE/FLYING - KANTO

FURRET

NORMAL - JOHTO

RELICANTH

WATER/ROCK - HOENN

INFERNAPE

FIRE/FIGHTING - SINNOH

EELEKTROSS

ELECTRIC - UNOVA

GRENINJA

WATER/DARK - KALOS

INCINEROAR

FIRE/DARK - ALOLA

SOBBLE

WATER - GALAR

KLEAVOR

ROCK/BUG - HISUI

FLORAGATO

GRASS - PALDEA

BULBASAUR

GRASS/POISON - KANTO

HERACROSS BUG/FIGHTING - JOHTO

METAGROSS

STEEL/PSYCHIC - HOENN

TOGEKISS

FAIRY/FLYING - SINNOH

ZEKROM

DRAGON/ELECTRIC - UNOVA

KLEFKI

STEEL/FAIRY - KALOS

DECIDUEYE

GRASS/GHOST - ALOLA

SNOM

ICE/BUG - GALAR

URSALUNA

NORMAL/GROUND - HISUI

CLODSIRE

POISON/GROUND - PALDEA

DRAGONITE

DRAGON/FLYING - KANTO

TYRANITAR

ROCK/DARK - JOHTO

MEDICHAM

FIGHTING/PSYCHIC - HOENN

MAMOSWINE

ICE/GROUND - SINNOH

BEARTIC

ICE - UNOVA

AEGISLASH

STEEL/GHOST - KALOS

MIMIKYU

GHOST/FAIRY - ALOLA

ETERNATUS

DRAGON/POISON - GALAR

WYRDEER

NORMAL/PSYCHIC - HISUI

PAWMI

ELECTRIC - PALDEA

El cas que us dono està fet de manera que per cada tipus o regió, sortiràn únicament tres Pokémon. Si surt algun de més o de menys, llavors és que us heu colat molt.

Addicionalment, has de fer que si s'intenta buscar alguna cosa que no sigui present al diccionari, el programa et digui ¡Váyanse a Digimon, inútiles!”.

Quan estiguis fart d’estar usant la Pokédex, has d'escriure “BUEN DATO” per a que finalitzi el programa i et digui “Gracias por usar la Pokédex. Tu total de busquedas ha sido de (nombre de vegades que s'ha buscat alguna cosa a la Pokédex), de las cuales (vegades que t'ha enviat a Digimon) han sido inutiles por tu parte.”.

Entrada

Un nombre P amb el nombre de Pokémon que haurà a la Pokédex, seguit de dues línies per cas: una amb el nom del Pokémon (“GRENINJA”) i una altra amb els seus tipus i regió (“WATER/DARK - KALOS”). Quan estiguin tots els Pokémon a dins, cerca el que vulguis.

Sortida

  • Si cerques un nom de Pokémon:

GRENINJA entrydex: WATER/DARK - KALOS

  • Si cerques un tipus:

WATER type Pokemon: RELICANTH: WATER/ROCK - HOENN GRENINJA: WATER/DARK - KALOS SOBBLE: WATER - GALAR

  • Si cerques una regió:

Pokemon from the PALDEA region: FLORAGATO: GRASS - PALDEA CLODSIRE: POISON/GROUND - PALDEA PAWMI: ELECTRIC - PALDEA

  • Si cerques alguna cosa que no es troba a la Pokédex:

Vayanse a Digimon, inutiles

  • Si cerques “BUEN DATO”:

Gracias por usar la Pokedex. Tu total de busquedas ha sido de (nombre de vegades que s'ha buscat alguna cosa a la Pokédex), de las cuales (vegades que t'ha enviat a Digimon) han sido inutiles por tu parte.

Exemple d’entrada

30

CHARIZARD

FIRE/FLYING - KANTO

FURRET

NORMAL - JOHTO

RELICANTH

WATER/ROCK - HOENN

INFERNAPE

FIRE/FIGHTING - SINNOH

EELEKTROSS

ELECTRIC - UNOVA

GRENINJA

WATER/DARK - KALOS

INCINEROAR

FIRE/DARK - ALOLA

SOBBLE

WATER - GALAR

KLEAVOR

ROCK/BUG - HISUI

FLORAGATO

GRASS - PALDEA

BULBASAUR

GRASS/POISON - KANTO

HERACROSS

BUG/FIGHTING - JOHTO

METAGROSS

STEEL/PSYCHIC - HOENN

TOGEKISS

FAIRY/FLYING - SINNOH

ZEKROM

DRAGON/ELECTRIC - UNOVA

KLEFKI

STEEL/FAIRY - KALOS

DECIDUEYE

GRASS/GHOST - ALOLA

SNOM

ICE/BUG - GALAR

URSALUNA

NORMAL/GROUND - HISUI

CLODSIRE

POISON/GROUND - PALDEA

DRAGONITE

DRAGON/FLYING - KANTO

TYRANITAR

ROCK/DARK - JOHTO

MEDICHAM

FIGHTING/PSYCHIC - HOENN

MAMOSWINE

ICE/GROUND - SINNOH

BEARTIC

ICE - UNOVA

AEGISLASH

STEEL/GHOST - KALOS

MIMIKYU

GHOST/FAIRY - ALOLA

ETERNATUS

DRAGON/POISON - GALAR

WYRDEER

NORMAL/PSYCHIC - HISUI

PAWMI

ELECTRIC - PALDEA

CHARIZARD

GRENINJA

INFERNAPE

JOHTO

PALDEA

FIRE

WATER

NEVER GONNA GIVE YOU UP

BUEN DATO

Exemple de sortida

CHARIZARD entrydex: FIRE/FLYING - KANTO

GRENINJA entrydex: WATER/DARK - KALOS

INFERNAPE entrydex: FIRE/FIGHTING - SINNOH

Pokemon from the JOHTO region:

FURRET: NORMAL - JOHTO

HERACROSS: BUG/FIGHTING - JOHTO

TYRANITAR: ROCK/DARK - JOHTO

Pokemon from the PALDEA region:

FLORAGATO: GRASS - PALDEA

CLODSIRE: POISON/GROUND - PALDEA

PAWMI: ELECTRIC - PALDEA

FIRE type Pokemon:

CHARIZARD: FIRE/FLYING - KANTO

INFERNAPE: FIRE/FIGHTING - SINNOH

INCINEROAR: FIRE/DARK - ALOLA

WATER type Pokémon:

RELICANTH: WATER/ROCK - HOENN

GRENINJA: WATER/DARK - KALOS

SOBBLE: WATER - GALAR

Vayanse a Digimon, inutiles

Gracias por usar la Pokedex. Tu total de busquedas ha sido de 8, de las cuales 1 han sido inutiles por tu parte.


Comentaris

En aquests moments no hi ha comentaris.