62,614
社区成员
发帖
与我相关
我的任务
分享
public class Test
{
public static void rise(int[][] map)
{
int height = map.length;
int width = map[0].length;
//原先存在的上移一格,没有考虑越界这种情况
for (int i = 0; i < height - 1; i++)
{
for (int j = 0; j < width; j++)
{
map[i][j] = map[i + 1][j];
}
}
//最后一行随机生成
while (true)
{
int t = 0; //用来记录最后一行1的个数
for (int j = 0; j < width; j++)
{
map[height - 1][j] = (int) (Math.random() * 2);
if (map[height - 1][j] == 1)
{
t++;
}
}
//只有当最后一行不全为0且不全为1时才结束
if (t != 0 && t != width)
{
break;
}
}
}
public static void printMap(int[][] map)
{
for (int i = 0; i < map.length; i++)
{
for (int j = 0; j < map[i].length; j++)
{
System.out.print(map[i][j]);
}
System.out.println();
}
}
public static void main(String[] args)
{
int[][] map = {{0, 0, 0, 0, 0},
{0, 1, 0, 0, 0},
{0, 1, 1, 0, 0},
{0, 1, 1, 1, 0},
{1, 1, 1, 1, 0}};
System.out.println("上涨前");
printMap(map);
System.out.println("上涨后");
rise(map);
printMap(map);
}
}