Java 使用for循环创建gridmap
我已经创建了一个for循环来生成栅格地图。当我点击地图上的每个网格时,我得到了网格的X和Y。当贴图宽度大于贴图长度时,一切正常,但当尝试创建长度大于的贴图时,返回的x变为y,y变为x。在创建地图时,问题出现在第二个for循环中,但我无法解决它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
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我认为您应该提供更多的代码,因为我认为在您提供的代码之外还有一些问题。