I am making a roguelike game. I want to represent the map as an array of structs, for example having 256 structs in an array. The map is a 16*16 grid of tiles, and each tile has attributes, such as whether there is an item on top of it.
So say that I want an array of 256 of the struct tiles
:
struct tiles {
char type; /* e.g. dirt, door, wall, etc... */
char item; /* item on top of it, if any */
char enty; /* entity on top of it, e.g. player, orc if any */
}
Then, I need to access an array of that structs something like this:
int main(void)
{
unsigned short int i;
struct tiles[256];
for (i = 1; i <= 256; i++) {
struct tiles[i].type = stuff;
struct tiles[i].item = morestuff;
struct tiles[i].enty = evenmorestuff;
}
}
You need to give your array a name. If an
int
variable looks like:And an array of
int
s looks like:Then an array of
struct tiles
looks like:An array is a variable, just like an integer, so you need to give it a name to access it.
Note: the array has a lowest index of
0
and a highest index of255
, so the for loop should be:for (i = 0; i < 256; ++i)
instead.To declare an array of
struct tiles
just place this before the variable as you do with other types. For an array of 10int
Similarly, to declare an array of 256
struct tiles
To access any member, say
type
, of elements ofarr
you need.
operator asarr[i].type