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 18.02.2009 16:42

Массивы
 
Кто нибуть помогире разобратся с массивами какие они сужествуют? Хочу сделать игру 2d логическую суть игры находить 3 или больше одинаковых фигурки тогда они исчезают например стоит 2 алмаза а третий на 1 клетку выше, перемищаем ее в низ происходит обмен фигурок и все 3 удаляються а сверху появляються другие и будто под действием гравитации смещаются ниже. Я думаю что 50 процентов пользователей форума играли в подобную игру. Может кто знает учебник с хорошым разеснением массивов когда поделитесь пожалуйста. Жду от всех помощи!

HolyDel 18.02.2009 16:52

Ответ: Массивы
 
существуют двумерные массивы.

NitE 18.02.2009 17:20

Ответ: Массивы
 
Код:

Arrays are created using the standard BASIC 'Dim' statement, and may be of any number of dimensions. For example:

Dim arr(10)

Creates a one dimensional array called 'arr' with 11 elements numbered 0...10.


Arrays may be of any basic type, or a custom type.

The type of an array is specified using a type tag. For example:

Dim Deltas#(100)

Creates an array called 'Deltas' of 101 floating point elements.

If the type tag is omitted, the array defaults to an integer array.

An array may be dimensioned at more than one point in a program, each time an array is dimensioned, it's previous contents are discarded. Arrays may be dimensioned inside functions, but a corresponding 'Dim' statement of the same array must also appear somewhere in the main program. For example:

Dim test(0,0)

Function Setup( x,y )

Dim test(x,y)

End Function


Petrofan 18.02.2009 18:06

Ответ: Массивы
 
Вложений: 1
For a=1 To 8
For b=1 To 8
DrawImage img,-12+b*64,-24+a*64
Next
Next

Я таким способом заполнил карту, а как сделать хаотическое заполнение разными картинками и обращение к ним?


Вот скрин что получилось

HolyDel 18.02.2009 18:24

Ответ: Массивы
 
Код:

dim el(8,8)
dim img(4)

for i = 1 to 4
img(i)=loadimage(i+".bmp")
next
For a=1 To 8
For b=1 To 8
El(i,j)=rand(1,4);
Next
Next

For a=1 To 8
For b=1 To 8
DrawImage img(El(i,j)),-12+b*64,-24+a*64
Next
Next


NitE 18.02.2009 18:33

Ответ: Массивы
 
ещё rnd() и select

Petrofan 18.02.2009 18:58

Ответ: Массивы
 
Почему все заполняется одной картинкой?
И откуда в єтой строке El(i,j)=Rand(1,5) берется j

HolyDel 18.02.2009 19:03

Ответ: Массивы
 
тьфу. у тебя же a,b а не i,j соответственно.

Petrofan 19.02.2009 11:44

Ответ: Массивы
 
Graphics 800,600,16,0
SetBuffer BackBuffer()
SeedRnd MilliSecs()
Font=LoadFont("",19,0,0,0)
SetFont Font

Dim el(8,8)
Dim img(5)

While KeyDown(1)=0
Cls

For a=1 To 8
For b=1 To 8
;Text -12+b*65,-24+a*65,a
Text 20+b*65,-44+a*65,b
Next
Next

Flip
Wend
End

Вот я попробовал сделать текстом чтобы увидеть что происходит если розкоментировать текст который выводит переменую а и закоментировать текст ... b то видно как заполняется масив.
Вопрос:
Как теперь обращатся к этим ячейкам по имене или числу? Откуда узнать курсору где какая ячейка типа x1y1, x2y1,x3y1..(это я себе так думаю)?

NitE 19.02.2009 15:43

Ответ: Массивы
 
обращятса просто - например
dim shit(2)
shit(1)=15
shit(2)=30

Petrofan 19.02.2009 16:00

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

IGR 19.02.2009 16:38

Ответ: Массивы
 
Цитата:

В массиве 64 элемента.
Как в коде назначить каждому элементу имя.
сам елемент массива может быть у тебя именем !! если неуказовать тип масива то он по умолчанию он целочисленый !!
Код:

dim mydim$(8,8) - строковый
dim mydim#(8,8) - с запятой

For a=1 To 8
For b=1 To 8
mydim(a,b)=str("mycellname"+(a+b)); здесь записуем имя ячейки которая есть ее номером
Next
Next

если нада что бы было и имя и еще номер или сама картинка для каждого елемента масива, то создаем свой тип даных:

Код:

type mytype
field cellname$
field cellnuber%
;.... заносим все что нужно - в елементи списка
end type

теперь создаем масив типа mytype:
Код:

dim mydim.mytype(8,8)
и заполняем !!

avel 19.02.2009 17:07

Ответ: Массивы
 
просвещайсо на здоровье: http://blitzetc.blitzmax.ru/index.ph...дартный_подход

Petrofan 19.02.2009 17:27

Ответ: Массивы
 
Почему на сайте http://blitzetc.blitzmax.ru
пишет Создание В чем проблема?

NitE 19.02.2009 19:13

Ответ: Массивы
 
кодировка не та - Windows-1251


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

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