Witam
Mam następujący problem:
Bawię się w pisanie gierki roguelike korzystając z pomocy tutoriala. Problem pojawia się gdy zwiększam rozmiar tablicy z orginału:
#define MAPA_WYSOKOSC 20
#define MAPA_SZEROKOSC 20
....
int MapaArray[MAPA_WYSOKOSC][MAPA_SZEROKOSC] =
{
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
...
};
do docelowej:
....
#define MAPA_SZEROKOSC 30
....
Oczywiście dodałem odpowiednią ilość elementów do tablicy, ale pojawia się segmentation fault. Próbowałem używac funkcji delete w różnych miejscach ale uzyskiwałem tylko błędy przy kompilacji, dlatego postanowiłem się zwrócić o pomoc.
funkcje korzystające z tablicy wyglądają następująco:
void RysujMape()
{
for( int y = 0; y < MAPA_WYSOKOSC; y++ )
{
move(y,0);
for( int x = 0; x < MAPA_SZEROKOSC; x++ )
{
RysujTile(y,x);
}
}
}
void RysujTile(int x, int y)
{
move(y,x);
switch (MapaArray[y][x])
{
case TILE_TRAWA:
attron(COLOR_PAIR(2));
printw(".");
attroff(COLOR_PAIR(2));
break;
case TILE_SCIANA:
attron(COLOR_PAIR(1));
printw("#");
attroff(COLOR_PAIR(1));
break;
case TILE_PODLOGA:
attron(COLOR_PAIR(1));
printw(".");
attroff(COLOR_PAIR(1));
break;
case TILE_DRZEWO_M:
attron(COLOR_PAIR(2));
printw("t");
attroff(COLOR_PAIR(2));
break;
case TILE_OTW_DRZWI:
attron(COLOR_PAIR(3));
printw("/");
attroff(COLOR_PAIR(3));
break;
case TILE_ZAM_DRZWI:
attron(COLOR_PAIR(3));
printw("+");
attroff(COLOR_PAIR(3));
break;
case TILE_WODA:
attron(COLOR_PAIR(4));
printw("=");
attroff(COLOR_PAIR(4));
break;
case TILE_GORA:
attron(COLOR_PAIR(1));
printw("^");
attroff(COLOR_PAIR(1));
break;
}
}
Co poprawić aby pozbyć się błędu i móc dalej działać??