Я изо всех сил пытаюсь придумать самый элегантный/простой способ сделать это. Возможно, я немного переусердствовал.Копирование меньшего массива в более крупный
Допустим, у меня есть 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
И еще 2х2 массив целых чисел, который выглядит следующим образом:
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 после определения количества строк/столбцов в массиве, который должен быть скопирован, но я не могу понять, как это делается сегодня утром.
Любые предложения?
Edit:
К сожалению, вот так, как я это делаю в данный момент. Просто интересно, есть ли лучший способ.
Это на самом деле часть единства, которую я делаю - «RoomDoors» - это наш меньший массив, а «карта» - это больший массив, в который он перемещается. Это часть генератора случайных карт, который должен знать, какие «края» плиток в комнатах имеют двери на них, которые могут подключаться к другим комнатам. 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];
}
Добро пожаловать на переполнение стека. Извините, но это не очень хороший способ задать вопрос. Вы пробовали _anything_ до сих пор решить вашу проблему? Покажите свои усилия, чтобы люди могли показать их. Пожалуйста, прочитайте [FAQ], [ask] и [help] как начало .. –
Как насчет двух вложенных циклов 'for', один для столбцов и один для строк? Некоторая проверка индекса также может быть полезна. – Codor
Извините, я редактировал свой текущий код в сообщении. –