Public Group

# snake game array

This topic is 2050 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

I'm having trouble coming up with a solution on how to use an array for my snake game. I have a head which is 20x20 pixels on a 400x400 size window.

int[,] areaGrid = new int[20, 20];

So naturally, there will be 400 "blocks" that the head of the snake plus the tail can occupy. If I could figure out how to place the head of my snake in the grid and move it around, Im sure I could figure out the rest of the code. How would I go about doing this? Would it be easiest to use a method to get the location?

EDIT:

I came up with this

 int[,] areaGrid = new int[rows, columns];

for (int x = 0; x < rows; x++)
{
for (int y = 0; y < columns; y++)
{
areaGrid[x, y] += 20;
Console.WriteLine(areaGrid[x, y]);
}
}


The console write line doesnt work. I just wanted it to make sure that my array was working properly

edit part 2:

just figured out how to view output and it didnt work properly. everything is set to 20

##### Share on other sites

So whats the question? how to use a int[,]? How to assign something in your matrix a value? how to find the position of any given tile?

##### Share on other sites

Lol shouldve added that part. I just want to know how to move my Head object around the array because once I figure that out I could figure out the rest of the game

 Vector2[,] areaGrid = new Vector2[columns, rows];

for (int x = 0; x < columns; x++)
{
for (int y = 0; y < rows; y++)
{
areaGrid[x, y] = new Vector2(x * 20, y * 20);
Console.WriteLine("areaGrid[{0},{1}] = {2}", x, y, areaGrid[x, y]);
}
}


the finished loop

##### Share on other sites

What if you created an array that would contain just the offsets of each piece from the previous piece ?

Say, you have:

struct Offset
{
int x;
int y;
}


Now, create the "Snake" Array:

List <Offset> Snake = new List <Offset> ();

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


And finally, create a method that can Draw the snake at any position:

void DrawSnake (int ScreenXP, int ScreenYP, List <Offset> Snake)
{
foreach (Offset O in Snake)
{
DrawSnakeBitmap (ScreenXP, ScreenYP);
ScreenXP += O.x;
ScreenYP += O.y;
}
}


As an initial Brute-force method, you can create the same method that will erase Snake at the same position, so that you can draw it a new position.

##### Share on other sites

Well before I even think about drawing and creating the tail I want to create the head and movement first. I have the head drawn in the array at [5, 5] which is coords 100, 100 on the grid. I want the head to move 20 pixels at a time which is a new point in the array. So for examply, a movement to the right would place the head at [5, 6] in the array and at 120, 100 on the grid. I just dont know how to do that

1. 1
2. 2
3. 3
Rutin
12
4. 4
5. 5

• 26
• 10
• 9
• 9
• 11
• ### Forum Statistics

• Total Topics
633694
• Total Posts
3013378
×