2d Arrays possible?

risen_jihad

New Member
Reaction score
10
Does anyone know if 2d arrays are possible? I've tinkered around but from what I've been doing, I don't think it's possible. If there is a way to get this working, it would much appreciated.
 

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,495
Not possible, but you can fake it if you really feel like it.

Assuming something like array[x][y], where x goes from 0 to 3 and y from 0 to 2:

Code:
  x  0  1  2  3
y   -----------
0 |  0  1  2  3
1 |  4  5  6  7
2 |  8  9 10 11

The actual value would be array[x + 4 * y].
 

MoonSlinger

I Love using Cheap Tricks... only Results matters
Reaction score
74
I do not think WE supports 2D arrays but you can use the normal array to emulate a 2D array. :D

Assume you want an array of VariableName[A]. Just create a normal array of VariableName[ A x B ]

To use infomation, use the formula (A-1) x (MaxB) + B
where A represents first reference, B represents the second reference and MaxB is the highest value for B. (A-1) is used because WE arrays start from 1, not 0.

For example,
You wanted an array for abilities called Spells[2][5] to store the abilities used in 2 spell-books each holding 5 abilities each. You would create Spells[10]

To refer to the 2nd spell of the 1st spell-book, it would have been Spells[1][2] on a 2D array. Reference to it from a normal array would be Spells[(1-1) x 5 + 2], or Spells[2]

To refer to the 4th spell of the 2nd spell-book, it would have been Spells[2][4] on a 2D array. Reference to it from a normal array would be Spells[(2-1) x 5 + 4] or Spells[9]

:confused: Understand? :confused:
 

Tt112233

TH.net Regular
Reaction score
6
He probably means that the general convention for any starting value in WE is 1 (One of the reason being that there is no player 0), unlike all other programming languages where it's 0.
 

SFilip

Gone but not forgotten
Reaction score
634
> there is no player 0
There is. Player(0)=Player 1 (red).

> general convention for any starting value in WE is 1
It's 0. For everything.
But the wrapper for Trigger Editor's GUI from some reason add a +1 when calling most things. For example getting the ID of player 3 actually returns 2, but the wrapper function adds 1 to it.
 

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,495
> that the general convention for any starting value in WE is 1

There is no such thing.

> unlike all other programming languages where it's 0.

No, it isn't.


> add a +1 when calling most things.

Most things? What most?
Careful with such general statements that really don't hold in general.
 

MoonSlinger

I Love using Cheap Tricks... only Results matters
Reaction score
74
Seems like I should not generalize.

For GUI users, when creating an array, there is no "0" value for the array, therefore I stated that "WE arrays start from 1"

For Jass, I am a total Noobie, so i do not know anything about that :D

Last: My first respond was late, and AceHart already given the answer, so the problem should be solve ;) Lets not deviate too much in case the thread starter have more questions.
 

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,495
> For GUI users, when creating an array, there is no "0" value for the array

That's the size setting I guess?

Anyway, all arrays have the same size.
And can hold the same number of entries.
And the very first usable index is 0 (the last being 8191).
GUI, JASS, ... no difference.
 

Tt112233

TH.net Regular
Reaction score
6
> that the general convention for any starting value in WE is 1

There is no such thing.

> unlike all other programming languages where it's 0.

No, it isn't.


> add a +1 when calling most things.

Most things? What most?
Careful with such general statements that really don't hold in general.

I am a senior computer engineer and I can say with certainty that the general convention for the starting index of arrays is 0 for almost all programming languages.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top