![]() |
Ответ: Массивы
скорее всего у тебя двумерный массив. в таком случае можно воспользоваться проекцией на одномерный. как то так:
size_x - размер поля по горизонтали size_y - размер поля по вертикали a - массив Код:
n = size_x * size_y |
Ответ: Массивы
епть... как все запущенно-то... *многадумаю* надо будет написать туториал по массивам чтоли... да и вообще по основным алгоритмам...
|
Ответ: Массивы
и по BlitzMax напиши, а то я там много чего недопонял.
хелп там не изобилует примерами. А примеры хелпом. |
Ответ: Массивы
Все равно не выходит сделать удаление ячеек можно как нибудь с комментариями для того чтоб хотя бы понять что там происходит?
|
Ответ: Массивы
http://forum.boolean.name/showthread...9439#post99439
Я там немного пописал по теме. Почитайте немножко ту тему по ссылке, может всё станет на свои места. |
Ответ: Массивы
Это я уже знаю меня интересует вопрос перебора и удаления
Вот допустим перебором я могу считать сколько на карте одинаковых элементов For i = 0 To 7 For j = 0 To 7 If Map(i,j)=1 Then img=img+1 next next Каким образом найти рядом стоящие 3 ячейки и удалить их? |
Ответ: Массивы
Petrofan
таксь, от простого к сложному есть масив чисел 1,4,8,2,2,6,3,2,2,2,7,9,1 (размер n, индексы от 0 до n-1) нужно определить есть ли в них три подряд одинаковых числа, если есть то найти индекс (позицию) первого числа из этого ряда записываем базовое условие которое надо проверить : a[i] = a[i+1] = a[i+2] где a это наш масив, i это индекс первого елемента из трёх равных между собой елементов решение задачи - проверить базовое условие для всех елементов масива там где базовое условие выполняется, то по индексу i находится первый из трёх одинаковых елементов базовые слова из решения - проверить условие для всех елементов, тоесть ЦИКЛ ! теперь определимся с границами цикла, если равные первые три то индекс первого елемента будет 0, значит левая граница 0 если равные последние три индекс третего елемента будет n-1, второго елемента n-2, первого елемента n-3 значит у нас цикл от 0 до n-3 basic и подобные языки не позволяют проверять на равенство три числа сразу, потому нам надо чтобы одновременно выполнялись 1=2 и 2=3 вот буква и и есть названием комманды - and (с англ "и") тоесть наше условие теперь выглядит так (a[i] = a[i+1]) and (a[i+1] = a[i+2]) результат будем хранить в переменной i_result пишем наш цикл : 1) первоначальные установки, если трёх подряд елементов нету то мы получим отрицательный индекс Код:
i_result = -1 Код:
for i = 1 to n-3 Код:
if (a[i] = a[i+1]) and (a[i+1] = a[i+2]) then Код:
i_result = i Код:
next Код:
i_result = -1 теперь задача именно тебе, найти индексы первых елементов из трёх равных между собой елементов во всех строках и столбцах 2д масива что у тебя есть ps. я расписал так как сопли вытирают младенцу, пока не поймешь то что я написал то дальше не сможешь ничего сделать |
Ответ: Массивы
У меня двумерный массив заполнен случайными значениями. Я могу это сделать так?
If (Map(i,j) = Map(i+1,j)) And (Map(i+1,j) = Map(i+2,j)) Then i_result = i |
Ответ: Массивы
Petrofan
можешь |
Ответ: Массивы
Вот так работает удаляет три одинаковых по вертикали и по горизонтали ячейки х0-х1-х2 и y0-y1-y2.
For i = 0 To 8-8 For j = 0 To 8-8 If (Map(i,j) = Map(i+1,j)) And (Map(i+1,j) = Map(i+2,j)) Then i_result = i If (Map(i,j) = Map(i,j+1)) And (Map(i,j+1) = Map(i,j+2)) Then j_result = j If i_result = i Then Map(i,j)=0 Map(i+1,j)=0 Map(i+1,j)=0 Map(i+2,j)=0 If j_result = j Then Map(i,j)=0 Map(i,j+1)=0 Map(i,j+1)=0 Map(i,j+2)=0 Next Next Этот метод по моему плохой по вертикали и по горизонтали будет очень много вариантов и все надо будет прописывать. А другого варианта нет? |
Ответ: Массивы
То что есть другие варианты или я неправильно что то делаю ?
|
Ответ: Массивы
наверное не:
Код:
For i = 0 To 8-8 Код:
For i = 0 To 8-3 |
Ответ: Массивы
Да не работает и все хоть волком вой. Эти массивы начинают нервировать.
|
Ответ: Массивы
Код:
Graphics3D 640,480,32,2 |
Ответ: Массивы
HolyDel - а ты умный спасибо за помощь !
|
Часовой пояс GMT +4, время: 03:44. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot