Feladat: I.150 Korcsoport: - Nehézségi fok: -
Füzet: 2007/január, 34. oldal  PDF  |  MathML 
Témakör(ök): Feladat

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

Egy közlekedési lámpánál N darab (néhány száz) jármű gyűlt össze. A lámpa működési ciklusa alapján 45 másodperc zöld után 15 másodpercig pirosat jelez. Készítsünk programot, amely grafikusan ábrázolja a gépkocsik áthaladását. A járműveket téglalapokként ábrázoljuk, melyeknek szélessége legyen állandó, a hosszuk pedig véletlenszerű. A jármű gyorsulása fordítottan arányos a hosszával. A legrövidebb jármű 2 méteres, és 4 másodperc alatt éri el a 100 km/h sebességet, a leghosszabb 20 méteres, és 1 perc alatt éri el ezt a sebességet. Az első autó a zöld jelzésre indul és maximális gyorsulással éri el a megengedett legnagyobb sebességet (50 km/h). A mögötte álló 1 másodperc elteltével indul, és vagy ugyanúgy gyorsul, mint az előtte levő, vagy lassabban, a saját paramétereinek megfelelően. Ha egy jármű 20 méternél jobban megközelít egy előtte álló autót, akkor azonnal fékez és pontosan 2 méterrel ez előtte haladó mögött áll meg. Ha a féktávolságon belül kap piros jelzést (20 méter), az autó még áthalad, ha nem, akkor pontosan a lámpa vonalában áll meg. Minden kocsi helyzetét minden másodpercben határozzuk meg, és rajzoljuk ki. A lámpán áthaladó jármű mindig eltűnik a grafikus képernyőről, a mögötte állók pedig fokozatosan tűnnek fel, amíg el nem fogy az előre véletlenszerűen meghatározott sor. A képernyőn a lámpa előtt várakozó kocsik kb. a rendelkezésre álló képterület 80%-át töltsék ki, a túlhaladó járművek a maradék 20% helyen látsszanak.
Beküldendő a megfelelően dokumentált forráskód.