store values from string in an array

Started by
8 comments, last by Khatharr 10 years, 10 months ago

I have a string:

map = ("1, 1, 1, 1, 1" +
"1, 1, 1, 1, 1" +
"1, 1, 1, 1, 1" +
"1, 1, 1, 1, 1" +
"1, 1, 1, 1, 1");
That I want to store in an array somehow, or be able to store the values of the string in 3 seperate arrays. With these arrays, I'm going to create a map of blocks. I don't know how to set these values though. The x array will be the number of rows, so in this case it will be 5. Eventually I will have bigger maps so I'd need to somehow read the number of lines in the string.
Would it make more sense to store each value in a 3 dimensional array? If I could do that, each value will be something like (3, 1, 2) for the third row and second column with the value 1? How would I do this?

If you see a post from me, you can safely assume its C# and XNA :)

Advertisement

EDIT: Nevermind. I don't know any C#.

Rather than first creating a string and then parsing the contents to create an array, it would probably make more sense to create the array first and generate the string from the array (for example with String.Join()).

Store in a 2D array like this:

int[,] map = new int[,]
{
   { 1, 0, 0, 0, 0},
   { 0, 0, 0, 3, 0},
   { 0, 2, 0, 0, 0},
   { 0, 0, 0, 0, 0},
   { 0, 4, 0, 0, 6},
}

you can access numbers like so:

map[y,x]
 
//E.g
int num1 = map[0,0];
int num2 = map[2,1];
int num3 = map[1,3];
int num4 = map[4,1];
int num6 = map[4,4];

I need to access the value of each character though, not just the position of it in the string

If you see a post from me, you can safely assume its C# and XNA :)

use ints not strings.

I don't know why I never even considered that -.- So how would I get the position of the number in a certain row? Getting the row would probably be easy if there's some kind of method you can use.

If you see a post from me, you can safely assume its C# and XNA :)


const size_t mapStride = 5;
 
size_t calcIndex(size_t row, size_t column) {
  return (row * mapStride) + column;
}
 
size_t calcRow(size_t index) {
  return index / mapStride;
}
 
size_t calcColumn(size_t index) {
  return index % mapStride;
}
void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.

Alright so because I'm always going to know the dimensions of x and z, I've chosen to hard code them into the for loop

for(int x = 0; x < 5; x++)

{

mapCoordsX[x] = x;

}

Same with mapCoordsZ. So the x and z are fine for now, until I want to make a bigger map.

Inside my for loop, I'm creating cubes with a position at each mapCoord like so:

new Vector3(mapCoords[x], (y goes here?), mapCoords[z])

This creates a nice 5x5 grid of cubes for me. Now if the cube at position (0, 0) has a height of 2 in my map array... {2, 0, 0, 0, 0}...how would I set the y position of this cube?


#region MAP
            float[,] map = 
            {
                  {1, 0, 0, 0, 0},
                  {0, 0, 0, 0, 0},
                  {0, 0, 0, 0, 0}, 
                  {0, 0, 0, 0, 0}, 
                  {0, 0, 0, 0, 0}
            };

            #endregion MAP

            for (int x = 0; x < 5; x++)
            {
                mapX[x] = x;
            }

            for (int z = 0; z < 5; z++)
            {
                mapZ[z] = z;
            }

            for (int y = 0; y < map.Length; y++)
            {
                mapY[y] = 0;
            }

            for (int x = 0; x < 5; x++)
            {
                for (int z = 0; z < 5; z++)
                {
                    for (int y = 0; y < 5; y++)
                    {
                        cubes.Add(new Vector3(mapX[x], mapY[y], mapZ[z]), Matrix.Identity, grass);
                    }
                }
            }

There's the full code of what I'm doing. It's also creating 125 cubes instead of 25 but I'll fix that later :P

If you see a post from me, you can safely assume its C# and XNA :)

Wut?

void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.

This topic is closed to new replies.

Advertisement