COMP3311 23T1 |
Assignment 2 Example Test Cases |
Database Systems |
[Assignment Spec] [Database Design] [Examples] [Testing] [Submitting] [Fixes+Updates]
This document contains examples of output from the various scripts that you are required to develop.
NOTE: When autotesting and marking, the autotester will ignore the indentation and alignment of the output
As long as the actual text of the output is correct, the autotester will accept it.
Note that each level of indentation is represented by a single tab character.
following are a selection of example outputs from the my_pokemon script.
$ ./my_pokemon 11243 <<< $'1\n1\n1\n1\n1\n1\n1' Select an option from the menu below by entering its number: 1) Sword 2) Ultra Moon 3) Diamond 4) Emerald 5) Omega Ruby 6) Violet 7) Fire Red 8) Scarlet 9) Silver 10) Gold > Selection: 1 Select an option from the menu below by entering its number: 1) Ribombee 2) Mega Tyranitar 3) Milcery 4) Galarian Farfetch'd 5) Araquanid 6) Sigilyph 7) Duraludon 8) Mega Steelix 9) Sneasel 10) Toxel > Selection: 1 Select an option from the menu below by entering its number: 1) Honey Gather 2) Shield Dust 3) Sweet Veil > Selection: 1 Select an option from the menu below by entering its number: 1) Absorb 2) Aromatherapy 3) Bug Buzz 4) Covet 5) Dazzling Gleam 6) Draining Kiss 7) Fairy Wind 8) Pollen Puff 9) Quiver Dance 10) Struggle Bug 11) Stun Spore 12) Sweet Scent 13) Switcheroo > Selection: 1 Select an option from the menu below by entering its number: 1) Aromatherapy 2) Bug Buzz 3) Covet 4) Dazzling Gleam 5) Draining Kiss 6) Fairy Wind 7) Pollen Puff 8) Quiver Dance 9) Struggle Bug 10) Stun Spore 11) Sweet Scent 12) Switcheroo > Selection: 1 Select an option from the menu below by entering its number: 1) Bug Buzz 2) Covet 3) Dazzling Gleam 4) Draining Kiss 5) Fairy Wind 6) Pollen Puff 7) Quiver Dance 8) Struggle Bug 9) Stun Spore 10) Sweet Scent 11) Switcheroo > Selection: 1 Select an option from the menu below by entering its number: 1) Covet 2) Dazzling Gleam 3) Draining Kiss 4) Fairy Wind 5) Pollen Puff 6) Quiver Dance 7) Struggle Bug 8) Stun Spore 9) Sweet Scent 10) Switcheroo > Selection: 1 Here is your new Pokemon (from Pokemon Sword): Name: Ribombee Species: Bee Fly Pokémon Type: Bug + Fairy Pokedex Number: 188 (743) Ability: Honey Gather Moves: Absorb [Grass] (Category: Special, Power: 20, Accuracy: 100) Aromatherapy [Grass] (Category: Status, Power: None, Accuracy: None) Bug Buzz [Bug] (Category: Special, Power: 90, Accuracy: 100) Covet [Normal] (Category: Physical, Power: 60, Accuracy: 100) $ ./my_pokemon 11243 <<< $'7\n3\n2\n5\n2\n5\n2' Select an option from the menu below by entering its number: 1) Sword 2) Ultra Moon 3) Diamond 4) Emerald 5) Omega Ruby 6) Violet 7) Fire Red 8) Scarlet 9) Silver 10) Gold > Selection: 7 Select an option from the menu below by entering its number: 1) Farfetch'd 2) Nidoqueen 3) Tentacool 4) Graveler 5) Tauros 6) Porygon 7) Alolan Vulpix 8) Butterfree 9) Mega Charizard Y 10) Ponyta > Selection: 3 Select an option from the menu below by entering its number: 1) Clear Body 2) Liquid Ooze 3) Rain Dish > Selection: 2 Select an option from the menu below by entering its number: 1) Acid 2) Barrier 3) Bubble Beam 4) Constrict 5) Hydro Pump 6) Poison Sting 7) Screech 8) Supersonic 9) Wrap > Selection: 5 Select an option from the menu below by entering its number: 1) Acid 2) Barrier 3) Bubble Beam 4) Constrict 5) Poison Sting 6) Screech 7) Supersonic 8) Wrap > Selection: 2 Select an option from the menu below by entering its number: 1) Acid 2) Bubble Beam 3) Constrict 4) Poison Sting 5) Screech 6) Supersonic 7) Wrap > Selection: 5 Select an option from the menu below by entering its number: 1) Acid 2) Bubble Beam 3) Constrict 4) Poison Sting 5) Supersonic 6) Wrap > Selection: 2 Here is your new Pokemon (from Pokemon Fire Red): Name: Tentacool Species: Jellyfish Pokémon Type: Water + Poison Pokedex Number: 72 (72) Ability: Liquid Ooze Moves: Hydro Pump [Water] (Category: Special, Power: 110, Accuracy: 80) Barrier [Psychic] (Category: Status, Power: None, Accuracy: None) Screech [Normal] (Category: Status, Power: None, Accuracy: 85) Bubble Beam [Water] (Category: Special, Power: 65, Accuracy: 100) $ ./my_pokemon 2252 <<< $'4\n7\n3\n10\n5\n2\n4' Select an option from the menu below by entering its number: 1) Soul Silver 2) Ultra Sun 3) The Crown Tundra 4) Platinum 5) Black 2 6) Shield 7) Scarlet 8) Emerald 9) The Isle of Armor 10) Fire Red > Selection: 4 Select an option from the menu below by entering its number: 1) Octillery 2) Bronzor 3) Umbreon 4) Snorunt 5) Burmy - Trash Cloak 6) Duskull 7) Azumarill 8) Golbat 9) Graveler 10) Mega Gardevoir > Selection: 7 Select an option from the menu below by entering its number: 1) Huge Power 2) Sap Sipper 3) Thick Fat > Selection: 3 Select an option from the menu below by entering its number: 1) Aqua Ring 2) Aqua Tail 3) Bubble Beam 4) Defense Curl 5) Double-Edge 6) Hydro Pump 7) Rain Dance 8) Rollout 9) Tackle 10) Tail Whip 11) Water Gun > Selection: 10 Select an option from the menu below by entering its number: 1) Aqua Ring 2) Aqua Tail 3) Bubble Beam 4) Defense Curl 5) Double-Edge 6) Hydro Pump 7) Rain Dance 8) Rollout 9) Tackle 10) Water Gun > Selection: 5 Select an option from the menu below by entering its number: 1) Aqua Ring 2) Aqua Tail 3) Bubble Beam 4) Defense Curl 5) Hydro Pump 6) Rain Dance 7) Rollout 8) Tackle 9) Water Gun > Selection: 2 Select an option from the menu below by entering its number: 1) Aqua Ring 2) Bubble Beam 3) Defense Curl 4) Hydro Pump 5) Rain Dance 6) Rollout 7) Tackle 8) Water Gun > Selection: 4 Here is your new Pokemon (from Pokemon Platinum): Name: Azumarill Species: Aqua Rabbit Pokémon Type: Water + Fairy Pokedex Number: 126 (184) Ability: Thick Fat Moves: Tail Whip [Normal] (Category: Status, Power: None, Accuracy: 100) Double-Edge [Normal] (Category: Physical, Power: 120, Accuracy: 100) Aqua Tail [Water] (Category: Physical, Power: 90, Accuracy: 90) Hydro Pump [Water] (Category: Special, Power: 110, Accuracy: 80) $ ./my_pokemon 17 <<< $'4\n5\n12\n9\n3\n7' Select an option from the menu below by entering its number: 1) Let's Go, Pikachu 2) Omega Ruby 3) Brilliant Diamond 4) Violet 5) The Isle of Armor 6) Platinum 7) Black 8) The Crown Tundra 9) Sword 10) Y > Selection: 4 Select an option from the menu below by entering its number: 1) Qwilfish 2) Heracross 3) Glaceon 4) Gholdengo 5) Tatsugiri - Droopy Form 6) Fomantis 7) Avalugg 8) Cubchoo 9) Chansey 10) Toxapex > Selection: 5 Select an option from the menu below by entering its number: 1) Dragon Pulse 2) Harden 3) Helping Hand 4) Memento 5) Mirror Coat 6) Muddy Water 7) Nasty Plot 8) Soak 9) Splash 10) Taunt 11) Water Gun 12) Water Pulse > Selection: 12 Select an option from the menu below by entering its number: 1) Dragon Pulse 2) Harden 3) Helping Hand 4) Memento 5) Mirror Coat 6) Muddy Water 7) Nasty Plot 8) Soak 9) Splash 10) Taunt 11) Water Gun > Selection: 9 Select an option from the menu below by entering its number: 1) Dragon Pulse 2) Harden 3) Helping Hand 4) Memento 5) Mirror Coat 6) Muddy Water 7) Nasty Plot 8) Soak 9) Taunt 10) Water Gun > Selection: 3 Select an option from the menu below by entering its number: 1) Dragon Pulse 2) Harden 3) Memento 4) Mirror Coat 5) Muddy Water 6) Nasty Plot 7) Soak 8) Taunt 9) Water Gun > Selection: 7 Here is your new Pokemon (from Pokemon Violet): Name: Tatsugiri - Droopy Form Species: Mimicry Pokémon Type: Dragon + Water Pokedex Number: 375 (978) Ability: None Moves: Water Pulse [Water] (Category: Special, Power: 60, Accuracy: 100) Splash [Normal] (Category: Status, Power: None, Accuracy: None) Helping Hand [Normal] (Category: Status, Power: None, Accuracy: None) Soak [Water] (Category: Status, Power: None, Accuracy: 100) $ ./my_pokemon 3 <<< $'4\n7\n2\n1' Select an option from the menu below by entering its number: 1) Brilliant Diamond 2) Emerald 3) Pearl 4) Ultra Sun 5) Fire Red 6) Platinum 7) X 8) Omega Ruby 9) Shining Pearl 10) Sapphire > Selection: 4 Select an option from the menu below by entering its number: 1) Corsola 2) Dawn Wings Necrozma 3) Mareep 4) Oricorio - Pom-Pom Style 5) Haunter 6) Komala 7) Smeargle 8) Florges 9) Hisuian Growlithe 10) Tauros - Aqua Breed > Selection: 7 Select an option from the menu below by entering its number: 1) Moody 2) Own Tempo 3) Technician > Selection: 2 Select an option from the menu below by entering its number: 1) Sketch > Selection: 1 Here is your new Pokemon (from Pokemon Ultra Sun): Name: Smeargle Species: Painter Pokémon Type: Normal Pokedex Number: 70 (235) Ability: Own Tempo Moves: Sketch [Normal] (Category: Status, Power: None, Accuracy: None)
Note that the games "The Crown Tundra" and "The Isle of Armor" will not be tested.
As they are not real games, they do not have move data associated with them.
Note that each level of indentation is represented by a single tab character.
The evolution requirements emulate a (sideways) tree structure.
Note that a OR will never appear under an AND.
That is to say, the following is not possible:
Level: 14 OR NOT Region: Hisui AND Level: 17 OR Region: Hisui
There will also never be more than one layer of ANDs, and one layer of ORs.
That is to say, the following is not possible:
Level: 14 OR NOT Region: Hisui OR Level: 17 OR Region: Hisui
following are a selection of example outputs from the possible_evolutions script.
$ ./possible_evolutions Dreepy 'Dreepy' doesn't have any pre-evolutions. 'Dreepy' can evolve into: 'Drakloak' when the following requirements are satisfied: Level: 50 $ ./possible_evolutions Monferno 'Monferno' can evolve from: 'Chimchar' when the following requirements are satisfied: Level: 14 'Monferno' can evolve into: 'Infernape' when the following requirements are satisfied: Level: 36 $ ./possible_evolutions Quilava 'Quilava' can evolve from: 'Cyndaquil' when the following requirements are satisfied: Level: 14 AND NOT Region: Hisui OR Level: 17 AND Region: Hisui 'Quilava' can evolve into: 'Typhlosion' when the following requirements are satisfied: Level: 36 AND NOT Region: Hisui 'Hisuian Typhlosion' when the following requirements are satisfied: Level: 36 AND Region: Hisui $ ./possible_evolutions Eevee 'Eevee' doesn't have any pre-evolutions. 'Eevee' can evolve into: 'Vaporeon' when the following requirements are satisfied: Use Item: Water Stone 'Jolteon' when the following requirements are satisfied: Use Item: Thunder Stone 'Flareon' when the following requirements are satisfied: Use Item: Fire Stone 'Espeon' when the following requirements are satisfied: High Friendship AND Time of Day: Day 'Umbreon' when the following requirements are satisfied: High Friendship AND Time of Day: Night 'Leafeon' when the following requirements are satisfied: Use Item: Leaf Stone OR Area: Mossy Rock 'Glaceon' when the following requirements are satisfied: Use Item: Ice Stone OR Area: Icy Rock 'Sylveon' when the following requirements are satisfied: High Friendship AND Know Move Type: Fairy $ ./possible_evolutions Nincada 'Nincada' doesn't have any pre-evolutions. 'Nincada' can evolve into: 'Ninjask' when the following requirements are satisfied: Level: 20 'Shedinja' when the following requirements are satisfied: Level: 20 AND Pokemon in Party: Empty AND Has Pokeballs $ ./possible_evolutions Ursaluna 'Ursaluna' can evolve from: 'Ursaring' when the following requirements are satisfied: Time of Day: Night AND Moon Phase: Full Moon AND Region: Hisui AND Use Item: Peat Block 'Ursaluna' doesn't have any post-evolutions. $ ./possible_evolutions Porygon2 'Porygon2' can evolve from: 'Porygon' when the following requirements are satisfied: Trade AND Hold Item: Upgrade 'Porygon2' can evolve into: 'Porygon-Z' when the following requirements are satisfied: Trade AND Hold Item: Dubious Disc $ ./possible_evolutions 'Basculin - White-Striped Form' 'Basculin - White-Striped Form' doesn't have any pre-evolutions. 'Basculin - White-Striped Form' can evolve into: 'Basculegion - Male' when the following requirements are satisfied: Gender: Male AND Recoil Damage: 294 'Basculegion - Female' when the following requirements are satisfied: Gender: Female AND Recoil Damage: 294
following are a selection of error conditions and their corresponding error messages that your script be able to handle:
$ ./possible_evolutions Fluffluff 'Fluffluff' isn't a Pokemon that exists.
Note that each level of indentation is represented by a single tab character.
following are a selection of example outputs from the pokemon_density script.
$ ./pokemon_density Kanto The average density of Pokemon within each location in the 'Kanto' region: Mt. Ember: 0.7893 Sevault Canyon: 0.4107 Mt. Moon: 0.3953 Seafoam Islands: 0.3657 Icefall Cave: 0.3556 Kindle Road: 0.3191 Cerulean Cave: 0.2819 Rock Tunnel: 0.2759 Safari Zone: 0.2742 Route 22: 0.2460 Ruin Valley: 0.2432 Route 21: 0.2370 Route 11: 0.2296 Route 10: 0.2204 Route 6: 0.2159 Route 12: 0.2087 Route 13: 0.2052 Route 4: 0.1988 Route 24: 0.1958 Route 23: 0.1923 Route 20: 0.1845 Route 2: 0.1801 Route 18: 0.1761 Route 25: 0.1757 Route 19: 0.1731 Treasure Beach: 0.1694 Five Island: 0.1624 One Island: 0.1594 Five Isle Meadow: 0.1590 Water Path: 0.1587 Bond Bridge: 0.1576 Power Plant: 0.1517 Tanoby Ruins: 0.1501 Route 17: 0.1471 Victory Road: 0.1442 Memorial Pillar: 0.1408 Pokémon Mansion: 0.1394 Resort Gorgeous: 0.1378 Water Labyrinth: 0.1378 Vermilion City: 0.1372 Route 9: 0.1359 Route 3: 0.1355 Trainer Tower: 0.1348 Outcast Island: 0.1348 Green Path: 0.1348 Cinnabar Island: 0.1313 Four Island: 0.1273 Route 5: 0.1214 Route 1: 0.1204 Pallet Town: 0.1182 Route 16: 0.1142 Route 7: 0.1108 Cerulean City: 0.1105 Route 8: 0.1074 Cape Brink: 0.1055 Berry Forest: 0.1041 Viridian Forest: 0.0955 Fuchsia City: 0.0953 Pewter City: 0.0926 Lavender Town: 0.0926 Viridian City: 0.0876 Diglett's Cave: 0.0786 Route 14: 0.0705 Route 15: 0.0661 Celadon City: 0.0549 Canyon Entrance: 0.0467 Pattern Bush: 0.0432 Pokémon Tower: 0.0165 Lost Cave: 0.0051 Three Isle Port: 0.0016 Roaming Kanto: 0.0000 The following locations in the 'Kanto' region have no wild Pokemon encounters: Dotted Hole Indigo Plateau Navel Rock Rocket Hideout Rocket Warehouse Route 26 Route 27 Route 28 SS Anne Saffron City Seven Island Silph Co. Six Island Three Island Three Isle Path Tohjo Falls Two Island Underground Path 5-6 Underground Path 7-8 $ ./pokemon_density Galar The average density of Pokemon within each location in the 'Galar' region: Giant's Cap: 8.4165 Stony Wilderness: 6.2758 Snowslide Slope: 5.9417 South Lake Miloch: 5.7355 North Lake Miloch: 5.3855 West Lake Axewell: 4.9628 Rolling Fields: 4.6979 Bridge Field: 4.5472 Ballimere Lake: 4.5200 Giant's Mirror: 4.4843 East Lake Axewell: 4.4634 Loop Lagoon: 3.9095 Giant's Seat: 3.4472 Three-Point Pass: 3.4203 Frigid Sea: 3.3557 Giant's Bed: 3.0825 Giant's Foot: 3.0704 Old Cemetery: 2.9589 Motostoke Riverbank: 2.9341 Dappled Grove: 2.8613 Slippery Slope: 2.7300 Challenge Beach: 2.6085 Lake of Outrage: 2.5923 Courageous Cavern: 2.5062 Fields of Honor: 2.1428 Hammerlocke Hills: 2.1057 Dusty Bowl: 1.9267 Soothing Wetlands: 1.9152 Challenge Road: 1.9104 Frostpoint Field: 1.8560 Workout Sea: 1.8496 Axew's Eye: 1.8461 Forest of Focus: 1.8182 Training Lowlands: 1.7634 Route 3: 1.6546 Watchtower Ruins: 1.6514 Honeycalm Island: 1.6382 Stepping-Stone Sea: 1.6101 Route 2: 1.5292 Insular Sea: 1.2348 Lakeside Cave: 0.9517 Galar Mine: 0.9459 Route 9: 0.9301 Route 4: 0.9170 Slumbering Weald: 0.8449 Galar Mine No. 2: 0.8210 Honeycalm Sea: 0.7811 Roaring-Sea Caves: 0.7486 Route 5: 0.6928 Route 6: 0.6064 Potbottom Desert: 0.5797 Route 8: 0.5494 Brawlers' Cave: 0.4643 Route 10: 0.4630 Route 7: 0.4526 Route 1: 0.4214 Warm-Up Tunnel: 0.3703 Path to the Peak: 0.3635 Motostoke Outskirts: 0.3357 Tunnel to the Top: 0.3095 Motostoke: 0.2593 Glimwood Tangle: 0.2275 Hulbury: 0.1415 The following locations in the 'Galar' region have no wild Pokemon encounters: Ballonlea Battle Tower Circhester Crown Shrine Dyna Tree Hill Freezington Hammerlocke Iceberg Ruins Iron Ruins Master Dojo Max Lair Postwick Rock Peak Ruins Spikemuth Split-Decision Ruins Steamdrift Way Stow-on-Side Tower of Darkness Tower of Waters Turffield Wedgehurst Wyndon $ ./pokemon_density Sinnoh The average density of Pokemon within each location in the 'Sinnoh' region: Spacious Cave: 1.2393 Sunlit Cavern: 1.2304 Mt. Coronet: 1.1388 Still-Water Cavern: 1.1356 Riverbank Cave: 1.1356 Grassland Cave: 1.0866 Rocky Cave: 0.9427 Ruin Maniac Tunnel: 0.8617 Big Bluff Cavern: 0.7989 Whiteout Cave: 0.7948 Fountainspring Cave: 0.7495 Icy Cave: 0.7099 Glacial Cavern: 0.7033 Route 205: 0.7017 Route 212: 0.6601 Wayward Cave: 0.6375 Great Marsh: 0.6196 Route 204: 0.5927 Dazzling Cave: 0.5900 Stargleam Cavern: 0.5900 Fuego Ironworks: 0.5714 Iron Island: 0.5554 Route 207: 0.5161 Route 213: 0.5045 Route 210: 0.4876 Oreburgh Mine: 0.4854 Bogsunk Cavern: 0.4840 Swampy Cave: 0.4840 Valley Windworks: 0.4825 Route 206: 0.4764 Route 228: 0.4683 Typhlo Cavern: 0.4206 Route 214: 0.4059 Oreburgh Gate: 0.4051 Route 218: 0.3916 Stark Mountain: 0.3853 Route 221: 0.3847 Route 211: 0.3801 Route 202: 0.3798 Route 203: 0.3594 Route 215: 0.3569 Lake Verity: 0.3566 Volcanic Cave: 0.3375 Route 209: 0.3314 Eterna Forest: 0.3308 Sandsear Cave: 0.3185 Route 222: 0.3073 Route 224: 0.2977 Route 227: 0.2977 Route 208: 0.2797 Route 201: 0.2705 Route 226: 0.2635 Victory Road: 0.2334 Lake Acuity: 0.2269 Turnback Cave: 0.2168 Route 225: 0.2049 Lake Valor: 0.1982 Route 219: 0.1876 Route 220: 0.1824 Trophy Garden: 0.1772 Canalave City: 0.1678 Route 229: 0.1623 Ravaged Path: 0.1596 Route 230: 0.1596 Sendoff Spring: 0.1556 Pastoria City: 0.1503 Valor Lakefront: 0.1346 Route 217: 0.1233 Floaroma Meadow: 0.1209 Snowpoint Temple: 0.1076 Celestic Town: 0.1063 Twinleaf Town: 0.1047 Sunyshore City: 0.1043 Route 216: 0.0957 Pokémon League: 0.0940 Eterna City: 0.0922 Route 223: 0.0881 Acuity Lakefront: 0.0782 Resort Area: 0.0780 Lost Tower: 0.0772 Solaceon Ruins: 0.0397 Old Chateau: 0.0002 Roaming Sinnoh: 0.0000 The following locations in the 'Sinnoh' region have no wild Pokemon encounters: Amity Square Battle Frontier Battle Park Distortion World Eterna Galactic Building Fight Area Floaroma Town Flower Paradise Fullmoon Island Galactic Warehouse Grand Lake Hotel Grand Underground Hall of Origin Hearthome City Jubilife City Newmoon Island Oreburgh City Pal Park Pokémon Mansion Ramanas Park Sandgem Town Seabreak Path Snowpoint City Solaceon Town Spear Pillar Survival Area Veilstone City Veilstone Galactic Building Verity Lakefront
following are a selection of error conditions and their corresponding error messages that your script be able to handle:
$ ./pokemon_density Aurorania 'Aurorania' isn't a region in the Pokemon series.
following are a selection of example outputs from the encounter_summary script.
$ ./encounter_summary "Route 201" "Diamond" In 'Pokemon Diamond' at 'Route 201' the following Pokemon can be Encountered: Bidoof: Type: Normal Rarity: 20% Levels: min 2, max 3 Egg Groups: Field, Water 1 Abilities: Simple, Unaware Encounter Requirements: Walking Doduo: Type: Normal/Flying Rarity: 20% Levels: min 2, max 2 Egg Groups: Flying Abilities: Early Bird, Run Away Encounter Requirements: Walking Starly: Type: Normal/Flying Rarity: 20% Levels: min 2, max 3 Egg Groups: Flying Abilities: Keen Eye Encounter Requirements: Walking Nidoran♀: Type: Poison Rarity: 5% Levels: min 3, max 3 Egg Groups: Field, Monster Abilities: Poison Point, Rivalry Encounter Requirements: PokeRadar Growlithe: Type: Fire Rarity: 1% Levels: min 2, max 2 Egg Groups: Field Abilities: Flash Fire, Intimidate Encounter Requirements: Walking Nidoran♂: Type: Poison Rarity: 1% Levels: min 2, max 2 Egg Groups: Field, Monster Abilities: Poison Point, Rivalry Encounter Requirements: PokeRadar $ ./encounter_summary "Route 1" "Red" In 'Pokemon Red' at 'Route 1' the following Pokemon can be Encountered: Pidgey: Type: Normal/Flying Rarity: 20% Levels: min 2, max 5 Egg Groups: Flying Abilities: Keen Eye, Tangled Feet Encounter Requirements: Walking Rattata: Type: Normal Rarity: 20% Levels: min 2, max 4 Egg Groups: Field Abilities: Guts, Run Away Encounter Requirements: Walking $ ./encounter_summary "Route 22" "Fire Red" In 'Pokemon Fire Red' at 'Route 22' the following Pokemon can be Encountered: Magikarp: Type: Water Rarity: 20% Levels: min 5, max 5 Egg Groups: Dragon, Water 2 Abilities: Swift Swim Encounter Requirements: Fishing: Old Rod Mankey: Type: Fighting Rarity: 20% Levels: min 2, max 5 Egg Groups: Field Abilities: Anger Point, Vital Spirit Encounter Requirements: Walking Poliwag: Type: Water Rarity: 20% Levels: min 5, max 15 Egg Groups: Water 1 Abilities: Damp, Water Absorb Encounter Requirements: Fishing: Good Rod Poliwag: Type: Water Rarity: 20% Levels: min 15, max 25 Egg Groups: Water 1 Abilities: Damp, Water Absorb Encounter Requirements: Fishing: Super Rod Poliwhirl: Type: Water Rarity: 20% Levels: min 20, max 30 Egg Groups: Water 1 Abilities: Damp, Water Absorb Encounter Requirements: Fishing: Super Rod Psyduck: Type: Water Rarity: 20% Levels: min 20, max 40 Egg Groups: Field, Water 1 Abilities: Cloud Nine, Damp Encounter Requirements: Surfing Rattata: Type: Normal Rarity: 20% Levels: min 2, max 5 Egg Groups: Field Abilities: Guts, Run Away Encounter Requirements: Walking Goldeen: Type: Water Rarity: 5% Levels: min 5, max 15 Egg Groups: Water 2 Abilities: Swift Swim, Water Veil Encounter Requirements: Fishing: Good Rod Gyarados: Type: Water/Flying Rarity: 5% Levels: min 15, max 25 Egg Groups: Dragon, Water 2 Abilities: Intimidate Encounter Requirements: Fishing: Super Rod Magikarp: Type: Water Rarity: 5% Levels: min 5, max 15 Egg Groups: Dragon, Water 2 Abilities: Swift Swim Encounter Requirements: Fishing: Good Rod Spearow: Type: Normal/Flying Rarity: 5% Levels: min 3, max 5 Egg Groups: Flying Abilities: Keen Eye Encounter Requirements: Walking Psyduck: Type: Water Rarity: 1% Levels: min 15, max 35 Egg Groups: Field, Water 1 Abilities: Cloud Nine, Damp Encounter Requirements: Fishing: Super Rod $ ./encounter_summary "Slateport City" "Omega Ruby" In 'Pokemon Omega Ruby' at 'Slateport City' the following Pokemon can be Encountered: Wailmer: Type: Water Rarity: 100% Levels: min 30, max 40 Egg Groups: Field, Water 2 Abilities: Oblivious, Water Veil Encounter Requirements: Fishing: Super Rod Magikarp: Type: Water Rarity: 65% Levels: min 10, max 15 Egg Groups: Dragon, Water 2 Abilities: Swift Swim Encounter Requirements: Fishing: Old Rod Tentacool: Type: Water/Poison Rarity: 65% Levels: min 20, max 25 Egg Groups: Water 3 Abilities: Clear Body, Liquid Ooze Encounter Requirements: Surfing Magikarp: Type: Water Rarity: 60% Levels: min 25, max 25 Egg Groups: Dragon, Water 2 Abilities: Swift Swim Encounter Requirements: Fishing: Good Rod Tentacool: Type: Water/Poison Rarity: 35% Levels: min 5, max 5 Egg Groups: Water 3 Abilities: Clear Body, Liquid Ooze Encounter Requirements: Fishing: Old Rod Tentacool: Type: Water/Poison Rarity: 35% Levels: min 25, max 25 Egg Groups: Water 3 Abilities: Clear Body, Liquid Ooze Encounter Requirements: Fishing: Good Rod Wingull: Type: Water/Flying Rarity: 30% Levels: min 20, max 20 Egg Groups: Flying, Water 1 Abilities: Hydration, Keen Eye Encounter Requirements: Surfing Pelipper: Type: Water/Flying Rarity: 5% Levels: min 25, max 30 Egg Groups: Flying, Water 1 Abilities: Drizzle, Keen Eye Encounter Requirements: Surfing Wailmer: Type: Water Rarity: 5% Levels: min 25, max 25 Egg Groups: Field, Water 2 Abilities: Oblivious, Water Veil Encounter Requirements: Fishing: Good Rod $ ./encounter_summary "Tunnel to the Top" "The Crown Tundra" In 'Pokemon The Crown Tundra' at 'Tunnel To The Top' the following Pokemon can be Encountered: Zubat: Type: Poison/Flying Rarity: 40% Levels: min 60, max 65 Egg Groups: Flying Abilities: Inner Focus Encounter Requirements: Walking Zubat: Type: Poison/Flying Rarity: 40% Levels: min 60, max 65 Egg Groups: Flying Abilities: Inner Focus Encounter Requirements: Walking Carbink: Type: Rock/Fairy Rarity: 24% Levels: min 60, max 65 Egg Groups: Fairy, Mineral Abilities: Clear Body Encounter Requirements: Walking Carbink: Type: Rock/Fairy Rarity: 24% Levels: min 60, max 65 Egg Groups: Fairy, Mineral Abilities: Clear Body Encounter Requirements: Walking Snorunt: Type: Ice Rarity: 20% Levels: min 60, max 65 Egg Groups: Fairy, Mineral Abilities: Ice Body, Inner Focus Encounter Requirements: Walking Snorunt: Type: Ice Rarity: 20% Levels: min 60, max 65 Egg Groups: Fairy, Mineral Abilities: Ice Body, Inner Focus Encounter Requirements: Walking Bagon: Type: Dragon Rarity: 10% Levels: min 60, max 65 Egg Groups: Dragon Abilities: Rock Head Encounter Requirements: Walking Gible: Type: Dragon/Ground Rarity: 10% Levels: min 60, max 65 Egg Groups: Dragon, Monster Abilities: Sand Veil Encounter Requirements: Walking Clefairy: Type: Fairy Rarity: 5% Levels: min 60, max 65 Egg Groups: Fairy Abilities: Cute Charm, Magic Guard Encounter Requirements: Walking Clefairy: Type: Fairy Rarity: 5% Levels: min 60, max 65 Egg Groups: Fairy Abilities: Cute Charm, Magic Guard Encounter Requirements: Walking Audino: Type: Normal Rarity: 1% Levels: min 60, max 65 Egg Groups: Fairy Abilities: Healer, Regenerator Encounter Requirements: Walking Audino: Type: Normal Rarity: 1% Levels: min 60, max 65 Egg Groups: Fairy Abilities: Healer, Regenerator Encounter Requirements: Walking $ ./encounter_summary "Kala'e Bay" "Ultra Sun" In 'Pokemon Ultra Sun' at 'Kala'E Bay' the following Pokemon can be Encountered: Tentacool: Type: Water/Poison Rarity: 40% Levels: min 15, max 18 Egg Groups: Water 3 Abilities: Clear Body, Liquid Ooze Encounter Requirements: Surfing Wingull: Type: Water/Flying Rarity: 40% Levels: min 15, max 18 Egg Groups: Flying, Water 1 Abilities: Hydration, Keen Eye Encounter Requirements: Walking Magikarp: Type: Water Rarity: 35% Levels: min 10, max 17 Egg Groups: Dragon, Water 2 Abilities: Swift Swim Encounter Requirements: Fishing: Super Rod Shellder: Type: Water Rarity: 35% Levels: min 10, max 22 Egg Groups: Water 3 Abilities: Shell Armor, Skill Link Encounter Requirements: Fishing: Super Rod Wishiwashi - Solo Form: Type: Water Rarity: 35% Levels: min 10, max 17 Egg Groups: Water 2 Abilities: Schooling Encounter Requirements: Fishing: Super Rod Alolan Rattata: Type: Dark Rarity: 30% Levels: min 15, max 18 Egg Groups: Field Abilities: Gluttony, Hustle Encounter Requirements: Time of Day: Night Walking Yungoos: Type: Normal Rarity: 30% Levels: min 15, max 18 Egg Groups: Field Abilities: Stakeout, Strong Jaw Encounter Requirements: Time of Day: Day Walking Magikarp: Type: Water Rarity: 25% Levels: min 10, max 22 Egg Groups: Dragon, Water 2 Abilities: Swift Swim Encounter Requirements: Fishing: Super Rod Remoraid: Type: Water Rarity: 25% Levels: min 10, max 17 Egg Groups: Water 1, Water 2 Abilities: Hustle, Sniper Encounter Requirements: Fishing: Super Rod Wishiwashi - Solo Form: Type: Water Rarity: 25% Levels: min 10, max 22 Egg Groups: Water 2 Abilities: Schooling Encounter Requirements: Fishing: Super Rod Finneon: Type: Water Rarity: 20% Levels: min 15, max 18 Egg Groups: Water 2 Abilities: Storm Drain, Swift Swim Encounter Requirements: Surfing Mantyke: Type: Water/Flying Rarity: 20% Levels: min 15, max 18 Egg Groups: Undiscovered Abilities: Swift Swim, Water Absorb Encounter Requirements: Surfing Slowpoke: Type: Water/Psychic Rarity: 20% Levels: min 15, max 18 Egg Groups: Monster, Water 1 Abilities: Oblivious, Own Tempo Encounter Requirements: Walking Wingull: Type: Water/Flying Rarity: 20% Levels: min 15, max 18 Egg Groups: Flying, Water 1 Abilities: Hydration, Keen Eye Encounter Requirements: Surfing Remoraid: Type: Water Rarity: 15% Levels: min 10, max 22 Egg Groups: Water 1, Water 2 Abilities: Hustle, Sniper Encounter Requirements: Fishing: Super Rod Bagon: Type: Dragon Rarity: 10% Levels: min 15, max 18 Egg Groups: Dragon Abilities: Rock Head Encounter Requirements: Walking Gyarados: Type: Water/Flying Rarity: 5% Levels: min 10, max 17 Egg Groups: Dragon, Water 2 Abilities: Intimidate Encounter Requirements: Fishing: Super Rod Gyarados: Type: Water/Flying Rarity: 5% Levels: min 10, max 22 Egg Groups: Dragon, Water 2 Abilities: Intimidate Encounter Requirements: Fishing: Super Rod Octillery: Type: Water Rarity: 5% Levels: min 10, max 17 Egg Groups: Water 1, Water 2 Abilities: Sniper, Suction Cups Encounter Requirements: Fishing: Super Rod Octillery: Type: Water Rarity: 5% Levels: min 10, max 22 Egg Groups: Water 1, Water 2 Abilities: Sniper, Suction Cups Encounter Requirements: Fishing: Super Rod Remoraid: Type: Water Rarity: 5% Levels: min 15, max 18 Egg Groups: Water 1, Water 2 Abilities: Hustle, Sniper Encounter Requirements: Surfing Shelgon: Type: Dragon Rarity: 5% Levels: min 15, max 18 Egg Groups: Dragon Abilities: Rock Head Encounter Requirements: Walking Shellder: Type: Water Rarity: 5% Levels: min 10, max 17 Egg Groups: Water 3 Abilities: Shell Armor, Skill Link Encounter Requirements: Fishing: Super Rod Slowbro: Type: Water/Psychic Rarity: 5% Levels: min 15, max 18 Egg Groups: Monster, Water 1 Abilities: Oblivious, Own Tempo Encounter Requirements: Walking Slowking: Type: Water/Psychic Rarity: 5% Levels: min 15, max 18 Egg Groups: Monster, Water 1 Abilities: Oblivious, Own Tempo Encounter Requirements: Walking Horsea: Type: Water Rarity: 0% Levels: min 18, max 18 Egg Groups: Dragon, Water 1 Abilities: Sniper, Swift Swim Encounter Requirements: Day of the Week: Wednesday Walking
following are a selection of error conditions and their corresponding error messages that your script be able to handle:
$ ./encounter_summary 'Tunnel to the Bottom' 'The Crown Tundra' 'Tunnel To The Bottom' isn't a location in the Pokemon series. $ ./encounter_summary 'Tunnel To The Top' Glass 'Pokemon Glass' isn't a game in the Pokemon series. $ ./encounter_summary 'Route 101' Red 'Route 101' isn't in 'Pokemon Red'.
Arguments should be checked in the order shown above.
ie.
First check that the location exsits,
then check that the game exists,
then check that the location appears in the game.
following are a selection of example outputs from the attack_damage script.
Note that each row of output (except the first (and blank lines))
is indented with a single tab character.
The move names are left-aligned, and the damage values are right-aligned.
$ ./attack_damage Bulbasaur Squirtle 'Fire Red'
In 'Pokemon Fire Red', When 'Bulbasaur' attacks 'Squirtle', 'Bulbasaur' can use the following moves:
'Rock Smash' for a minimum of 2 damage and a maximum of 27 damage to 'Squirtle'.
'Tackle' for a minimum of 2 damage and a maximum of 27 damage to 'Squirtle'.
'Cut' for a minimum of 3 damage and a maximum of 33 damage to 'Squirtle'.
'Facade' for a minimum of 3 damage and a maximum of 46 damage to 'Squirtle'.
'Secret Power' for a minimum of 3 damage and a maximum of 46 damage to 'Squirtle'.
'Strength' for a minimum of 4 damage and a maximum of 52 damage to 'Squirtle'.
'Hidden Power' for a minimum of 4 damage and a maximum of 53 damage to 'Squirtle'.
'Bullet Seed' for a minimum of 7 damage and a maximum of 53 damage to 'Squirtle'.
'Body Slam' for a minimum of 4 damage and a maximum of 55 damage to 'Squirtle'.
'Double-Edge' for a minimum of 5 damage and a maximum of 78 damage to 'Squirtle'.
'Skull Bash' for a minimum of 5 damage and a maximum of 84 damage to 'Squirtle'.
'Vine Whip' for a minimum of 9 damage and a maximum of 91 damage to 'Squirtle'.
'Razor Leaf' for a minimum of 10 damage and a maximum of 110 damage to 'Squirtle'.
'Sludge Bomb' for a minimum of 8 damage and a maximum of 118 damage to 'Squirtle'.
'Magical Leaf' for a minimum of 12 damage and a maximum of 159 damage to 'Squirtle'.
'Giga Drain' for a minimum of 14 damage and a maximum of 198 damage to 'Squirtle'.
'Petal Dance' for a minimum of 20 damage and a maximum of 313 damage to 'Squirtle'.
'Solar Beam' for a minimum of 20 damage and a maximum of 313 damage to 'Squirtle'.
$ ./attack_damage Pikachu Tentacruel 'Yellow'
In 'Pokemon Yellow', When 'Pikachu' attacks 'Tentacruel', 'Pikachu' can use the following moves:
'Rage' for a minimum of 2 damage and a maximum of 16 damage to 'Tentacruel'.
'Swift' for a minimum of 2 damage and a maximum of 23 damage to 'Tentacruel'.
'Submission' for a minimum of 2 damage and a maximum of 29 damage to 'Tentacruel'.
'Pay Day' for a minimum of 3 damage and a maximum of 30 damage to 'Tentacruel'.
'Quick Attack' for a minimum of 3 damage and a maximum of 30 damage to 'Tentacruel'.
'Thunder Shock' for a minimum of 7 damage and a maximum of 48 damage to 'Tentacruel'.
'Mega Punch' for a minimum of 4 damage and a maximum of 58 damage to 'Tentacruel'.
'Slam' for a minimum of 4 damage and a maximum of 58 damage to 'Tentacruel'.
'Body Slam' for a minimum of 4 damage and a maximum of 62 damage to 'Tentacruel'.
'Take Down' for a minimum of 4 damage and a maximum of 66 damage to 'Tentacruel'.
'Double-Edge' for a minimum of 5 damage and a maximum of 87 damage to 'Tentacruel'.
'Mega Kick' for a minimum of 5 damage and a maximum of 87 damage to 'Tentacruel'.
'Skull Bash' for a minimum of 6 damage and a maximum of 94 damage to 'Tentacruel'.
'Thunderbolt' for a minimum of 9 damage and a maximum of 100 damage to 'Tentacruel'.
'Thunder' for a minimum of 10 damage and a maximum of 121 damage to 'Tentacruel'.
$ ./attack_damage Pikachu Klinklang 'Shield'
In 'Pokemon Shield', When 'Pikachu' attacks 'Klinklang', 'Pikachu' can use the following moves:
'Feint' for a minimum of 1 damage and a maximum of 7 damage to 'Klinklang'.
'Fake Out' for a minimum of 1 damage and a maximum of 9 damage to 'Klinklang'.
'Pay Day' for a minimum of 1 damage and a maximum of 9 damage to 'Klinklang'.
'Quick Attack' for a minimum of 1 damage and a maximum of 9 damage to 'Klinklang'.
'Disarming Voice' for a minimum of 1 damage and a maximum of 10 damage to 'Klinklang'.
'Draining Kiss' for a minimum of 1 damage and a maximum of 13 damage to 'Klinklang'.
'Snore' for a minimum of 1 damage and a maximum of 13 damage to 'Klinklang'.
'Facade' for a minimum of 1 damage and a maximum of 15 damage to 'Klinklang'.
'Round' for a minimum of 1 damage and a maximum of 15 damage to 'Klinklang'.
'Swift' for a minimum of 1 damage and a maximum of 15 damage to 'Klinklang'.
'Nuzzle' for a minimum of 3 damage and a maximum of 15 damage to 'Klinklang'.
'Mega Punch' for a minimum of 1 damage and a maximum of 17 damage to 'Klinklang'.
'Slam' for a minimum of 1 damage and a maximum of 17 damage to 'Klinklang'.
'Body Slam' for a minimum of 1 damage and a maximum of 18 damage to 'Klinklang'.
'Play Rough' for a minimum of 1 damage and a maximum of 19 damage to 'Klinklang'.
'Iron Tail' for a minimum of 1 damage and a maximum of 21 damage to 'Klinklang'.
'Uproar' for a minimum of 1 damage and a maximum of 23 damage to 'Klinklang'.
'Mega Kick' for a minimum of 2 damage and a maximum of 25 damage to 'Klinklang'.
'Thief' for a minimum of 2 damage and a maximum of 26 damage to 'Klinklang'.
'Thunder Shock' for a minimum of 4 damage and a maximum of 32 damage to 'Klinklang'.
'Spark' for a minimum of 4 damage and a maximum of 42 damage to 'Klinklang'.
'Electroweb' for a minimum of 4 damage and a maximum of 43 damage to 'Klinklang'.
'Surf' for a minimum of 3 damage and a maximum of 46 damage to 'Klinklang'.
'Thunder Punch' for a minimum of 4 damage and a maximum of 48 damage to 'Klinklang'.
'Rising Voltage' for a minimum of 5 damage and a maximum of 54 damage to 'Klinklang'.
'Volt Switch' for a minimum of 5 damage and a maximum of 54 damage to 'Klinklang'.
'Wild Charge' for a minimum of 5 damage and a maximum of 57 damage to 'Klinklang'.
'Discharge' for a minimum of 5 damage and a maximum of 62 damage to 'Klinklang'.
'Brick Break' for a minimum of 6 damage and a maximum of 64 damage to 'Klinklang'.
'Dig' for a minimum of 6 damage and a maximum of 68 damage to 'Klinklang'.
'Thunderbolt' for a minimum of 5 damage and a maximum of 69 damage to 'Klinklang'.
'Thunder' for a minimum of 6 damage and a maximum of 84 damage to 'Klinklang'.
$ ./attack_damage Palkia Overqwil 'Legends: Arceus'
In 'Pokemon Legends: Arceus', When 'Palkia' attacks 'Overqwil', 'Palkia' can use the following moves:
'Shadow Claw' for a minimum of 2 damage and a maximum of 38 damage to 'Overqwil'.
'Rock Smash' for a minimum of 3 damage and a maximum of 44 damage to 'Overqwil'.
'Aerial Ace' for a minimum of 4 damage and a maximum of 65 damage to 'Overqwil'.
'Slash' for a minimum of 5 damage and a maximum of 76 damage to 'Overqwil'.
'Rock Slide' for a minimum of 5 damage and a maximum of 81 damage to 'Overqwil'.
'Stone Edge' for a minimum of 6 damage and a maximum of 108 damage to 'Overqwil'.
'Ancient Power' for a minimum of 7 damage and a maximum of 118 damage to 'Overqwil'.
'Swift' for a minimum of 7 damage and a maximum of 118 damage to 'Overqwil'.
'Twister' for a minimum of 8 damage and a maximum of 119 damage to 'Overqwil'.
'Dragon Claw' for a minimum of 8 damage and a maximum of 130 damage to 'Overqwil'.
'Bulldoze' for a minimum of 9 damage and a maximum of 131 damage to 'Overqwil'.
'Aqua Tail' for a minimum of 9 damage and a maximum of 146 damage to 'Overqwil'.
'Power Gem' for a minimum of 9 damage and a maximum of 157 damage to 'Overqwil'.
'Giga Impact' for a minimum of 9 damage and a maximum of 161 damage to 'Overqwil'.
'Flamethrower' for a minimum of 10 damage and a maximum of 176 damage to 'Overqwil'.
'Ice Beam' for a minimum of 10 damage and a maximum of 176 damage to 'Overqwil'.
'Thunderbolt' for a minimum of 10 damage and a maximum of 176 damage to 'Overqwil'.
'Water Pulse' for a minimum of 11 damage and a maximum of 177 damage to 'Overqwil'.
'Outrage' for a minimum of 11 damage and a maximum of 194 damage to 'Overqwil'.
'Dragon Pulse' for a minimum of 14 damage and a maximum of 250 damage to 'Overqwil'.
'Hyper Beam' for a minimum of 15 damage and a maximum of 292 damage to 'Overqwil'.
'Spacial Rend' for a minimum of 16 damage and a maximum of 293 damage to 'Overqwil'.
'Hydro Pump' for a minimum of 18 damage and a maximum of 322 damage to 'Overqwil'.
'Earth Power' for a minimum of 20 damage and a maximum of 352 damage to 'Overqwil'.
'Draco Meteor' for a minimum of 20 damage and a maximum of 381 damage to 'Overqwil'.
$ ./attack_damage Dragapult Riolu 'Violet'
In 'Pokemon Violet', When 'Dragapult' attacks 'Riolu', 'Dragapult' can use the following moves:
'Infestation' for a minimum of 1 damage and a maximum of 22 damage to 'Riolu'.
'Pounce' for a minimum of 3 damage and a maximum of 64 damage to 'Riolu'.
'Assurance' for a minimum of 4 damage and a maximum of 76 damage to 'Riolu'.
'Bite' for a minimum of 4 damage and a maximum of 76 damage to 'Riolu'.
'Thief' for a minimum of 4 damage and a maximum of 76 damage to 'Riolu'.
'Sucker Punch' for a minimum of 5 damage and a maximum of 89 damage to 'Riolu'.
'U-turn' for a minimum of 5 damage and a maximum of 89 damage to 'Riolu'.
'Double Hit' for a minimum of 6 damage and a maximum of 90 damage to 'Riolu'.
'Quick Attack' for a minimum of 6 damage and a maximum of 102 damage to 'Riolu'.
'Astonish' for a minimum of 8 damage and a maximum of 116 damage to 'Riolu'.
'Swift' for a minimum of 7 damage and a maximum of 128 damage to 'Riolu'.
'Tera Blast' for a minimum of 9 damage and a maximum of 170 damage to 'Riolu'.
'Facade' for a minimum of 10 damage and a maximum of 178 damage to 'Riolu'.
'Flamethrower' for a minimum of 10 damage and a maximum of 191 damage to 'Riolu'.
'Surf' for a minimum of 10 damage and a maximum of 191 damage to 'Riolu'.
'Thunderbolt' for a minimum of 10 damage and a maximum of 191 damage to 'Riolu'.
'Dragon Breath' for a minimum of 11 damage and a maximum of 192 damage to 'Riolu'.
'Dragon Darts' for a minimum of 11 damage and a maximum of 192 damage to 'Riolu'.
'Hex' for a minimum of 12 damage and a maximum of 207 damage to 'Riolu'.
'Body Slam' for a minimum of 12 damage and a maximum of 216 damage to 'Riolu'.
'Take Down' for a minimum of 12 damage and a maximum of 228 damage to 'Riolu'.
'Dragon Tail' for a minimum of 13 damage and a maximum of 229 damage to 'Riolu'.
'Fire Blast' for a minimum of 12 damage and a maximum of 233 damage to 'Riolu'.
'Hydro Pump' for a minimum of 12 damage and a maximum of 233 damage to 'Riolu'.
'Thunder' for a minimum of 12 damage and a maximum of 233 damage to 'Riolu'.
'Solar Beam' for a minimum of 13 damage and a maximum of 254 damage to 'Riolu'.
'Shadow Ball' for a minimum of 14 damage and a maximum of 255 damage to 'Riolu'.
'Dragon Pulse' for a minimum of 15 damage and a maximum of 270 damage to 'Riolu'.
'Acrobatics' for a minimum of 16 damage and a maximum of 281 damage to 'Riolu'.
'Double-Edge' for a minimum of 16 damage and a maximum of 304 damage to 'Riolu'.
'Dragon Claw' for a minimum of 17 damage and a maximum of 305 damage to 'Riolu'.
'Hyper Beam' for a minimum of 17 damage and a maximum of 317 damage to 'Riolu'.
'Phantom Force' for a minimum of 19 damage and a maximum of 343 damage to 'Riolu'.
'Last Resort' for a minimum of 18 damage and a maximum of 354 damage to 'Riolu'.
'Giga Impact' for a minimum of 20 damage and a maximum of 380 damage to 'Riolu'.
'Dragon Rush' for a minimum of 20 damage and a maximum of 381 damage to 'Riolu'.
'Draco Meteor' for a minimum of 22 damage and a maximum of 412 damage to 'Riolu'.
'Psychic Fangs' for a minimum of 24 damage and a maximum of 432 damage to 'Riolu'.
'Outrage' for a minimum of 24 damage and a maximum of 456 damage to 'Riolu'.
'Fly' for a minimum of 25 damage and a maximum of 457 damage to 'Riolu'.
$ ./attack_damage Goodra Comfey 'Sun'
In 'Pokemon Sun', When 'Goodra' attacks 'Comfey', 'Goodra' can use the following moves:
'Infestation' for a minimum of 1 damage and a maximum of 9 damage to 'Comfey'.
'Absorb' for a minimum of 2 damage and a maximum of 18 damage to 'Comfey'.
'Brutal Swing' for a minimum of 2 damage and a maximum of 29 damage to 'Comfey'.
'Feint' for a minimum of 3 damage and a maximum of 30 damage to 'Comfey'.
'Bubble' for a minimum of 3 damage and a maximum of 35 damage to 'Comfey'.
'Tackle' for a minimum of 3 damage and a maximum of 39 damage to 'Comfey'.
'Focus Blast' for a minimum of 3 damage and a maximum of 51 damage to 'Comfey'.
'Hidden Power' for a minimum of 4 damage and a maximum of 52 damage to 'Comfey'.
'Round' for a minimum of 4 damage and a maximum of 52 damage to 'Comfey'.
'Bulldoze' for a minimum of 4 damage and a maximum of 58 damage to 'Comfey'.
'Facade' for a minimum of 4 damage and a maximum of 67 damage to 'Comfey'.
'Rock Slide' for a minimum of 5 damage and a maximum of 72 damage to 'Comfey'.
'Flamethrower' for a minimum of 5 damage and a maximum of 77 damage to 'Comfey'.
'Ice Beam' for a minimum of 5 damage and a maximum of 77 damage to 'Comfey'.
'Muddy Water' for a minimum of 5 damage and a maximum of 77 damage to 'Comfey'.
'Thunderbolt' for a minimum of 5 damage and a maximum of 77 damage to 'Comfey'.
'Body Slam' for a minimum of 5 damage and a maximum of 81 damage to 'Comfey'.
'Aqua Tail' for a minimum of 5 damage and a maximum of 86 damage to 'Comfey'.
'Blizzard' for a minimum of 6 damage and a maximum of 94 damage to 'Comfey'.
'Fire Blast' for a minimum of 6 damage and a maximum of 94 damage to 'Comfey'.
'Thunder' for a minimum of 6 damage and a maximum of 94 damage to 'Comfey'.
'Earthquake' for a minimum of 6 damage and a maximum of 95 damage to 'Comfey'.
'Poison Tail' for a minimum of 7 damage and a maximum of 97 damage to 'Comfey'.
'Power Whip' for a minimum of 7 damage and a maximum of 114 damage to 'Comfey'.
'Hyper Beam' for a minimum of 7 damage and a maximum of 128 damage to 'Comfey'.
'Giga Impact' for a minimum of 8 damage and a maximum of 142 damage to 'Comfey'.
'Sludge Bomb' for a minimum of 10 damage and a maximum of 155 damage to 'Comfey'.
'Sludge Wave' for a minimum of 11 damage and a maximum of 163 damage to 'Comfey'.
'Iron Tail' for a minimum of 12 damage and a maximum of 190 damage to 'Comfey'.
$ ./attack_damage 'Hisuian Avalugg' Gliscor 'Legends: Arceus'
In 'Pokemon Legends: Arceus', When 'Hisuian Avalugg' attacks 'Gliscor', 'Hisuian Avalugg' can use the following moves:
'Rock Smash' for a minimum of 1 damage and a maximum of 18 damage to 'Gliscor'.
'Flash Cannon' for a minimum of 3 damage and a maximum of 32 damage to 'Gliscor'.
'Tackle' for a minimum of 3 damage and a maximum of 36 damage to 'Gliscor'.
'Water Pulse' for a minimum of 5 damage and a maximum of 49 damage to 'Gliscor'.
'Bite' for a minimum of 4 damage and a maximum of 53 damage to 'Gliscor'.
'Hyper Beam' for a minimum of 4 damage and a maximum of 59 damage to 'Gliscor'.
'Crunch' for a minimum of 5 damage and a maximum of 70 damage to 'Gliscor'.
'Iron Head' for a minimum of 5 damage and a maximum of 70 damage to 'Gliscor'.
'Rock Slide' for a minimum of 7 damage and a maximum of 99 damage to 'Gliscor'.
'Powder Snow' for a minimum of 14 damage and a maximum of 103 damage to 'Gliscor'.
'Double-Edge' for a minimum of 6 damage and a maximum of 104 damage to 'Gliscor'.
'Giga Impact' for a minimum of 7 damage and a maximum of 130 damage to 'Gliscor'.
'Stone Edge' for a minimum of 8 damage and a maximum of 131 damage to 'Gliscor'.
'Icy Wind' for a minimum of 16 damage and a maximum of 137 damage to 'Gliscor'.
'Ice Ball' for a minimum of 17 damage and a maximum of 165 damage to 'Gliscor'.
'Ice Shard' for a minimum of 20 damage and a maximum of 216 damage to 'Gliscor'.
'Ice Beam' for a minimum of 20 damage and a maximum of 217 damage to 'Gliscor'.
'Blizzard' for a minimum of 22 damage and a maximum of 263 damage to 'Gliscor'.
'Ice Fang' for a minimum of 26 damage and a maximum of 344 damage to 'Gliscor'.
'Mountain Gale' for a minimum of 35 damage and a maximum of 524 damage to 'Gliscor'.
$ ./attack_damage 'Darmanitan - Galarian Zen Mode' 'Darmanitan - Galarian Standard Mode' 'Black 2'
In 'Pokemon Black 2', When 'Darmanitan - Galarian Zen Mode' attacks 'Darmanitan - Galarian Standard Mode', 'Darmanitan - Galarian Zen Mode' can use the following moves:
'Snore' for a minimum of 2 damage and a maximum of 24 damage to 'Darmanitan - Galarian Standard Mode'.
'Hidden Power' for a minimum of 3 damage and a maximum of 29 damage to 'Darmanitan - Galarian Standard Mode'.
'Round' for a minimum of 3 damage and a maximum of 29 damage to 'Darmanitan - Galarian Standard Mode'.
'Psychic' for a minimum of 3 damage and a maximum of 43 damage to 'Darmanitan - Galarian Standard Mode'.
'Uproar' for a minimum of 3 damage and a maximum of 43 damage to 'Darmanitan - Galarian Standard Mode'.
'Rage' for a minimum of 4 damage and a maximum of 50 damage to 'Darmanitan - Galarian Standard Mode'.
'Solar Beam' for a minimum of 4 damage and a maximum of 57 damage to 'Darmanitan - Galarian Standard Mode'.
'Hyper Beam' for a minimum of 5 damage and a maximum of 70 damage to 'Darmanitan - Galarian Standard Mode'.
'Incinerate' for a minimum of 9 damage and a maximum of 88 damage to 'Darmanitan - Galarian Standard Mode'.
'Tackle' for a minimum of 6 damage and a maximum of 99 damage to 'Darmanitan - Galarian Standard Mode'.
'Focus Blast' for a minimum of 8 damage and a maximum of 114 damage to 'Darmanitan - Galarian Standard Mode'.
'Payback' for a minimum of 7 damage and a maximum of 124 damage to 'Darmanitan - Galarian Standard Mode'.
'Flamethrower' for a minimum of 11 damage and a maximum of 129 damage to 'Darmanitan - Galarian Standard Mode'.
'Heat Wave' for a minimum of 11 damage and a maximum of 136 damage to 'Darmanitan - Galarian Standard Mode'.
'Bulldoze' for a minimum of 8 damage and a maximum of 148 damage to 'Darmanitan - Galarian Standard Mode'.
'Thief' for a minimum of 8 damage and a maximum of 148 damage to 'Darmanitan - Galarian Standard Mode'.
'Rollout' for a minimum of 10 damage and a maximum of 150 damage to 'Darmanitan - Galarian Standard Mode'.
'Fire Blast' for a minimum of 12 damage and a maximum of 157 damage to 'Darmanitan - Galarian Standard Mode'.
'Facade' for a minimum of 10 damage and a maximum of 173 damage to 'Darmanitan - Galarian Standard Mode'.
'Headbutt' for a minimum of 10 damage and a maximum of 173 damage to 'Darmanitan - Galarian Standard Mode'.
'U-turn' for a minimum of 10 damage and a maximum of 173 damage to 'Darmanitan - Galarian Standard Mode'.
'Overheat' for a minimum of 13 damage and a maximum of 184 damage to 'Darmanitan - Galarian Standard Mode'.
'Dig' for a minimum of 11 damage and a maximum of 197 damage to 'Darmanitan - Galarian Standard Mode'.
'Strength' for a minimum of 11 damage and a maximum of 197 damage to 'Darmanitan - Galarian Standard Mode'.
'Zen Headbutt' for a minimum of 11 damage and a maximum of 197 damage to 'Darmanitan - Galarian Standard Mode'.
'Rock Smash' for a minimum of 12 damage and a maximum of 199 damage to 'Darmanitan - Galarian Standard Mode'.
'Take Down' for a minimum of 12 damage and a maximum of 221 damage to 'Darmanitan - Galarian Standard Mode'.
'Earthquake' for a minimum of 13 damage and a maximum of 246 damage to 'Darmanitan - Galarian Standard Mode'.
'Smack Down' for a minimum of 15 damage and a maximum of 248 damage to 'Darmanitan - Galarian Standard Mode'.
'Thrash' for a minimum of 15 damage and a maximum of 295 damage to 'Darmanitan - Galarian Standard Mode'.
'Rock Tomb' for a minimum of 17 damage and a maximum of 297 damage to 'Darmanitan - Galarian Standard Mode'.
'Giga Impact' for a minimum of 19 damage and a maximum of 368 damage to 'Darmanitan - Galarian Standard Mode'.
'Brick Break' for a minimum of 21 damage and a maximum of 370 damage to 'Darmanitan - Galarian Standard Mode'.
'Rock Slide' for a minimum of 21 damage and a maximum of 370 damage to 'Darmanitan - Galarian Standard Mode'.
'Flame Charge' for a minimum of 22 damage and a maximum of 372 damage to 'Darmanitan - Galarian Standard Mode'.
'Flame Wheel' for a minimum of 26 damage and a maximum of 445 damage to 'Darmanitan - Galarian Standard Mode'.
'Fire Fang' for a minimum of 28 damage and a maximum of 482 damage to 'Darmanitan - Galarian Standard Mode'.
'Hammer Arm' for a minimum of 27 damage and a maximum of 492 damage to 'Darmanitan - Galarian Standard Mode'.
'Stone Edge' for a minimum of 27 damage and a maximum of 492 damage to 'Darmanitan - Galarian Standard Mode'.
'Fire Punch' for a minimum of 31 damage and a maximum of 555 damage to 'Darmanitan - Galarian Standard Mode'.
'Superpower' for a minimum of 31 damage and a maximum of 590 damage to 'Darmanitan - Galarian Standard Mode'.
'Focus Punch' for a minimum of 39 damage and a maximum of 737 damage to 'Darmanitan - Galarian Standard Mode'.
'Flare Blitz' for a minimum of 47 damage and a maximum of 885 damage to 'Darmanitan - Galarian Standard Mode'.
# Either the attacking pokemon doesn't learn any moves or all moves deal 0 damage
$ ./attack_damage Smeargle Passimian 'Ultra Moon'
In 'Pokemon Ultra Moon', 'Smeargle' can't attack 'Passimian'.
following are a selection of error conditions and their corresponding error messages that your script be able to handle:
$ ./attack_damage Aipom Fluffluff 'Heart Gold' 'Fluffluff' isn't a Pokemon that exists. $ ./attack_damage Grumpig Grumpig 'Glass' 'Pokemon Glass' isn't a game in the Pokemon series. $ ./attack_damage Cacturne Grumpig 'Red' 'Cacturne' doesn't appear in 'Pokemon Red'.
Arguments should be checked in the order shown above.
ie.
First check that the first pokemon exsits,
then check that the second pokemon exists,
then check that the game exists,
then check that the first pokemon appears in the game,
then check that the second pokemon appears in the game.