首页 > 解决方案 > 反向检查列表时数组索引超出范围

问题描述

所以在我之前的问题得到解决后,我去添加更多代码,我一直在尝试查看这里和其他地方,我找不到任何可以解释我的问题的东西,所以有没有办法制作这个代码

for (int j = 0; j < 4; j++) {
    worldX = 0;
    worldY = 0;
    while (worldY != WorldHeight) { 
         while (worldX != WorldWidth) {
             if (worldY > 0) {
                 if (worldX > 0) {
                    if (world[worldX-1, worldY-1] == 1 && genran.Next(genran.Next(genran.Next(-7,-1),genran.Next(0,2)),genran.Next(genran.Next(5,8),genran.Next(9,16))) > 6) { world[worldX, worldY] = 1;}
                    } if ((worldX + 1) < WorldWidth) {
                    if (world[worldX+1, worldY-1] == 1 && genran.Next(genran.Next(genran.Next(-7,-1),genran.Next(0,2)),genran.Next(genran.Next(5,8),genran.Next(9,16))) > 6) { world[worldX, worldY] = 1;}
                 }
             }
             worldX++;
         }
         worldX = 0;
         worldY++;
     }
 }

变成这样的东西

for (int j = 0; j < 4; j++) {
    worldX = WorldWidth;
    worldY = WorldHeight;
    while (worldY >= 0) { 
         while (worldX >= 0) {
             if (worldY > 0) {
                 if (worldX > 0) {
                    if (world[worldX-1, worldY-1] == 1 && genran.Next(genran.Next(genran.Next(-7,-1),genran.Next(0,2)),genran.Next(genran.Next(5,8),genran.Next(9,16))) > 6) { world[worldX, worldY] = 1;}
                    } if ((worldX - 1) > 0) {
                    if (world[worldX+1, worldY-1] == 1 && genran.Next(genran.Next(genran.Next(-7,-1),genran.Next(0,2)),genran.Next(genran.Next(5,8),genran.Next(9,16))) > 6) { world[worldX, worldY] = 1;}
                 }
             }
             worldX--;
         }
         worldX = WorldWidth;
         worldY--;
     }
 }

所以我不想从左上角开始,而是从右下角开始,然后从那里倒退

PS。我对其中的一些还是陌生的。

标签: c#indexoutofboundsexception

解决方案


推荐阅读