我正在制作一个基于Java的简单的基于文本的生存游戏作为我的最终项目。我仍然坚持创建广告资源。今天,我有点工作了(正确添加和删除项目),但是当添加第三种不同类型的项目时,它覆盖了第二项。我不再有这段代码,我的老师帮助“修复它”,现在它甚至不显示库存。试图在ArrayList中组合一个项目的多个实例
主类:
public class SurvivalGame{
//inv
static ArrayList<Item> inv = new ArrayList<Item>();
//items
static Item Water = new Item("Water ", 1);
public static void main(String[] args){
//intro();
addItem(Water);
addItem(Water);
removeItem(Water);
showInv();
}
添加项方法:
public static void addItem(Item item){
for(int i = 0; i < inv.size(); i++){
if(inv.get(i).getName().equals(item.getName())){
inv.get(i).addQuantity();
}
break;
}
System.out.println("Item added: 1 " + item.getName());}
删除项目方法:
public static void removeItem(Item item){
for(int i = 0; i < inv.size(); i++){
if((inv.get(i).getName()).equals(item.getName())){
if((inv.get(i).getQuantity()) == 0){
inv.remove(item);
}
else inv.get(i).minusQuantity();
}
break;
}
System.out.println("Item removed: 1 " + item.getName());}
显示盘存法:
public static void showInv(){
System.out.println("You have the following: ");
for(int i = 0; i < inv.size(); i++)
inv.get(i).showItem();
}
}//(end of class)
项目类:
public class Item{
String name;
int quantity;
public Item(String n, int q){
name = n;
quantity = q;
}
public String getName(){
return name;}
public void addQuantity(){
quantity += 1;}
public void minusQuantity(){
quantity -= 1;}
public int getQuantity(){
return quantity;}
public void showItem(){
System.out.println(getQuantity() + " " + getName());}
}//(end of class)
这可能是一些小的是我俯瞰,所以一些帮助将非常感激!在这方面,我不能再是初学者了,我已经尝试了几次重写。我不知道如何使用列表,所以我宁愿将库存作为一个ArrayList。我考虑让每个项目的每个实例占用自己的“库存槽位”,但这对我来说还不够好。最后,我没有包含Player类,因为它在这里不重要。它不触及库存或物品等。
系统打印添加和删除消息,但不打印库存的内容,因为它最多有两个项目。
与调试器通过步进应该很快发现,当你认为它是没有被叫什么线或不更新什么价值预期。 – NESPowerGlove