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

[Allegro] Problem Saper

Ostatnio zmodyfikowano 2012-01-23 22:32
Autor Wiadomość
waxx
» 2012-01-19 00:17:46
włącz myślenie i pomyśl.
algorytmów trzeba nauczyć się samemu pisać.

P-48709
DejaVu
» 2012-01-19 00:23:01
Narysuj na karce planszę sapera, postaw 'punkt' na karce w pustym polu i zacznij się zastanawiać co byś robił po kolei na papierze by osiągnąć efekt jaki chcesz. Potem wystarczy przelać pomysł na algorytm :)
P-48710
dawid9406
Temat założony przez niniejszego użytkownika
» 2012-01-20 17:57:16

C/C++
void sprawdz_czy_puste( int x, int y, int zam, int now )
{
    std::cout << x << " " << y << " " << zam << " " << now << std::endl;
    readkey;
    if( x > 0 && x < 10 && y > 0 && y < 10 )
    {
        map[ x ][ y ] = now;
        sprawdz_czy_puste( x + 1, y, zam, now );
        sprawdz_czy_puste( x - 1, y, zam, now );
        sprawdz_czy_puste( x, y + 1, zam, now );
        sprawdz_czy_puste( x, y - 1, zam, now );
    }
   
}
void sprawdz_czy_puste_mysz( int x, int y, int zam, int now )
{
    sprawdz_czy_puste( x / 40, y / 40, zam, now );
}
}

 wartość pierwszego parametru się powtarza tylko cały czas : od właściwej współrzędnej np 5,6,7,8,9,10,8,9,10,8,9,10 reszta parametrów się się nie zmienia
Nie wiem co jest źle
P-48939
dawid9406
Temat założony przez niniejszego użytkownika
» 2012-01-23 22:32:26
Uporałem się wkońcu
kod jak by był komuś przydatny
C/C++
bool odsloniete[ 11 ][ 11 ];
//wypisywanie sąsiednich zer
void sprawdz_czy_puste( int x, int y, int zam, int now )
{
    if( x > 0 & x < 10 & y > 0 & y < 10 )
    {
        if( liczby_bomb[ x ][ y ] == zam && odsloniete[ x ][ y ] == false )
        {
            map[ x ][ y ] = now;
            odsloniete[ x ][ y ] = true;
            sprawdz_czy_puste( x + 1, y, zam, now );
            sprawdz_czy_puste( x - 1, y, zam, now );
            sprawdz_czy_puste( x, y + 1, zam, now );
            sprawdz_czy_puste( x, y - 1, zam, now );
            sprawdz_czy_puste( x - 1, y - 1, zam, now );
            sprawdz_czy_puste( x + 1, y - 1, zam, now );
            sprawdz_czy_puste( x + 1, y + 1, zam, now );
            sprawdz_czy_puste( x - 1, y + 1, zam, now );
        }
        else
        {
            switch( liczby_bomb[ x ][ y ] )
            {
            case 1:
                {
                    map[ x ][ y ] = 4;
                    break;
                }
            case 2:
                {
                    map[ x ][ y ] = 2;
                    break;
                }
            case 3:
                {
                    map[ x ][ y ] = 5;
                    break;
                }
            case 4:
                {
                    map[ x ][ y ] = 7;
                    break;
                }
            }
        }
       
    }
}
}

Dzięki za pomoc
P-49246
1 « 2 »
Poprzednia strona Strona 2 z 2