Powiekszanie ogona w "snake-u"
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

Powiekszanie ogona w "snake-u"

AutorWiadomość
Temat założony przez niniejszego użytkownika
Powiekszanie ogona w "snake-u"
» 2018-06-13 22:49:57
Witam. Mam problem z okodowaniem snake'a w taki sposob, aby przy kazdym zjedzonym owocu, jego ogon rosl o jedno pole i jednoczesnie byl interaktywna czescia gry (nie tylko graficzna reprezentacja) tzn. ze kiedy glowa znajdzie sie w miejscu ogona to gra powinna odpowiednio zareagowac. Drugim i rownie waznym problemem jest to, aby ogon sie nie bugowal przy scianie (pozostawia 'x', a nie powinno tak byc). Prosilbym o jakas porade jak sie do tego zabrac, bo na ta chwile jestem w stanie rozudowac ogon tylko do 2 jednostek. Z gory dziekuje.

C/C++
int main()
{
    int x = 9, y = 6, jablkox[ 50 ], jablkoy[ 50 ], punkty = 1;
    char znak;
    cout << "Nacisnij dowolny klawisz, aby rozpoczac!" << endl;
    getch();
   
    while( true )
    {
        int kierunek = 4, i = 0;
        x = 9;
        y = 6; //Ustawienia poczatkowe
        generuj_pole();
        generuj_owoce( jablkox, jablkoy, 50 );
        gotoxy( jablkox[ 0 ], jablkoy[ 0 ] );
        cout << "X";
        for(;; )
        {
            switch( kierunek )
            {
            case 1:
                gotoxy( x, y + punkty );
                break;
            case 2:
                gotoxy( x, y - punkty );
                break; //USUWANIE POZOSTALOSCI PO WEZU
            case 3:
                gotoxy( x + punkty, y );
                break;
            case 4:
                gotoxy( x - punkty, y );
                break;
            }
            cout << " ";
           
            gotoxy( x, y );
            cout << "x";
           
            if(( x == jablkox[ i ] && y == jablkoy[ i ] ) )
            {
                gotoxy( jablkox[ i + 1 ], jablkoy[ i + 1 ] );
                cout << "X";
                punkty++;
                i++;
                gotoxy( x, y );
            }
           
            if( kbhit() )
            {
                znak = getch();
                switch( znak )
                {
                    //MALE LITERY
                case 'w':
                    kierunek = 1; break;
                case 's':
                    kierunek = 2; break;
                case 'a':
                    kierunek = 3; break;
                case 'd':
                    kierunek = 4; break;
                    //DUZE LITERY
                   
                case 'W':
                    kierunek = 1; break;
                case 'S':
                    kierunek = 2; break;
                case 'A':
                    kierunek = 3; break;
                case 'D':
                    kierunek = 4; break;
                }
            }
           
            switch( kierunek )
            {
            case 1:
                y--; break;
            case 2:
                y++; break;
            case 3:
                x--; break;
            case 4:
                x++; break;
            }
           
           
            gotoxy( x, y );
            cout << "x";
           
            if( !sprawdz( x, y ) )
                 break;
           
            Sleep( 300 );
        }
    }
    return 0;
}
P-171552
» 2018-06-14 00:34:32
Gdzieś musisz przechowywać informacje, na których polach znajduje się ogon węża.
P-171553
« 1 »
 Strona 1 z 1