SHOW:
|
|
- or go back to the newest paste.
| 1 | import java.util.*; | |
| 2 | ||
| 3 | class SkyrimAlchemy {
| |
| 4 | private String[][] ingredients = new String [][] {
| |
| 5 | new String[] {"Abecean Longfin", "Weakness to Frost", "Fortify Sneak", "Weakness to Poison", "Fortify Restoration"},
| |
| 6 | new String[] {"Ash Creep Cluster (DB)", "Damage Stamina", "Invisibility", "Resist Fire", "Fortify Destruction"},
| |
| 7 | new String[] {"Ash Hopper Jelly (DB)", "Restore Health", "Fortify Light Armor", "Resist Shock", "Weakness to Frost"},
| |
| 8 | new String[] {"Ashen Grass Pod (DB)", "Resist Fire", "Weakness to Shock", "Fortify Lockpicking", "Fortify Sneak"},
| |
| 9 | new String[] {"Ancestor Moth Wing (DG)", "Damage Stamina", "Fortify Conjuration", "Damage Magicka Regen", "Fortify Enchanting"},
| |
| 10 | new String[] {"Bear Claws", "Restore Stamina", "Fortify Health", "Fortify One-Handed", "Damage Magicka Regen"},
| |
| 11 | new String[] {"Bee", "Restore Stamina", "Ravage Stamina", "Regenerate Stamina", "Weakness to Shock"},
| |
| 12 | new String[] {"Beehive Husk", "Resist Poison", "Fortify Light Armor", "Fortify Sneak", "Fortify Destruction"},
| |
| 13 | new String[] {"Bleeding Crown", "Weakness to Fire", "Fortify Block", "Weakness to Poison", "Resist Magic"},
| |
| 14 | new String[] {"Blisterwort", "Damage Stamina", "Frenzy", "Restore Health", "Fortify Smithing"},
| |
| 15 | new String[] {"Blue Butterfly Wing", "Damage Stamina", "Fortify Conjuration", "Damage Magicka Regen", "Fortify Enchanting"},
| |
| 16 | new String[] {"Blue Dartwing", "Resist Shock", "Fortify Pickpocket", "Restore Health", "Fear"},
| |
| 17 | new String[] {"Blue Mountain Flower", "Restore Health", "Fortify Health", "Fortify Conjuration", "Damage Magicka Regen"},
| |
| 18 | new String[] {"Boar Tusk (DB)", "Fortify Stamina", "Fortify Health", "Fortify Block", "Frenzy"},
| |
| 19 | new String[] {"Bone Meal", "Damage Stamina", "Resist Fire", "Fortify Conjuration", "Ravage Stamina"},
| |
| 20 | new String[] {"Briar Heart", "Restore Magicka", "Fortify Block", "Paralysis", "Fortify Magicka"},
| |
| 21 | new String[] {"Burnt Spriggan Wood (DB)", "Weakness to Fire", "Fortify Alteration", "Damage Magicka Regen", "Slow"},
| |
| 22 | new String[] {"Butterfly Wing", "Restore Health", "Fortify Barter", "Lingering Damage Stamina", "Damage Magicka"},
| |
| 23 | new String[] {"Canis Root", "Damage Stamina", "Fortify One-Handed", "Fortify Marksman", "Paralysis"},
| |
| 24 | new String[] {"Charred Skeever Hide", "Restore Stamina", "Cure Disease", "Resist Poison", "Restore Health"},
| |
| 25 | new String[] {"Chaurus Eggs", "Weakness to Poison", "Fortify Stamina", "Damage Magicka", "Invisibility"},
| |
| 26 | new String[] {"Chaurus Hunter Antennae (DG)", "Damage Stamina", "Fortify Conjuration", "Damage Magicka Regen", "Fortify Enchanting"},
| |
| 27 | new String[] {"Chicken's Egg", "Resist Magic", "Damage Magicka Regen", "Waterbreathing", "Lingering Damage Stamina"},
| |
| 28 | new String[] {"Creep Cluster", "Restore Magicka", "Damage Stamina Regen", "Fortify Carry Weight", "Weakness to Magic"},
| |
| 29 | new String[] {"Crimson Nirnroot", "Damage Health", "Damage Stamina", "Invisibility", "Resist Magic"},
| |
| 30 | new String[] {"Cyrodilic Spadetail", "Damage Stamina", "Fortify Restoration", "Fear", "Ravage Health"},
| |
| 31 | new String[] {"Daedra Heart", "Damage Stamina Regen", "Restore Health", "Damage Magicka", "Fear"},
| |
| 32 | new String[] {"Deathbell", "Damage Health", "Ravage Stamina", "Slow", "Weakness to Poison"},
| |
| 33 | new String[] {"Dragon's Tongue", "Resist Fire", "Fortify Barter", "Fortify Illusion", "Fortify Two-handed"},
| |
| 34 | new String[] {"Dwarven Oil", "Weakness to Magic", "Fortify Illusion", "Regenerate Magicka", "Restore Magicka"},
| |
| 35 | new String[] {"Ectoplasm", "Restore Magicka", "Fortify Destruction", "Fortify Magicka", "Damage Health"},
| |
| 36 | new String[] {"Elves Ear", "Restore Magicka", "Fortify Marksman", "Weakness to Frost", "Resist Fire"},
| |
| 37 | new String[] {"Emperor Parasol Mossv", "Damage Health", "Fortify Magicka", "Regenerate Health", "Fortify Two-Handed"},
| |
| 38 | new String[] {"Eye of Sabre Cat", "Restore Stamina", "Ravage Health", "Damage Magicka", "Restore Health"},
| |
| 39 | new String[] {"Falmer Ear", "Damage Health", "Resist Poison", "Frenzy", "Fortify Lockpicking"},
| |
| 40 | new String[] {"Felsaad Tern Feathers (DB)", "Restore Health", "Fortify Light Armor", "Cure Disease", "Resist Magic"},
| |
| 41 | new String[] {"Fire Salts", "Weakness to Frost", "Restore Magicka", "Resist Fire", "Regenerate Magicka"},
| |
| 42 | new String[] {"Fly Amanita", "Resist Fire", "Fortify Two-handed", "Frenzy", "Regenerate Stamina"},
| |
| 43 | new String[] {"Frost Mirriam", "Resist Frost", "Fortify Sneak", "Ravage Magicka", "Damage Stamina Regen"},
| |
| 44 | new String[] {"Frost Salts", "Weakness to Fire", "Resist Frost", "Restore Magicka", "Fortify Conjuration"},
| |
| 45 | new String[] {"Garlic", "Resist Poison", "Fortify Stamina", "Regenerate Magicka", "Regenerate Health"},
| |
| 46 | new String[] {"Giant Lichen", "Ravage Health", "Weakness to Shock", "Weakness to Poison", "Restore Magicka"},
| |
| 47 | new String[] {"Giant's Toe", "Damage Stamina", "Fortify Health", "Fortify Carry Weight", "Damage Stamina Regen"},
| |
| 48 | new String[] {"Gleamblossom (DG)", "Resist Magic", "Fear", "Regenerate Health", "Paralysis"},
| |
| 49 | new String[] {"Glow Dust", "Damage Magicka", "Damage Magicka Regen", "Fortify Destruction", "Resist Shock"},
| |
| 50 | new String[] {"Glowing Mushroom", "Resist Shock", "Fortify Destruction", "Fortify Smithing", "Fortify Health"},
| |
| 51 | new String[] {"Grass Pod", "Resist Poison", "Ravage Magicka", "Fortify Alteration", "Restore Magicka"},
| |
| 52 | new String[] {"Hagraven Claw", "Resist Magic", "Lingering Damage Magicka", "Fortify Enchanting", "Fortify Barter"},
| |
| 53 | new String[] {"Hagraven Feathers", "Damage Magicka", "Fortify Conjuration", "Frenzy", "Weakness to Shock"},
| |
| 54 | new String[] {"Hanging Moss", "Damage Magicka", "Fortify Health", "Damage Magicka Regen", "Fortify One-Handed"},
| |
| 55 | new String[] {"Hawk Beak", "Restore Stamina", "Resist Frost", "Fortify Carry Weight", "Resist Shock"},
| |
| 56 | new String[] {"Hawk's Egg", "Resist Magic", "Damage Magicka Regen", "Waterbreathing", "Lingering Damage Stamina"},
| |
| 57 | new String[] {"Hawk Feathers", "Cure Disease", "Fortify Light Armor", "Fortify One-Handed", "Fortify Sneak"},
| |
| 58 | new String[] {"Histcarp", "Restore Stamina", "Fortify Magicka", "Damage Stamina Regen", "Waterbreathing"},
| |
| 59 | new String[] {"Honeycomb", "Restore Stamina", "Fortify Block", "Fortify Light Armor", "Ravage Stamina"},
| |
| 60 | new String[] {"Human Flesh", "Damage Health", "Paralysis", "Restore Magicka", "Fortify Sneak"},
| |
| 61 | new String[] {"Human Heart", "Damage Health", "Damage Magicka", "Damage Magicka Regen", "Frenzy"},
| |
| 62 | new String[] {"Ice Wraith Teeth", "Weakness to Frost", "Fortify Heavy Armor", "Invisibility", "Weakness to Fire"},
| |
| 63 | new String[] {"Imp Stool", "Damage Health", "Lingering Damage Health", "Paralysis", "Restore Health"},
| |
| 64 | new String[] {"Jarrin Root", "Damage Health", "Damage Magicka", "Damage Stamina", "Damage Magicka Regen"},
| |
| 65 | new String[] {"Jazbay Grapes", "Weakness to Magic", "Fortify Magicka", "Regenerate Magicka", "Ravage Health"},
| |
| 66 | new String[] {"Juniper Berries", "Weakness to Fire", "Fortify Marksman", "Regenerate Health", "Damage Stamina Regen"},
| |
| 67 | new String[] {"Large Antlers", "Restore Stamina", "Fortify Stamina", "Slow", "Damage Stamina Regen"},
| |
| 68 | new String[] {"Lavender", "Resist Magic", "Fortify Stamina", "Ravage Magicka", "Fortify Conjuration"},
| |
| 69 | new String[] {"Luna Moth Wing", "Damage Magicka", "Fortify Light Armor", "Regenerate Health", "Invisibility"},
| |
| 70 | new String[] {"Moon Sugar", "Weakness to Fire", "Resist Frost", "Restore Magicka", "Regenerate Magicka"},
| |
| 71 | new String[] {"Mora Tapinella", "Restore Magicka", "Lingering Damage Health", "Regenerate Stamina", "Fortify Illusion"},
| |
| 72 | new String[] {"Mudcrab Chitin", "Restore Stamina", "Cure Disease", "Resist Poison", "Resist Fire"},
| |
| 73 | new String[] {"Namira's Rot", "Damage Magicka", "Fortify Lockpicking", "Fear", "Regenerate Health"},
| |
| 74 | new String[] {"Netch Jelly (DB)", "Paralysis", "Fortify Carry Weight", "Restore Stamina", "Fear"},
| |
| 75 | new String[] {"Nightshade", "Damage Health", "Damage Magicka Regen", "Lingering Damage Stamina", "Fortify Destruction"},
| |
| 76 | new String[] {"Nirnroot", "Damage Health", "Damage Stamina", "Invisibility", "Resist Magic"},
| |
| 77 | new String[] {"Nordic Barnacle", "Damage Magicka", "Waterbreathing", "Regenerate Health", "Fortify Pickpocket"},
| |
| 78 | new String[] {"Orange Dartwing", "Restore Stamina", "Ravage Magicka", "Fortify Pickpocket", "Lingering Damage Health"},
| |
| 79 | new String[] {"Pearl", "Restore Stamina", "Fortify Block", "Restore Magicka", "Resist Shock"},
| |
| 80 | new String[] {"Pine Thrush Egg", "Restore Stamina", "Fortify Lockpicking", "Weakness to Poison", "Resist Shock"},
| |
| 81 | new String[] {"Poison Bloom (DG)", "Damage Health", "Slow", "Fortify Carry Weight", "Fear"},
| |
| 82 | new String[] {"Powdered Mammoth Tusk", "Restore Stamina", "Fortify Sneak", "Weakness to Fire", "Fear"},
| |
| 83 | new String[] {"Purple Mountain Flower", "Restore Stamina", "Fortify Sneak", "Lingering Damage Magicka", "Resist Frost"},
| |
| 84 | new String[] {"Red Mountain Flower", "Restore Magicka", "Ravage Magicka", "Fortify Magicka", "Damage Health"},
| |
| 85 | new String[] {"River Betty", "Damage Health", "Fortify Alteration", "Slow", "Fortify Carry Weight"},
| |
| 86 | new String[] {"Rock Warbler Egg", "Restore Health", "Fortify One-Handed", "Damage Stamina", "Weakness to Magic"},
| |
| 87 | new String[] {"Sabre Cat Tooth", "Restore Stamina", "Fortify Heavy Armor", "Fortify Smithing", "Weakness to Poison"},
| |
| 88 | new String[] {"Salmon Roe", "Restore Stamina", "Waterbreathing", "Fortify Magicka", "Regenerate Magicka"},
| |
| 89 | new String[] {"Salt Pile", "Weakness to Magic", "Fortify Restoration", "Slow", "Regenerate Magicka"},
| |
| 90 | new String[] {"Scaly Pholiata", "Weakness to Magic", "Fortify Illusion", "Regenerate Stamina", "Fortify Carry Weight"},
| |
| 91 | new String[] {"Scathecraw (DB)", "Ravage Health", "Ravage Stamina", "Ravage Magicka", "Lingering Damage Health"},
| |
| 92 | new String[] {"Silverside Perch", "Restore Stamina", "Damage Stamina Regen", "Ravage Health", "Resist Frost"},
| |
| 93 | new String[] {"Skeever Tail", "Damage Stamina Regen", "Ravage Health", "Damage Health", "Fortify Light Armor"},
| |
| 94 | new String[] {"Slaughterfish Egg", "Resist Poison", "Fortify Pickpocket", "Lingering Damage Health", "Fortify Stamina"},
| |
| 95 | new String[] {"Slaughterfish Scales", "Resist Frost", "Lingering Damage Health", "Fortify Heavy Armor", "Fortify Block"},
| |
| 96 | new String[] {"Small Antlers", "Weakness to Poison", "Fortify Restoration", "Lingering Damage Stamina", "Damage Health"},
| |
| 97 | new String[] {"Small Pearl", "Restore Stamina", "Fortify One-Handed", "Fortify Restoration", "Resist Frost"},
| |
| 98 | new String[] {"Snowberries", "Resist Fire", "Fortify Enchanting", "Resist Frost", "Resist Shock"},
| |
| 99 | new String[] {"Spawn Ash (DB)", "Ravage Stamina", "Resist Fire", "Fortify Enchanting", "Ravage Magicka"},
| |
| 100 | new String[] {"Spider Egg", "Damage Stamina", "Damage Magicka Regen", "Fortify Lockpicking", "Fortify Marksman"},
| |
| 101 | new String[] {"Spriggan Sap", "Damage Magicka Regen", "Fortify Enchanting", "Fortify Smithing", "Fortify Alteration"},
| |
| 102 | new String[] {"Swamp Fungal Pod", "Resist Shock", "Lingering Damage Magicka", "Paralysis", "Restore Health"},
| |
| 103 | new String[] {"Taproot", "Weakness to Magic", "Fortify Illusion", "Regenerate Magicka", "Restore Magicka"},
| |
| 104 | new String[] {"Thistle Branch", "Resist Frost", "Ravage Stamina", "Resist Poison", "Fortify Heavy Armor"},
| |
| 105 | new String[] {"Torchbug Thorax", "Restore Stamina", "Lingering Damage Magicka", "Weakness to Magic", "Fortify Stamina"},
| |
| 106 | new String[] {"Trama Root (DB)", "Weakness to Shock", "Fortify Carry Weight", "Damage Magicka", "Slow"},
| |
| 107 | new String[] {"Troll Fat", "Resist Poison", "Fortify Two-handed", "Frenzy", "Damage Health"},
| |
| 108 | new String[] {"Tundra Cotton", "Resist Magic", "Fortify Magicka", "Fortify Block", "Fortify Barter"},
| |
| 109 | new String[] {"Vampire Dust", "Invisibility", "Restore Magicka", "Regenerate Health", "Cure Disease"},
| |
| 110 | new String[] {"Void Salts", "Weakness to Shock", "Resist Magic", "Damage Health", "Fortify Magicka"},
| |
| 111 | new String[] {"Wheat", "Restore Health", "Fortify Health", "Damage Stamina Regen", "Lingering Damage Magicka"},
| |
| 112 | new String[] {"White Cap", "Weakness to Frost", "Fortify Heavy Armor", "Restore Magicka", "Ravage Magicka"},
| |
| 113 | new String[] {"Wisp Wrappings", "Restore Stamina", "Fortify Destruction", "Fortify Carry Weight", "Resist Magic"},
| |
| 114 | new String[] {"Yellow Mountain Flower (DG)", "Resist Poison", "Fortify Restoration", "Fortify Health", "Damage Stamina Regen"},
| |
| 115 | }; | |
| 116 | ||
| 117 | SkyrimAlchemy () {
| |
| 118 | String searchMode = "ing"; | |
| 119 | Scanner scanner = new Scanner (System.in); | |
| 120 | System.out.println (" ");
| |
| 121 | ||
| 122 | do {
| |
| 123 | String input = scanner.nextLine (); | |
| 124 | ||
| 125 | if (input.matches ("^quit$")) {
| |
| 126 | scanner = null; | |
| 127 | return; | |
| 128 | }; | |
| 129 | ||
| 130 | if (input.matches ("^setmode .+"))
| |
| 131 | searchMode = input.substring (7).equals ("ing") ? "ing" : "eff";
| |
| 132 | ||
| 133 | else if (searchMode.equals ("ing"))
| |
| 134 | getCompatableIngredients (input); | |
| 135 | else if (searchMode.equals ("eff"))
| |
| 136 | getCompatableEffects (input); | |
| 137 | ||
| 138 | } while (scanner != null); | |
| 139 | }; | |
| 140 | ||
| 141 | String findRealIngredientName (String input) {
| |
| 142 | for (String [] array : ingredients) | |
| 143 | if (array [0].toLowerCase ().equals (input.toLowerCase ()))//.substring (0, input.length () - 1) == input.toLowerCase ()) | |
| 144 | return array [0]; | |
| 145 | ||
| 146 | return "not found"; | |
| 147 | }; | |
| 148 | String findRealEffect (String input) {
| |
| 149 | for (String [] array : ingredients) | |
| 150 | for (int i = 1; i < array.length; i++) | |
| 151 | if (array [i].toLowerCase ().equals (input.toLowerCase ()))//.substring (0, input.length () - 1) == input.toLowerCase ()) | |
| 152 | return array [i]; | |
| 153 | ||
| 154 | return "not found"; | |
| 155 | }; | |
| 156 | String [] getIngredientEffects (String input) {
| |
| 157 | input = findRealIngredientName (input); | |
| 158 | if (input.equals ("not found"))
| |
| 159 | return new String [] {"Not found", "Not found", "Not found", "Not found"};
| |
| 160 | ||
| 161 | for (String[] s: ingredients) | |
| 162 | if (s [0].equals (input)) | |
| 163 | return new String []{s [1], s [2], s [3], s [4]};
| |
| 164 | ||
| 165 | return new String [] {"Not found", "Not found", "Not found", "Not found"};
| |
| 166 | }; | |
| 167 | ||
| 168 | void getCompatableIngredients (String input) {
| |
| 169 | input = findRealIngredientName (input); | |
| 170 | ||
| 171 | if (input.equals ("not found")) {
| |
| 172 | print ("Ingredient not found.");
| |
| 173 | return ; | |
| 174 | }; | |
| 175 | ||
| 176 | String [] ingredientEffects = getIngredientEffects (input); | |
| 177 | HashMap <String, Boolean> compatableIngredients = new | |
| 178 | HashMap <>(); | |
| 179 | ||
| 180 | print ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
| |
| 181 | print (input); //simulate normality of terminal? | |
| 182 | print ("Finding compatable ingredients for " + input);
| |
| 183 | print (String.format ("Ingredients: %s, %s, %s, %s", ingredientEffects [0], ingredientEffects [1], ingredientEffects [2], ingredientEffects [3]));
| |
| 184 | ||
| 185 | for (String arr[]: ingredients) | |
| 186 | for (int i = 1; i < arr.length; ++i) | |
| 187 | for (int j = 0; j < ingredientEffects.length; ++j) | |
| 188 | if (arr [i].equals (ingredientEffects [j])) | |
| 189 | if (compatableIngredients.get (arr [0]) == null) | |
| 190 | compatableIngredients.put (arr [0], Boolean.TRUE); | |
| 191 | ||
| 192 | Object []objs = compatableIngredients.keySet ().toArray (); | |
| 193 | ||
| 194 | if (objs.length == 0) | |
| 195 | print ("None found");
| |
| 196 | else | |
| 197 | for (Object key:objs) | |
| 198 | print (key.toString ()); | |
| 199 | }; | |
| 200 | ||
| 201 | void getCompatableEffects (String effect) {
| |
| 202 | String input = findRealEffect (effect); | |
| 203 | ||
| 204 | if (input.equals ("not found")) {
| |
| 205 | print ("Effect not found.");
| |
| 206 | return ; | |
| 207 | }; | |
| 208 | ||
| 209 | String [] ingredientEffects = getIngredientEffects (input); | |
| 210 | HashMap <String, Boolean> compatableIngredients = new | |
| 211 | HashMap <>(); | |
| 212 | ||
| 213 | print ("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
| |
| 214 | print (input); //simulate normality of terminal? | |
| 215 | print ("Finding compatable effects for " + input);
| |
| 216 | ||
| 217 | for (String arr[]: ingredients) | |
| 218 | for (int i = 1; i < arr.length; ++i) | |
| 219 | for (int j = 0; j < ingredientEffects.length; ++j) | |
| 220 | if (arr [i].toLowerCase ().equals (input.toLowerCase ())) | |
| 221 | if (compatableIngredients.get (arr [0]) == null) | |
| 222 | compatableIngredients.put (arr [0], Boolean.TRUE); | |
| 223 | ||
| 224 | Object []objs = compatableIngredients.keySet ().toArray (); | |
| 225 | ||
| 226 | if (objs.length == 0) | |
| 227 | print ("None found");
| |
| 228 | else | |
| 229 | for (Object key:objs) | |
| 230 | print (key.toString ()); | |
| 231 | }; | |
| 232 | ||
| 233 | void print (String s) {
| |
| 234 | System.out.println (s); | |
| 235 | }; | |
| 236 | ||
| 237 | void print (String [] s) {
| |
| 238 | String raw = ""; | |
| 239 | for (String str : s) | |
| 240 | raw += raw.length() == 0 ? "" : "\t" + str; | |
| 241 | ||
| 242 | print (raw); | |
| 243 | }; | |
| 244 | ||
| 245 | static void main (String []args) {
| |
| 246 | new SkyrimAlchemy (); | |
| 247 | }; | |
| 248 | }; |