Я делаю ужасный 2D римейк Minecraft в качестве проекта класса в java, и у меня есть ремесленная скамья (или что бы там ни называлось), и у меня есть оператор if, который проверяет, есть ли у вас одна часть дерева в левом верхнем углу и ничего в другом 3, или если у вас есть один кусок дерева в правом верхнем углу и ничего в другом 3 и т. д.Проверка Java if statement
Следующая инструкция, m, похоже, позволяет вам иметь блок «wood» в нескольких слотах одновременно и все же позволяет вам получить блок «доски». (id1
- id4
представляют собой игровые площадки для скалолазания) 2x2 ремесленная скамья Tile.wood
- деревянный блок, Tile.blank
- это в основном нулевой блок или ничего.
//this if statement is what I need to change maybe?
if ((id1.id == Tile.wood && id2.id == Tile.blank
&& id3.id == Tile.blank && id4.id == Tile.blank) ||
(id1.id == Tile.blank && id2.id == Tile.wood
&& id3.id == Tile.blank && id4.id == Tile.blank) ||
(id1.id == Tile.blank && id2.id == Tile.blank
&& id3.id == Tile.wood && id4.id == Tile.blank) ||
(id1.id == Tile.blank && id2.id == Tile.blank
&& id3.id == Tile.blank && id4.id == Tile.wood)) {
//this code I don't need to change, it works fine
Inventory.inv_result.id = Tile.plank;
Inventory.inv_result.blockNum += 4;
System.out.println("You can have 4 planks");
}
Таким образом, вам снова разрешается иметь только один блок в одном месте, иначе он ничего не сделает.
Как исправить это, поэтому я получаю только блок «доски», если в одном из четырех слотов есть только один «деревянный» блок?
Во-первых, это утверждение 'if' является чудовищным. Вы *** подумали о лучших способах выразить это. Во-вторых, если 'Tile' не является' enum', '==' не будет работать так, как вы ожидаете. В-третьих, укажите, какие условия вы хотите быть правдой, - где конкретно вас волнует, что древесина? – Makoto
Я не вижу здесь вопроса, кроме «... что мне нужно изменить, может быть?» - Я не знаю, что спрашивает ОП. – arcy
Если вам нужен лучший способ сделать эту логику, я предлагаю подсчитать «деревянные» и «пустые» блоки в четырех позициях. В конце вы должны иметь 1 и 3 – arcy