我正在製作一個基於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