Я создаю текстовую игру, в которой пользователь может подбирать и бросать предметы, которые он находит в комнате. У меня возникли трудности с тем, чтобы заставить пользователя удалять предметы из своего инвентаря ArrayList.
Это то, что у меня есть для метода удаления элемента:
public boolean dropItem(Command command) {
if(!command.hasSecondWord()) { // if user only types 'drop' we don't know what to drop...
System.out.println("Drop what?");
return false;
}
else {
String commandInput = command.getSecondWord(); // turn item in command into string
String itemString;
for(Item item : pc.getInventory()) { // for every item in player inventory
itemString = item.getName(); // set itemString to name of item
if(itemString.equals(commandInput)){ // check if item matches user input
if(pc.getInventory().contains(item)) {// check inventory contains the item
int i = pc.getInventory().indexOf(item); // get index of item
pc.removeFromInventory(i); // remove item from inventory
pc.getCurrentRoom().addToItems(item); // drop item into room
System.out.println(itemString + " dropped.");
return true;
}
else {
System.out.println(commandInput + " is not in your inventory.");
return false;
}
}
else {
System.out.println(commandInput + " is not in your inventory.");
return false;
}
}
return false;
}
}
Код для методов, вызываемых в приведенном выше коде:
public String getSecondWord(String string) {
String x = string;
String secondWord = x.split(" ")[1];
return secondWord;
}
public void addToInventory(Item item) {
inventory.add(item);
}
public void removeFromInventory(int i) {
inventory.remove(i);
}
public ArrayList<Item> getInventory(){
return inventory;
}
public Room getCurrentRoom() {
return currentRoom;
}
public Item getItem() {
return item;
}
public void emptyItem() {
this.item = null;
}
public void addToItems(Item item) {
items.add(item);
}
Поэтому, если мой пользователь берет напиток, а затем ноутбук и хочет бросить ноутбук, он говорит, что у него нет ноутбука. Они могут только бросить пить. как только напиток уронили, они могут уронить ноутбук.