gpt4 book ai didi

Java if 语句检查

转载 作者:行者123 更新时间:2023-12-02 06:12:45 24 4
gpt4 key购买 nike

我正在制作一个可怕的 Minecraft 2D 重制版,作为 java 中的一个类项目,我有一个制作台东西(或者无论它叫什么),我有一个 if 语句来检查你是否有一 block 木头在左上角,其他 3 个中没有任何内容,或者如果右上角有一 block 木头,其他 3 个中没有任何内容,依此类推...

我使用的以下 if 语句似乎可以让您同时在多个插槽中拥有一个“木” block ,并且仍然可以让您获得“木板” block 。 ( id1 - id4 代表制作台插槽)2x2 制作台 Tile.wood 是一个木 block ,Tile.blank 基本上是一个空 block 或什么都没有。

//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");
}

因此,您一次只能在一个地方拥有一个区 block ,否则将不会执行任何操作。

如果四个插槽之一中只有一个“木” block ,我该如何修复它,以便我只能得到“木板” block ?

最佳答案

if 条件看起来不整洁,但工作得很好。但是,您可以将其模块化以便更好地理解和调试。

创建一些实用方法来为您完成工作,如下所示:

boolean isWood(<id object>) {
if(Tile.wood.equals(<id object>))
return true;
else
return false;
}

boolean isBlank(<id object>) {
if(Tile.blank.equals(<id object>))
return true;
else
return false;
}

void doProcess(){
Inventory.inv_result.id = Tile.plank;
Inventory.inv_result.blockNum += 4;
System.out.println("You can have 4 planks");
}

然后重写你的 if 条件,如下所示

if(isWood(id1.id) && isBlank(id2.id) && isBlank(id3.id) && isBlank(id4.id))
doProcess();
else if(isWood(id2.id) && isBlank(id1.id) && isBlank(id3.id) && isBlank(id4.id))
doProcess();
else if(isWood(id3.id) && isBlank(id2.id) && isBlank(id1.id) && isBlank(id4.id))
doProcess();
else if(isWood(id4.id) && isBlank(id2.id) && isBlank(id3.id) && isBlank(id1.id))
doProcess();

希希尔

关于Java if 语句检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21744679/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com