gpt4 book ai didi

java - 我怎样才能得到一个按钮的数组#/使这个运行更有效

转载 作者:行者123 更新时间:2023-11-29 03:56:41 24 4
gpt4 key购买 nike

我正在制作一个复杂的井字游戏程序,它具有可变的网格大小和玩家数量。但是我的一位 friend 评论说,他们在 64 x 64 的空间中移动后 react 有点慢。我调查了一下,发现了问题,我的程序检查了网格中的每个按钮,看它是否被点击,然后它检查每个玩家,看看是谁移动的。一旦发现两者,它就会继续生活:D。但在处理较大的网格时,这可能需要一些时间。所以我尝试通过放置一些“中断”来修复它,但它们并没有帮助更快地找到它,只是停止寻找更快。

public void actionPerformed(ActionEvent gridButtonClicked) {
for (int i = 0; i < gridButton.length; i++) {
if (gridButtonClicked.getSource() == gridButton[i]) {
for(int a = 0;a < amountOfPlayers;a++){
if(turn == a) {
gridButtonOwner[i] = a + 1;
gridButton[i].setBackground(playerColors[a]);
gridButton[i].setEnabled(false);
System.out.println("Grid " + i + ": " + gridButtonOwner[i]);
break;
}
}
break;
}
}
}

我想知道的是,如果我能得到被点击的按钮的数组编号。比如 gridButtonClicked = gridButton[1],它会返回数字 1,或者如果它等于 gridButton[2],它会返回 2,等等。

  • gridButtonOwner 是一个整型数组,
  • gridButton 是一个 jbutton 数组。

最佳答案

我必须说我不明白循环的必要性。在第一个 for 循环中,您将获得网格按钮 - 但您知道这是什么,因为它是事件源......您可以将 GridButton 的映射存储到 Integer 上以获取位置在你的数组中。为什么要循环查找呢?在第二个循环中,你循环直到 a == turn...这意味着你已经知道 a 是什么,因为它 == turn .您应该能够完全删除循环:

// earlier on: myMap = new HashMap<GridButton, Integer>();
public void actionPerformed(ActionEvent gridButtonClicked) {
GridButton gridButton = gridButtonClicked.getSource();
int i = myMap.get(gridButton);
gridButtonOwner[i] = turn + 1;
gridButton.setBackground(playerColors[turn]);
gridButton.setEnabled(false);
System.out.println("Grid " + i + ": " + gridButtonOwner[i]);
}

关于java - 我怎样才能得到一个按钮的数组#/使这个运行更有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6038035/

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