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

Dodawanie jednostek do weza

Ostatnio zmodyfikowano 2015-05-16 23:21
Autor Wiadomość
arek213
Temat założony przez niniejszego użytkownika
Dodawanie jednostek do weza
» 2015-05-16 19:03:19
Czy jest ktoś w stanie mi pomóc jak powiększać węża jak natrafi na jedzenie ? Chodzi o ten moment:
if( waz.poz_y == jablko.poz_y && waz.poz_x == jablko.poz_x )

C/C++
#include <iostream>
#include <windows.h>
#include<stdlib.h>
#include<conio.h>
#include<vector>

using namespace std;

class Plansza
{
private:
    char sciana = 219;
   
public:
    char tablica[ 23 ][ 70 ];
   
    void wypelnij()
    {
        for( int i = 0; i < 23; i++ )
        {
            for( int j = 0; j < 70; j++ )
            {
                tablica[ i ][ j ] = 0;
            }
        }
       
       
        for( int j = 0; j < 70; j++ )
        {
            tablica[ 0 ][ j ] = sciana;
        }
       
        for( int i = 1; i < 23; i++ )
        {
            tablica[ i ][ 0 ] = sciana;
            tablica[ i ][ 69 ] = sciana;
        }
       
        for( int j = 0; j < 70; j++ )
        {
            tablica[ 22 ][ j ] = sciana;
        }
    }
    void rysuj() const
    {
        for( int i = 0; i < 23; i++ )
        {
            for( int j = 0; j < 70; j++ )
            {
                cout << tablica[ i ][ j ];
            }
            cout << endl;
        }
    }
};
class Potwor
{
private:
    int wynik = 0;
   
public:
    char znak = 219;
    int poz_x;
    int poz_y;
    // vector <int> tab;
    Potwor( int x, int y )
        : poz_x( x )
         , poz_y( y )
    { };
    void dodaj()
    {
        wynik += 1;
    }
};

class Jedzenie
{
public:
    char znak = '@';
    int poz_x;
    int poz_y;
    Jedzenie( int x, int y )
        : poz_x( x )
         , poz_y( y )
    { };
};

int main()
{
    Plansza mapa;
    Jedzenie jablko( 40, 15 );
    mapa.wypelnij();
    Potwor waz( 30, 20 );
    mapa.tablica[ jablko.poz_y ][ jablko.poz_x ] = jablko.znak;
    mapa.tablica[ waz.poz_y ][ waz.poz_x ] = waz.znak;
    system( "cls" );
    mapa.rysuj();
    for(;; )
    {
        if( getch() == 224 )
        {
            //  mapa.tablica[waz.poz_y][waz.poz_x] = ' ';
            switch( getch() )
            {
            case 80: waz.poz_y++; break;
            case 72: waz.poz_y--; break;
            case 75: waz.poz_x--; break;
            case 77: waz.poz_x++; break;
            }
            if( waz.poz_y == 22 || waz.poz_y == 0 || waz.poz_x == 0 || waz.poz_x == 69 )
            {
                system( "cls" );
                cout << "KONIEC GRY";
                exit( 0 );
            }
            if( waz.poz_y == jablko.poz_y && waz.poz_x == jablko.poz_x )
            {
               
            }
            mapa.tablica[ waz.poz_y ][ waz.poz_x ] = waz.znak;
            system( "cls" );
            mapa.rysuj();
        }
    }
   
    return 0;
}
P-132361
pekfos
» 2015-05-16 20:47:47
Lista elementów węża.
P-132365
arek213
Temat założony przez niniejszego użytkownika
» 2015-05-16 21:08:23
Myślałem nad wektorem lecz nie wie jak to zaimplementować.
P-132367
pekfos
» 2015-05-16 21:17:11
To poszukaj..
P-132372
Quirinnos
» 2015-05-16 23:21:48
Najprościej: robisz sobie listę, czy tam vector, który trzyma elementy węża (współrzędne). Głowa węża to pierwszy element tej listy.
I jeśli pozycja głowy == pozycja jedzenia. To dodajesz element to wektora.
A żeby wyrysować, to możesz przelecieć listę od końca do elementu przed głową i i'temu elementowi przypisać współrzędne i-1.
P-132377
« 1 »
  Strona 1 z 1