I am currently working on a small project simulating a game. Each Player object has an inventory which is a HashMap<Item, Integer> where the Integer is the quantity of that Item.
I am currently trying to write a method in the Player class, that allows the player to buy an Item from a Shop, if the Player have enough Coins in their inventory. Each Player starts with 50 Coins in their inventory.
Although, when I am trying to acces the coins in the players inventory (using inventory.get(coins)), I get an "coins cannot be resolved to a variable error".
CONSTRUCTOR
private String name; private HashMap<Item, Integer> inventory; private String location; public Player (String name){ this.name = name; location = "Home"; inventory = new HashMap<>(); Resource coins = new Resource("Coins", 1, 1); Tool pickaxe = new Tool("Pickaxe", 100, 100); Tool axe = new Tool("Axe", 100, 100); Tool shovel = new Tool("Shovel", 100, 100); Crop turnip = new Crop("Turnip", 20, "Spring"); this.inventory.put(coins, 50); this.inventory.put(pickaxe, 1); this.inventory.put(axe, 1); this.inventory.put(shovel, 1); this.inventory.put(turnip, 10); } METHOD THAT FAILS
public void buyItemPierre(Shop pierres, Item item){ if (location.equals("Pierres")){ if (pierres.getForSale().containsKey(item)){ if (inventory.get(**coins**) >= pierres.getForSale().get(item)){ // ERROR HERE } } else{ System.out.println("Sorry, that item is not for sale here"); } } else{ System.out.println("You have to visit Pierres before you can buy anything from there!"); } } I've tried instantiating the objects in the main method, although I get the same error. There must be something that I don't get regarding how to reference objects as keys in a HashMap... How else can I check if the player has enough coins? Thank you in advance!