目前我有
public void sellAllBut() {
Iterator<String> i = inventory.iterator();
while (i.hasNext()) {
if (!i.next().equalsIgnoreCase("pickaxe")) {
i.remove();
}
}
}
现在它只从inventory.class字符串数组中删除该项。如何添加它以便在删除该项目时,使用inventory.goldCoins + = intvalue添加金额;
我的int值是
//ores
int copperoPrice = 150;
int ironoPrice = 200;
int steeloPrice = 350;
int goldoPrice = 500;
int diamondoPrice = 700;
int pickaxePrice = 500;
并且放入数组的项目是:
String ore = null;
if (oreFind <= 50) {
ore = "Copper ore";
}
if (oreFind >=51) {
if (oreFind <= 70) {
ore = "Iron ore";
}
}
if (oreFind >=71) {
if (oreFind <= 90) {
ore = "Steel ore";
}
}
if (oreFind >=91) {
if (oreFind <= 99) {
ore = "Gold ore";
}
}
if (oreFind == 100) {
ore = "Diamond ore";
}
将字符串值设置为ore后,我使用此行代码将其添加到我的库存字符串数组中:
inventory.addInventory(矿石);
所以例如我的库存可以有:[钻石矿石,金矿石,金矿石]
我能做些什么来为这些中的每一个付出代价并将其放入sellAllBut无效?
答案 0 :(得分:0)
这有点令人困惑,但你不会只是做一些像;
对于每个矿石价格,创建一个具有矿石名称和价格的对象。
然后让每个对象从接口继承。
现在您有一个集合,您可以使用它的名称和LINQ进行搜索。
然后在你的循环中你可以;
public void sellAllBut() {
Iterator<String> i = inventory.iterator();
while (i.hasNext()) {
if (!i.next().equalsIgnoreCase("pickaxe")) {
sellAllBut += ores.where(x => x.name == i).firstOrDefault();
i.remove();
}
}
以上是完全未经测试的,但我认为我正在寻找的方法。如果您需要更多,或者即使这不是您想要的,请告诉我。
修改强>
实际上,您不需要界面。