Sugestie wzgledem kodu
Ostatnio zmodyfikowano 2016-10-24 21:37
Dev142 Temat założony przez niniejszego użytkownika |
Sugestie wzgledem kodu » 2016-10-22 17:53:00 Witajcie! Moglibyscie pomp mi w znalezc blad logiczny w tym kodzie? to kod na Flappy bird w olimpiadze na oi.edu.pl. Licze na sugestie gdzie jest i jaki logiczny blad https://sio2.mimuw.edu.pl/c/oi24-1/p/fla/ - link do zadania #include <iostream> using namespace std;
int skok; bool wynik = true;
int x, n; int px = 0; int py = 0;
int k[ 1000000 ]; int p[ 1000000 ]; int z[ 1000000 ];
int i = 0; int j = 0; int r = 0; int b = 0;
int main() { cin >> n >> x; for( i = 0; i < n; i++ ) { cin >> k[ i ] >> p[ i ] >> z[ i ]; } for( int i = 0; i <= x; i++ ) { if( px + 1 < k[ i ] ) { if( py + 1 < p[ i ] ) { ++skok; ++py; ++px; } else if( py + 1 == p[ i ] ) { ++skok; ++px; ++py; } else if( py == p[ i ] ) { ++skok; ++px; ++py; } else if(( py + 1 > p[ i ] ) &&( py < z[ i ] ) ) { ++skok; ++py; ++px; } else if(( py > p[ i ] ) &&( py == z[ i ] ) ) { --py; ++px; } else if( py > p[ i ] ) { wynik = false; } } else if( px + 1 == k[ i ] ) { if( py + 1 < p[ i ] ) { ++skok; ++py; ++px; } else if( py + 1 == p[ i ] ) { ++skok; ++px; ++py; } else if( py == p[ i ] ) { ++skok; ++px; ++py; } else if(( py + 1 > p[ i ] ) &&( py < z[ i ] ) ) { ++skok; ++py; ++px; } else if(( py > p[ i ] ) &&( py == z[ i ] ) ) { --py; ++px; } else if( py > p[ i ] ) { wynik = false; } } else if( px == k[ i ] ) { if( py + 1 < p[ i ] ) { ++skok; ++py; ++px; } else if( py + 1 == p[ i ] ) { ++skok; ++px; ++py; } else if( py == p[ i ] ) { ++skok; ++px; ++py; } else if(( py + 1 > p[ i ] ) &&( py < z[ i ] ) ) { ++skok; ++py; ++px; } else if(( py > p[ i ] ) &&( py == z[ i ] ) ) { --py; ++px; } else if( py > p[ i ] ) { wynik = false; } } else if(( px == p[ i ] ) &&( py == p[ i ] ) ) { wynik = false; } else if(( px == p[ i ] ) &&( py == z[ i ] ) ) { wynik = false; } } cout << skok << endl; return 0; Ogolne założenie jest takie aby sprawdzić gdzie jest ptak i przedział czyli luka. Następnie nakierować tam ptaka. Lecz o dziwo ptak wydaje sie isc ciagle w gore. ;/ }[/i][/i] |
|
carlosmay |
» 2016-10-22 20:46:25 Doprowadź go do stanu użyteczności. |
|
Dev142 Temat założony przez niniejszego użytkownika |
W jaki sposób » 2016-10-22 21:01:18 W jaki sposób? Nie mam innego pomysłu aby go stworzyć. Zrobiłem już ponad 20 wersji tego kodu i tylko ten wydaje się najbliższy prawdy. Od tygodnia jedyne co udało mi się wymyślić to zamiana tego przykładu z flappy birded na przedziały liczbowe i odwrócenie tej tabelki o 90 stopni. Następnie w każdym kroku x(długosc trasy) sprawdzamy gdzie znajduje się dany przedział. Jeśli jest na prawo od ptaszka to ptak idzie w prawo (py) itd. |
|
michal11 |
» 2016-10-22 21:04:29 Wstaw kod w znaczniki. Przeczytaj czerwoną ramkę pod pierwszym postem. |
|
mateczek |
» 2016-10-22 21:07:54 no i daj linka do zadania lub jego treść. Skąd ktoś obcy ma wiedzieć co ten kod robi ?? |
|
Dev142 Temat założony przez niniejszego użytkownika |
d » 2016-10-22 23:24:16 Żadnych sugestii? |
|
carlosmay |
» 2016-10-23 00:58:59 Zmienne globalne zło wcielone. Użyj debuggera i odnajdź miejsce, w którym program zachowuje się niezgodnie z oczekiwaniem. |
|
mateczek |
» 2016-10-23 09:06:33 Chłopie opanuj się. Nie każdemu musi się chcieć siedzieć i wymyślać algorytmy, które do niczego być może nie będą mu potrzebne (a nad takim algorytmem zawsze trzeba posiedzieć). A co dopiero analizować taki kod, który jest kodem osoby początkującej w programowaniu i siłą rzeczy zagmatwany nad miarę?? Wracając do merytorycznej oceny zadania. "Zadanie przypomina trochę "pracę z punktu a do punktu b". Nie zależnie jaką drogą przebędzie się praca zawsze i tak będzie taka sama!!! reasumując: A(0 0) B(10 0) wynik zawsze 5 puknięć droga nie ma znaczenia ilość puknięć zależy tylko od punktu startowego i końcowego. |
|
« 1 » 2 |