Java 使用for循环创建gridmap

Java 使用for循环创建gridmap,java,algorithm,for-loop,Java,Algorithm,For Loop,我已经创建了一个for循环来生成栅格地图。当我点击地图上的每个网格时,我得到了网格的X和Y。当贴图宽度大于贴图长度时,一切正常,但当尝试创建长度大于的贴图时,返回的x变为y,y变为x。在创建地图时,问题出现在第二个for循环中,但我无法解决它 if(mapWidth>mapLength) { for (int i = 0; i < mapWidth * mapLength; i++) { y = i / mapLength; for(int

我已经创建了一个for循环来生成栅格地图。当我点击地图上的每个网格时,我得到了网格的X和Y。当贴图宽度大于贴图长度时,一切正常,但当尝试创建长度大于的贴图时,返回的x变为y,y变为x。在创建地图时,问题出现在第二个for循环中,但我无法解决它

if(mapWidth>mapLength) {
    for (int i = 0; i < mapWidth * mapLength; i++) {
        y = i / mapLength;

        for(int j=0; j<i+1; j++) {
            x = j % mapLength;
        }

        GridPanel gb = new GridPanel(x, y);
        list.add(gb);
        mapPanel.add(gb);
    }
} else if(mapWidth<mapLength) { //problematic map is created after this condition
    for (int i = 0; i < mapWidth * mapLength; i++) {
        x = i / mapLength;  
        for(int j=0; j < i+1; j++){
            y = j % mapLength;
        }

        GridPanel gb = new GridPanel(x, y);
        list.add(gb);
        mapPanel.add(gb);
    }
}
if(mapWidth>mapLength){
对于(int i=0;i对于(int j=0;j嗯,也许我不太理解您的期望,但我认为您不必为
mapWidth
mapleLength的情况设置特殊情况。 此外,除了使用CPU资源之外,我不知道您打算对嵌套循环做什么

    for(int j=0; j<i+1; j++){
        x = j % mapLength;
    }

嗯,也许我不太理解你的期望,但我认为你不必为
mapWidth
mapleLength的情况做特殊的说明。 此外,除了使用CPU资源之外,我不知道您打算对嵌套循环做什么

    for(int j=0; j<i+1; j++){
        x = j % mapLength;
    }

你能试试这个代码吗

for (int i = 0; i < mapWidth * mapLength; i++) {
    y = i / mapLength;
    x = i % mapLength;

    GridPanel gb = new GridPanel(x, y);
    list.add(gb);
    mapPanel.add(gb);
}
for(int i=0;i
您能试试下面的代码吗:

for (int i = 0; i < mapWidth * mapLength; i++) {
    y = i / mapLength;
    x = i % mapLength;

    GridPanel gb = new GridPanel(x, y);
    list.add(gb);
    mapPanel.add(gb);
}
for(int i=0;i
为什么不使用两个循环?
for(int x=0;x
@flkes这只会创建地图的x轴。为什么不使用两个循环?
for(int x=0;x
@flkes很好,这只会创建地图的X轴。不幸的是,我可以从X:0,y:0单击到X:3,X:3,然后其他网格给出错误。线程“AWT-EventQueue-0”中出现异常java.lang.IndexOutOfBoundsException:索引:90,大小:40@PRCube我认为您应该提供更多的代码,因为我认为您提供的代码之外存在问题。不幸的是,我可以从x:0,y:0单击到x:3,x:3,然后其他网格给出错误。线程“AWT-EventQueue-0”中出现异常java.lang.IndexOutOfBoundsException:索引:90,大小:40@PRCube我认为您应该提供更多的代码,因为我认为在您提供的代码之外还有一些问题。