forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   Массивы (http://forum.boolean.name/showthread.php?t=7860)

Petrofan 19.02.2009 19:22

Ответ: Массивы
 
Вложений: 1
Я уже такого налепил. Со всех примеров натыкал. Кто хочет может посмотреть сбрасываю архив. Может поможет разобраться с этой задачей, а то я сам ну никак не могу.

NitE 20.02.2009 01:18

Ответ: Массивы
 
если неможешь массивами - делай типами

avel 20.02.2009 03:33

Ответ: Массивы
 
да нафиг тут типы? тут же все элементарно... к тому же с типами ИМХО разобраться тем более сложнее...

Petrofan 20.02.2009 11:55

Ответ: Массивы :SOS:
 
Дайте кто нибудь справочник по массивам я уже всю голову сломал,:wallbash: методом научного тыка делаю!

ABTOMAT 20.02.2009 15:41

Ответ: Массивы
 
http://www.gaps.tstu.ru/win-1251/lab...1251/gl47.html
Отсюда и по порядку.
Всё что там - подходит и для Блица

avel 20.02.2009 20:56

Ответ: Массивы
 
Petrofan почитай ту ссыль, что я тебе дал. ам как раз именно то, что ты делаешь. там и вывод и обработка мыши и прочее...

Petrofan 23.02.2009 12:35

Ответ: Массивы
 
Кто то может скопировать текст по этой ссылке http://blitzetc.blitzmax.ru/index.php/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_% D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0 %B0_%D0%BA%D0%B0%D1%80%D1%82%2C_%D0%BD%D0%B5%D1%81 %D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D 1%8B%D0%B9_%D0%BF%D0%BE%D0%B4%D1%85%D0%BE%D0%B4 и вставить в какой не будь документ и выложить здесь.

Taugeshtu 23.02.2009 12:46

Ответ: Массивы
 
Вложений: 1
Держи, просвящайся:
//я б посоветова осилить работу с массивами в "инкубаторе" (простые строки кода с минимальными выводами результатов и возможностью в рантайме менять параметры чтоб въехать чего и как), а не на каком-то проекте

Petrofan 23.02.2009 13:18

Ответ: Массивы
 
Спасибо за документ!
У меня постепенно все получаться но вот и появилась проблема все выходные за компом сидел и так и не понял как решить задачу:
Каким образом в поле 8х8 вычислять есть ли одинаковые 3 или больше картинки (по вертикали и горизонтали) и если есть уничтожать а с верху добавить новые сдвигая все вниз массива?

Petrofan 24.02.2009 11:33

Ответ: Массивы
 
Кто то может помочь мне в решении задачи которая описана выше или нет?
Прошу отписаться?

jimon 24.02.2009 11:46

Ответ: Массивы
 
Petrofan
для каждого столбца или строки выполняем проход по всем его елементам и делаем что-то типа
Код:

if type = lasttype then
count = count + 1
else
count = 1
endif

if count = 3 then do_something()

(не забываем про первоначальные установки переменных, думаю lasttype сначала надо сделать отличное от всех типов)

смещать елементы можно так, к примеру ищез елементы k (количество) на позиции i в столбце j, считаем что верх столбика это i = 0
тогда прокручиваем цикл
Код:

for z:=0 to i-k
a[z+k] = a[z]
next

for z:= 0 to k
a[z] = newelement()
next

(вроде не ошибся с крайними индексами, пишу утром код в браузере)

идея в том что елементы падают только сверху, потому даже удалая 3 елемента в строке мы должны пройтись по трём столбцам где были эти елементы и сместить там елементы

ps. меня радует что у тебя появляются конкретные проблемы которые тебе не понятны :)
хотя стоит всё же потренироватся на таких чисто логических задачах по работе с матрицами

Petrofan 24.02.2009 13:36

Ответ: Массивы
 
Ты имеешь в виду типы или массивы?
Вот что я сделал (не нуждается в ресурсах)

Код:

Graphics 800,600,32,0
SetBuffer BackBuffer()
SeedRnd MilliSecs()
Font=LoadFont("",32,0,0,0)
SetFont Font

;===========================
Dim Map_Grid(8,8)
Dim Map(8,8)

For I=1 To 8
For J=1 To 8
Map_Grid(I,J)=Rnd(1,4)
Next
Next
;===========================




;===========================
Dim img(5)
For im = 1 To 4
Next
;===========================

While KeyDown(1)=0
Cls

For I=1 To 8
For J=1 To 8
Color 200,0,0
If Map_Grid(i,j)=1 Then Color 0,200,200
If Map_Grid(i,j)=2 Then Color 200,200,0
If Map_Grid(i,j)=3 Then Color 200,0,200
If Map_Grid(i,j)=3 Then Color 0,200,0
Rect 50+I*51,50+J*51,50,50
Next
Next

i = (MouseX())/52-1
j = (MouseY())/52-1
If (i > 0) And (i<9) And (j > 0) And (j < 9) Then
Color 100,100,100
Rect 50+I*51,50+J*51,50,50

Color 200,200,200
Text 0,0,"Image - "+Map_Grid(I,J)
If MouseHit(1) Then

EndIf
EndIf

Text 110,55,i
Text 75,110,j
Flip 1
Wend
End

Может попробуешь добавить сюда то что ты написал.

Petrofan 24.02.2009 18:30

Ответ: Массивы
 
Ну подскажите хотя бы суть как сделать перебор массива языком Blitz3d чтоб находились 3 или больше ячейки и удалялись с массива и записывались другие ячейки. Как это реализовать???
Помогите чтоб я от вас отстал.

ABTOMAT 25.02.2009 01:50

Ответ: Массивы
 
Перебираешь КАЖДУЮ ячейку двумерного массива.
Проверяешь соседние с ней ячейки (т.е. с индексами -1,0;1,0 и 0,-1;0,1) на совпадение с тем же значением ячейки. Если они все равны - то да, все три одинаковые.
Как спустить всё вниз чтобы заполнить образовавшийся промежуток?
В ту ячейку, в которой образовались одинаковые предметы (т.е. её нада удалить), кладёшь значение вышестоящей ячейки. В вышестоящую - значение ещё вышестоящей. Пока не доберёшься до самого верха.
И так все три ячейки, которые ты хочешь удалить.

Вопросы по каждому конкретному пункту пжлст, а не "как сделать всё сразу?"

Petrofan 26.02.2009 17:26

Ответ: Массивы
 
Как этой формулой обменять местами ячейки?
c=a
a=b
b=c

if mousehit(1) then
...
...
endif


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot