• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Prośba o wytłumaczenie elementu kodu w C++

0 głosów
184 wizyt
pytanie zadane 3 maja 2016 w C i C++ przez luthien Nowicjusz (220 p.)

Cześć, w pierwszym przypadku mam taką oto funkcję: 

void displayPathtoPrincess(int n, vector <string> grid){
    int up, left;
    int bot[2], prc[2];
    
    for (int i=0; i<n; i++){
        for(int j=0; j<n; j++){
            if (grid[i][j] == 'm'){
                bot[0] = i;
                bot[1] = j;
            }
            if (grid[i][j] == 'p'){
                prc[0] = i;
                prc[1] = j;
            }
        }
    }
     if ((up = prc[0] - bot[0]) < 0) { for(; up < 0; ++up) cout<<"UP"<<endl;
    } else { for (; up>0; --up) cout<<"DOWN"<<endl;}
    
    if ((left = prc[1] - bot[1]) < 0) { for (; left < 0; ++left) cout<<"LEFT"<<endl;
    } else { for (; left > 0; --left) cout<<"RIGHT"<<endl; }
    
}

Jest to funkcja poruszania się prostego bota w kierunku księżniczki czyli 'prc'. Mógłby ktoś wytłumaczyć czemu w tym if'ie: 

if ((up = prc[0] - bot[0]) < 0)

i w tym: 

if ((left = prc[1] - bot[1]) < 0)

jest taki warunek? dlaczego 'up=' i dlaczego 'mniejsze od 0'? Chyba totalnie go nie rozumiem ;(

1 odpowiedź

+1 głos
odpowiedź 3 maja 2016 przez Criss Mędrzec (171,460 p.)
wybrane 3 maja 2016 przez luthien
 
Najlepsza

Dziwi mnie troche to left zamiast right. Jakby oś x była skierowana w lewo.. Ale nieważne...

Domyślam sie, że prc[0] to wspolrzedna y ksieżniczki i prc[1] to wspołrzędna x. Analogicznie dla bot.

Te przypisania w ifie: 

(up = prc[0] - bot[0]) < 0

Sprawdza czy wartość zmiennej up po przypisaniu jest mniejsza od 0. Jeśli jest mniejsza, to wiadomo, że wsp. y księżniczki jest mniejsza od wsp. y bota. Więc bot musi poruszać się w dół by dojść do księżniczki. Analogicznie w kolejnym ifie.

komentarz 3 maja 2016 przez Criss Mędrzec (171,460 p.)
Cóż.. w cout-cie jest "UP", więc albo to jest symulacja ruchów księżniczki, albo obie osie sią odwrócone.
komentarz 3 maja 2016 przez luthien Nowicjusz (220 p.)
faktycznie na odwrót o.O i dzięki, teraz rozumiem!

Podobne pytania

0 głosów
3 odpowiedzi 530 wizyt
0 głosów
2 odpowiedzi 205 wizyt
Porady nie od parady
Zadając pytanie postaraj się o poprawną pisownię i czytelne formatowanie tekstu.Kompozycja

67,129 zapytań

114,075 odpowiedzi

241,791 komentarzy

47,030 pasjonatów

Przeglądających: 224
Pasjonatów: 14 Gości: 210

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...