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

Proszę o pomoc w zrozumieniu logiki zadania Flappy Birds.

Object Storage Arubacloud
0 głosów
383 wizyt
pytanie zadane 1 listopada 2016 w C i C++ przez Kenzi Nowicjusz (200 p.)
Witam. Pomyślałem że popróbuję coś z zadaniem z olimpiady, chciałbym zrozumieć dokładnie na czym ma polegać. Jest to zadanie Flappy Birds. Wiem iż na początku ptaszek znajduje się w punkcie 0,0 i że każde stuknięcie w ekran to x+1 oraz y+1 a "nie stuknięcie" x+1 y-1, ale za chiny nie mogę pojąć o co chodzi z trzema wartościami opisującymi przeszkody, proszę o pomoc. Oto link do zadanka: https://sio2.mimuw.edu.pl/c/oi24-1/p/fla/

2 odpowiedzi

0 głosów
odpowiedź 1 listopada 2016 przez Michał Muzyka Pasjonat (24,080 p.)
x to punkt x,
a to punkt w którym zaczyna sie przerwa w przeszkodie

b to punkt w którym kończy się przerwa w przeszkodzie
0 głosów
odpowiedź 1 listopada 2016 przez Sinnley Stary wyjadacz (12,810 p.)

Omówie to na przykładzie z pdfa:

 

Dla danych wejściowych:

4 11

4 1 4

7 -1 2

8 -1 3

9 0 2

 

Pierwsze wprowadzenie, tak jak w pdfie masz wytłumaczone, oznacza a - liczbe przeszkód, b - X, przy którym wygrywasz.

Następnie mamy pętle wczytującą te 3 liczby opisujące przeszkody. Zauważ, że pętla ma tyle iteracji ile jest przeszkód.

Zwróć uwagę, że to co opisujesz to tak naprawdę nie właściwości przeszkód tylko pola w którym tych przeszkód nie ma.

Pierwsza wartość Xi - oposuje pierwszą współrzędną prostej, przez którą ptaszek może przelecieć.

A następne dwie Ai, oraz Bi to drugie współrzędne opisujące położenie punktów będących końcami tych odcinków. Pierwsza współrzędna jest współna i wynosi Xi.

Na podstawie tych wartości wiesz już czy twój flappy bird może przedostać się czy nie.

NP:

Ptaszek znajduje się w punkcie (x,y) = (3,5)

A najbiższa przeszkoda jest charakteryzowana wielkościami

Xi = 4

Ai = 6

Bi = 1

Oznacza to, że jeśli nie chcesz przegrać to kiedy x ptaszka będzie równe Xi, czyli Xi = x, to y ptaszka musi znajdować się pomiędzy wartościami Ai oraz Bi, czyli na odcinku, który nie jest przeszkodą. Poniżej przedstawie funkcje, która ci to lepiej zobrazuje niż słowa.

bool czy_umre(int Ai, int Bi, int y){

   if(Ai<Bi)
     swap(a,b) // ta funkcja zamienia wartosci zmiennych ze sobą. Chodzi o to żeby Ai zawsze bylo większe od Bi, dla wygody.

  
  // y symbolizuje zmienną wysokosci na ktorej znajduje się ptaszek


   if(Ai>y && Bi<y)
      return false;

  else
      return true;

}

 

Jesli cos niejasne - śmiało pisz :)

Podobne pytania

0 głosów
0 odpowiedzi 679 wizyt
pytanie zadane 6 listopada 2017 w C i C++ przez Noyry Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 382 wizyt
pytanie zadane 24 lutego 2021 w C# przez Paxin Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 166 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...