Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];

Вниз

Помогите разработать алгоритм   Найти похожие ветки 

 
Ata133 ©   (2004-10-07 16:04) [0]

Есть сетка с цифрами 0-9 изначально в ячейках (каждый раз размер сетки меняется, поэтому храню ее так: "a: Array Of Array Of Byte"). Как мне разбавить эту сетку цифрами "10", причем, чтобы в каждой строке/столбце расстояние между ближайшими "10" было не больше заданного S, а также не было замкнутых областей с обычными цифрами, т.е. чтобы от любой цифры 0-9 в сетке можно было "добраться" (не через "10") к любой другой цифре массива от 0 до 9. К тому же наборы цифр (с "длинной" In [2..S]) по горизонтали/вертикали от одной "10" (или от первого элемента массива) до другой "10" (либо до последнего элемента) не должны повторяться во всем массиве как по горизонтали так и по вертикали.

Вариант есть, но очень уж громоздкий получился. Может кто-нть что-нть подсказать?


 
Ata133 ©   (2004-10-15 11:50) [1]

Удалено модератором


 
palva ©   (2004-10-15 14:35) [2]

Я, правда не мастер, но отзовусь. Может у меня с головой не в порядке, но я ничего не понял.

Что такое сетка, я, кажется догадался, это что-то вроде Grid, а вот дальше... Почему важен метод хранения? В какой момент размеры сетки меняются? Что такое разбавить - это раздвинуть или заменить? Что такое первый элемент массива - какого массива? Что такое расстояние между цифрами 10, если они не на одной вертикали или горизонтали? Что такое "добраться" (не через "10") - типа если десятки стоят по диагонали, то можно преодолеть эту диагональ? Ну и т. д.


 
Ata133 ©   (2004-10-26 16:40) [3]

To: Palva

>> Почему важен метод хранения?
Да не важен собственно, просто много операций с данными, поэтому обрабатываю в памяти в дин.массиве, а после всех операций уже можно хоть на диск записывать.

>> В какой момент размеры сетки меняются.
Только в начале работы процедуры. В процессе - не меняется.

>> Что такое разбавить - это раздвинуть или заменить?
Заменить текущее значение в клетке на "10"

>> Что такое первый элемент массива - какого массива?
В моем случае сетка = двумерному дин.массиву, т.е. здесь - это одно и тоже.

>> Что такое расстояние между цифрами 10, если они не на одной вертикали или горизонтали?
Такое рассотяние не надо учитывать. Меня интересует только по "каждой строке/столбце"...

>> Что такое "добраться" (не через "10")?
Двигаться можно только на клетку вправо, влево, вверх или вниз, т.е. по диагонали - нельзя.

Спасибо за ответ )))


 
Ega23 ©   (2004-10-26 16:49) [4]

А зачем Aray of array of byte?


 
Ata133 ©   (2004-10-27 11:17) [5]

To: Ega23
>> А зачем Aray of array of byte?
Ну я начинающий Delphist, поэтому других способов не знаю. А как еще динамический массив можно создать?


 
TUser ©   (2004-10-27 11:24) [6]


> Что такое сетка, я, кажется догадался, это что-то вроде
> Grid

Наверное, просто 2d массив - array of array of byte


 
Ega23 ©   (2004-10-27 11:35) [7]

Я через TList это всё делал. Индекс вычисляется элементарно, массив - одномерный, проблем - никаких. Вообще написать класс типа матрицы и не париться...


 
Ata133 ©   (2004-10-29 12:24) [8]

To: TUser
ну да... )))

To: Ega23
а вот с этого момента можно поподробнее? )) Как написать класс типа матрицы ?


 
Ata133 ©   (2004-11-01 17:23) [9]

To: Ega23
Ну и как это сделать?


 
Ega23 ©   (2004-11-01 17:34) [10]

Ну как-как.. Сначала определись, что ты хочешь. Каким образом будешь задавать размер? Как загонять данные? Какого типа данные?
И т.п.


 
Ata133 ©   (2004-11-02 09:52) [11]

Размер и S задается с помощью SpinEdit"ов на форме. Больше никаких данных от пользователя не требуется. Тип Byte. Потом нажимается пользователем кнопка "Создать" и запускается процедура, над которой я и бьюсь. Сначала создается 2D массив и заполняется полностью цифрами 0, а вот потом начинается самое интересное. Вообщем, это должен быть в идеале кроссворд только числовой, 10 - обозначают стенки кроссворда, вот мне и надо, чтобы кроссоврд был размером MxN, а длина каждого загаданного числа не больше задаваемого S. Хорошо бы, чтобы еще числа не начинались с 0. ))


 
Ata133 ©   (2004-11-05 17:53) [12]


5  6  7  4  7  2  2 10 ...
0 10  2  4  6 10 10 10 ...
3 10  5  0  3  2  7  1 ...
10  2  8  9 10  0 10  8 ...
10 10  7 10  9 10 10  9 ...
         ...


 
Ata133 ©   (2004-11-11 14:56) [13]

To Ega23:
Ну напиши хоть как "Вообще написать класс типа матрицы и не париться..."


 
Ega23 ©   (2004-11-11 15:13) [14]

egorov@dedal.dubna.ru
Пиши.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.04 c
1-1100338405
OlegL
2004-11-13 12:33
2004.11.28
Quick Report


14-1100075555
}|{yk
2004-11-10 11:32
2004.11.28
Вышел Thunderbird 0.9


14-1100435106
Piter
2004-11-14 15:25
2004.11.28
Запрет автомобилей


3-1098964948
sten
2004-10-28 16:02
2004.11.28
gпопытка подключения к неработаюшему серверу


1-1100256549
TSa
2004-11-12 13:49
2004.11.28
Спрятать приложение в панали задач





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский