我正在努力思考最优雅/简单的方法来做到这一点,也许我有点想太多了。
假设我有一个5x5的整数数组,看起来像这样:
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
还有一个2x2的整数数组,长这样:
5 1
2 3
我想在5x5的数组中选择一个位置,比如[2][2],并将第二个数组的值放入第一个数组中,使其看起来像这样:
0 0 0 0 0
0 0 0 0 0
0 0 5 1 0
0 0 2 3 0
0 0 0 0 0
我的最初想法是在确定要复制的数组的行数/列数后使用for循环,但今天早上我似乎无法想出如何做到这一点。
有什么建议吗?
编辑:
抱歉,这是我目前的做法。只是想知道是否有更好的方法。
实际上这是我正在做的Unity项目中的一部分 - "RoomDoors"是我们较小的数组,而"map"是它要移动到的较大的数组。这是一个随机地图生成器的一部分,需要知道房间瓷砖的哪些“边缘”有门可以连接到其他房间。 RoomDoors存储4个布尔值,每个方向都有一个,告诉我那里是否有门。
roomDoors = previousRoom.GetComponent<RoomDataInterface> ().rooms; //2d array of room/door arrangement in new room
sizeCol = roomDoors.GetLength (0);
sizeRow = roomDoors.GetLength (1);
map [10, 10] = roomDoors [0, 0]; // top left of the room goes in the spot
for (int i = 0; i < sizeCol; i ++){
for (int j = 0; j < sizeRow; j ++) {
map [i + 10,j + 10] = roomDoors[i,j];
}
for
循环怎么样,一个用于列,一个用于行?一些索引检查也可能会有帮助。 - Codor