При добавлении ключа он отображает добавленный ключ, но затем, когда я набираю инвентарь, он говорит, что рюкзак пуст, а также когда я иду использовать элемент, который он не позволит мне, поскольку его нельзя использовать ,Элементы отображаются, добавляются ключи, но не отображаются в инвентаре
public class Get extends AbstractCommand {
public Get (String name, String description){
super (name, description);
}
@Override
public void execute (Game game, String string) {
Item temp = game.getCurrentRoom().getItem(string);
UserInterface ui = game.getUI();
if(temp == null) ui.println("Item added\n");
else if (!(temp instanceof Moveable)) ui.println("item can not be moved");
else if (!game.getBackpack().add(temp)) ui.println("item can not be moved");
else game.getCurrentRoom().removeItem(temp);
}
}
@Override
public void execute(Game game, String string){
Item itemInBag = game.getBackpack().getItem(string);
Item itemInRoom = game.getCurrentRoom().getItem(string);
if(itemInBag!= null) {
if(itemInBag instanceof Useable){
game.setGameState(((Useable)itemInBag).use(game));
}else game.getUI().println("you can not use item");
}else if(itemInRoom!= null){
if(itemInRoom instanceof Useable){
game.setGameState(((Useable)itemInRoom).use(game));
}else game.getUI().println("this item can not be used");
}else {
game.getUI().println("take the item and use when you need to");
}
}
}
public class Inventory extends AbstractCommand {
public Inventory (String name, String description){
super (name, description);
}
@Override
public void execute (Game game, String string) {
if(((BackpackImpl)game.getBackpack()).getCount()==0) {
game.getUI().println("Backpack is empty");
}else {
for(Item i: game.getBackpack().getItems()) {
game.getUI().println(i.getName());
}
}
}
}
List<Item> items;
int maxCapacity;
public BackpackImpl (int maxCapacity){
this.maxCapacity = maxCapacity;
items = new ArrayList<Item>(5);
}
public BackpackImpl() {
this.maxCapacity = 5;
}
@Override
public boolean add(Item item){
if(items.size()>maxCapacity)
{System.out.println("your backpack canot fit no more\n");
return false;
}
items.add(item);
return true;
}
@Override
public Item remove(String string){
for(Item i: items){
if(((i.getName()).toLowerCase()).equals(string.toLowerCase())) {
items.remove(i);
return i;
}
}
return null;
}
@Override
public Item getItem(String string){
for(Item i: items){
if(((i.getName()).toLowerCase()).equals(string.toLowerCase())) {
return i;
}
}
return null;
}
@Override
public int getCapacity(){
return maxCapacity;
}
@Override
public List<Item> getItems(){
return items;
}
public int getCount(){
return items.size();
}
public void clear(){
items.clear();
}
}
Это замечательно, что он добавляет и удаляет большое спасибо, но теперь мой пункт использования не работает, извините, что это боль, мой проект для колледжа, и он должен быть во вторник. Любые предложения :-) – user3211616
Я всю ночь пытался выяснить это :-(u - спасатель жизни – user3211616
Чтобы подтвердить, что ваш код делает то, что вы думаете, добавляет инструкцию печати, например 'System.out.println (" Здесь »)' на каждом шаге (поэтому вы также должны часто использовать '{}': вы можете добавить инструкцию печати без изменения чего-либо еще). Добавьте переменные в print-statement, чтобы убедиться, что они соответствуют вашим ожиданиям. это в основном ручная отладка: ваша IDE должна быть в состоянии предоставить вам такую же информацию при запуске вашей программы в режиме отладки. – vanOekel