Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Niepoprawne działanie programu

Ostatnio zmodyfikowano 2012-01-12 14:33
Autor Wiadomość
Marys
Temat założony przez niniejszego użytkownika
Niepoprawne działanie programu
» 2012-01-11 07:27:22
Witam ponownie,
pisze programik generujący labirynt i mam problem. Skorzystałem sobie z algorytmu z tej stronki -> http://www.mazeworks.com/mazegen/mazetut/index.htm i czasami mi się generuje cały labirynt, a czasami nie.

Wygląda to tak, że ustawiamy sobie jakiś index. Na samym początku index dodajmy do stosu CurrentTile i do mapy Visted. Później lecimy z pętlą i tam sprawdzam czy w danej komórce o index jest sąsiad jeśli jest to losujemy sobie kierunek, jeśli nie ma to zdejmujemy ze stosu CurrentTile obecny index i bierzemy poprzedni. Tutaj właśnie wszystko się sypie i nie wiem czemu. Nie zawsze odwiedza wszystkie indexy :/
C/C++
Tile.pushCurrentTile( index );
Tile.pushVisted( index );
while( visted <= height * width - 1 ) {
    if( Tile.neightbor( index ) ) {
        int size = 0, way = 0;
        size = Tile.getSizeWay();
        if( size > 0 ) {
            way = Tile.randomWay();
        } else {
            cout << "Cos jest nie tak :/" << endl;
        }
        Graphics.deleteLine( way, index );
        Tile.pushVisted( Tile.newIndex( index, way ) );
        Tile.pushCurrentTile( Tile.newIndex( index, way ) );
        index = Tile.newIndex( index, way );
        visted++;
    } else {
        Tile.popCurrentTile();
        index = Tile.topCurrentTile();
    }
}
P-47934
Marys
Temat założony przez niniejszego użytkownika
» 2012-01-12 14:33:58
A może po zamknięciu programu coś zostaje w pamięci? Jest w ogóle taka możliwość? Jeśli tak, to jak to wyczyścić?
P-48003
« 1 »
  Strona 1 z 1