Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.11.2010, 01:42
Contemplator вне форума Посмотреть профиль Отправить личное сообщение для Contemplator Найти все сообщения от Contemplator
  № 1  
Ответить с цитированием
Contemplator
 
Аватар для Contemplator

Регистрация: Nov 2009
Сообщений: 425
По умолчанию замена элементов N'мерного массива N'мерным массивом меньшей размерности...

Собственно... алгоритм какой у такого рода манипуляций? хотя б на примере замены части элементов двумерного массива элементами другого двумерного массива меньшей размерности, когда индексы первого элемента, подлежащего замене, известны...
массив A:
[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
массив В:
[[0, 0, 0, 0],
[0, 0, 0, 0]]
массив С (А, с заменёнными элементами):
[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 0, 0, 0, 0, 1, 1, 1],
[1, 1, 1, 0, 0, 0, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]

Старый 09.11.2010, 01:54
HotIceCream вне форума Посмотреть профиль Отправить личное сообщение для HotIceCream Найти все сообщения от HotIceCream
  № 2  
Ответить с цитированием
HotIceCream
 
Аватар для HotIceCream

Регистрация: Oct 2009
Сообщений: 112
Записей в блоге: 1
тоесть нужно встроить в середину?

тогда примерно так
Код AS3:
for (int i=0; i<b.length; i++)
{
for (int j=0; j<b[i].length; j++)
{
a[i+ (a.length- b.length)/2][j +(a[i].length-b[i].length)/2] = b[i][j];
}
}
причем a[(a.length- b.length)/2][(a[0].length-b[0].length)/2] - это первый элемент подлежащий замене. если он находится где то еще и индексы его известны - то соответственно нужно изменить и предыдущие циклы.


Последний раз редактировалось HotIceCream; 09.11.2010 в 01:58.
Старый 09.11.2010, 02:17
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
splice

Старый 09.11.2010, 10:24
f.g.programmer вне форума Посмотреть профиль Отправить личное сообщение для f.g.programmer Найти все сообщения от f.g.programmer
  № 4  
Ответить с цитированием
f.g.programmer
 
Аватар для f.g.programmer

блогер
Регистрация: Sep 2010
Адрес: Россия
Сообщений: 137
Записей в блоге: 3
Подставляет значения из b в a, в указанную позицию. Если нужен новый массив, можно вначале скопировать a.

Код AS3:
var a:Array =	
	[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
	[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
	[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
	[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
var b:Array =
	[[0, 0, 0, 0],
	[0, 0, 0, 0]]
var row:int = 1; // строка вставки
var col:int = 3; // столбец вставки
for (var i:int = 0; i < b.length; i++) {
	for (var j:int = 0; j < b[i].length; j++) {
		var i1:int = i + row;
		var j1:int = j + col;
		// проверяем, что есть куда вставлять
		if ( i1 < a.length && j1 < a[i1].length) {
		    a[i1][j1] = b[i][j];
                }
	}
}
trace(a.join("\n"));

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:53.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:53.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.