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

Pierwsza wartość wyrzucona przez pętle

Ostatnio zmodyfikowano 2013-04-02 14:02
Autor Wiadomość
polkom21
Temat założony przez niniejszego użytkownika
Pierwsza wartość wyrzucona przez pętle
» 2013-04-02 13:41:30
Mam taką pętle:

C/C++
int lastay, lastax[ 3 ];
for( int y = 19; y >= 0; y-- )
{
    for( int x = 0; x < 10; x++ )
    {
        if( activemap[ x ][ y ] != 0 )
        {
            lastax[ 0 ] = activemap[ x ][ y ];
            lastax[ 1 ] = activemap[ x + 1 ][ y ];
            lastax[ 2 ] = activemap[ x + 2 ][ y ];
            lastax[ 3 ] = activemap[ x + 3 ][ y ];
            lastay = y;
            std::cout << lastay << std::endl;
        }
    }
}
i potrzebuję tylko pierwszą wartość lastay a wyrzuca za każdym razem 3 i przypisuje mi do wartości tą ostatnią. Próbowałem tablice zastosować i też nie działa. Jak to zrobić? Próbowałem też przerwać pętle ale to mi nie zadziałało.
P-79784
pekfos
» 2013-04-02 13:43:17
break
 w drugiej pętli i, w warunku, w pierwszej.
P-79785
polkom21
Temat założony przez niniejszego użytkownika
» 2013-04-02 13:49:55
 
C/C++
int lastay, lastax[ 3 ];
int tempx;
for( int y = 19; y >= 0; y-- )
{
    for( int x = 0; x < 10; x++ )
    {
        if( activemap[ x ][ y ] != 0 )
        {
            lastax[ 0 ] = activemap[ x ][ y ];
            lastax[ 1 ] = activemap[ x + 1 ][ y ];
            lastax[ 2 ] = activemap[ x + 2 ][ y ];
            lastax[ 3 ] = activemap[ x + 3 ][ y ];
            lastay = y;
            std::cout << lastay << std::endl;
            tempx = x;
            break;
        }
    }
    if( activemap[ tempx ][ y ] != 0 ) break;
   
}
Tak?? Od razu wyrzuca, że program przestał działać jak odpalę.
P-79786
pekfos
» 2013-04-02 13:58:26
Nie tak. Dodaj sobie zmienną, w której zapiszesz, czy już znalazłeś te wartości.
P-79787
polkom21
Temat założony przez niniejszego użytkownika
» 2013-04-02 14:02:42
A czy coś takiego nie powinno działać?
C/C++
int lastay, lastax[ 3 ];
bool czy = false;
for( int y = 19; y >= 0; y-- )
{
    for( int x = 0; x < 10; x++ )
    {
        if( activemap[ x ][ y ] != 0 )
        {
            lastax[ 0 ] = activemap[ x ][ y ];
            lastax[ 1 ] = activemap[ x + 1 ][ y ];
            lastax[ 2 ] = activemap[ x + 2 ][ y ];
            lastax[ 3 ] = activemap[ x + 3 ][ y ];
            if( czy == false )
            {
                lastay = y;
                czy = true;
            }
        }
    }
}
Pokazuje zmienną ale ostatnią czyli 0.

EDIT
Dobra poradziłem sobie już z tym.
P-79788
« 1 »
  Strona 1 z 1