Witam, mam malutki problem: (ten post juz byl, teraz go spreyzowalem mam nadzieje ze ktos mi pomoze)
mam plik o nazwie mapa.txt w ktorym przetrzymuje mape do mojej gierki
postac pliku:
3 //wymiar X np.3
5 //wymiar Y np.5
000 //wartosci pol
000 //np. jak 0 to oznacza trawe
000 //np. jak 1 to oznacza drzewko
000
000
w funkcji ladowania mapy wczytuje najpier 1 linie do tabX, potem druga do tabY(chyba lepiej bylo by normalnie wczytac to do int)
potem wyciagam wartosc X z tabX i Y z tabY i mam wymiary dla tablicy dynamicznej na moja mape
int **tab;
...i robie tablice...
dodatkowo robie sobie tablice o wymiarach X aby wczytywac linijke z pliku
potem musze ta linijke wpakowac do tablicy 2D
mam nadzieje ze nie zakrecilem...problem w tym ze niby to dobrze dziala ale jak czyta pierwsza linijke to np. powinien do tab2D wpakowac 0 a on wrzuca 1 i nie wiem czemu tak jest.
PS. ponizej zamieszczem kod, i mam jeszcze pytanko jak mam tablice dynamiczna 2d to aby ja usunac wystarczy delete []tab2D czy musze zapuscic petle i usuwac najpier podtablice a potem tablice wskaznikow?
Dzieki za pomoc
// dynamiczne tablice na popranie rozmiaru z pliku
// ustawilem 5 komurek 3 pierwsze sa na rozmiar
// 2 sa na znaki konca lini i przejscia do nowej lini
char *rozmiarX; rozmiarX=new char [5];
if (!rozmiarX) { printf("blad tworzenia tablicyX\n"); }
char *rozmiarY; rozmiarY=new char[5];
if (!rozmiarY) { printf("blad tworzenia tablicyY\n"); }
ifstream mapa; mapa.open("mapa.txt",ios::in);
if (!mapa) { printf("ups\n"); }
mapa.getline(rozmiarX,sizeof(rozmiarX)/sizeof(char));
mapa.getline(rozmiarY,sizeof(rozmiarY)/sizeof(char));
wymiarX+=atoi(&rozmiarX[0]); wymiarY+=atoi(&rozmiarY[0]);
delete [] rozmiarX; delete [] rozmiarY;
tab=new int *[wymiarX];
if (!tab) { printf("nie utworzyl nw\n"); }
else {
for (int i=0;i<wymiarX;i++){
if ((tab[i]=new int [wymiarY])==NULL){
exit(0);
printf("nie utworzyl wymiarY\n");
}
}
}
char *znak;
znak=new char [wymiarX];
int j=0;
while (!mapa.eof()){
mapa.getline(znak,sizeof(znak)+1);
//mapa.getline(znak,sizeof(znak)+1);
for(int i=0;i<wymiarX;i++){
//tab[i][j]=znak[i];
tab[i][j]=atoi(&znak[i]);
}
j++;
//mapa.getline(znak,1);
}
mapa.close();
j=0;