![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 24
|
дается массив
0 0 0 0 1 1 0 0 1 1 1 0 2 2 3 3 2 0 0 3 на трейс должен выводиться результат, когда указываешь координаты массива допустим 0 то тогда должна выводится: 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 |
|
|||||
|
Непонятно, что вы хотите.
|
|
|||||
|
похоже на решение матрицы из вышки, но я не оч это все помню.
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 24
|
[1, 2, 2, 0], вобщем дается массив. допустим по координатам указываю двоечку то она
[1, 1, 2, 0], должна проверить своих соседей на совпадение [0, 4, 2, 3], допустим 2->0 то она вовращается назад и ищет [4, 4, 2, 3], другой путь 2->2 и идет дальше когда находит [0, 0, 2, 2] совпадение. хочется реализовать это программно .... help |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Алгоритм Ли/волновой алгоритм?
Вообще по-моему с такими обьяснениями - к специалистам другого профиля.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 24
|
Похож на волновой алгоритм но суть заключается в том что числа в массиве ищут путь по себе одинаковым значениям и нужно реализовать это программно
Добавлено через 2 минуты похож на этот алгоритм http://www.gamedev.ru/articles/?id=70121 |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Вам нужна разновидность волнового алгоритма, называемая алгоритмом Ли.
За неуважение к русскому (ну и от лени) напишу не её, а вот это) package { import flash.display.*; public class Main extends Sprite { public function Main():void { var arr:Array = [[1, 2, 2, 0], [1, 1, 2, 0], [0, 4, 2, 3], [4, 4, 2, 3], [0, 0, 2, 2]]; process(arr, 0, 1); for (var i:int = 0; i < arr.length; ++i) { trace(arr[i]); } } public function process(arr:Array, row:int, column:int):void { var w:int = arr.length; var h:int = arr[0].length; var startNum:int = arr[row][column]; for (var i:int = 0; i < w; ++i) { for (var j:int = 0; j < h; ++j) { if (arr[i][j] == startNum) arr[i][j] = 2; else arr[i][j] = 0; } } arr[row][column] = 1; var hasProgress:Boolean = true; var adds:Array = [[-1,0], [0,-1], [1,0], [0,1]]; while (hasProgress) { hasProgress = false; for (i = 0; i < w; ++i) { for (j = 0; j < h; ++j) { for each(var add:* in adds) { var _x:int = i + add[0]; var _y:int = j + add[1]; if (_x >= 0 && _y >= 0 && _x < w && _y < h && arr[i][j] == 2 && arr[_x][_y] == 1) { hasProgress = true; arr[i][j] = 1; } } } } } for (i = 0; i < w; ++i) { for (j = 0; j < h; ++j) { if (arr[i][j] != 1) arr[i][j] = 0; } } } } }
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:09. |
|
|
« Предыдущая тема | Следующая тема » |
|
|