Feladat: I.453 Korcsoport: - Nehézségi fok: -
Füzet: 2018/március, 166 - 167. oldal  PDF  |  MathML 
Témakör(ök): Feladat, Programozás, algoritmusok

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.

Feladatunk egy síkbeli bolyongás szimulációja és az eredményének megmutatása. Egy N×M méretű négyzetháló celláiban egész számok vannak. A cellák jelentős részében a 0, míg néhány cellában a -5 vagy +5 található. Ezeket a cellákat megjelöljük, és a bennük lévő számot rögzítjük, vagyis nem fog változni a szimuláció során. A kezdetben nulla értékű cellák mindegyikéből elindulunk, és egy ideig véletlenszerűen bolyongunk a cellák között, amíg meg nem érkezünk egy megjelölt cellába. Ekkor a kezdetben nulla értékű cella számához hozzáadjuk annak a megjelölt cellának a számát, ahová eljutottunk.
Ezt a bolyongást minden, kezdetben nulla értékű cellából S-szer végezzük el, tehát az ilyen cellák számértéke S-szer fog változni. A bolyongás során minden esetben egy celláról egy vele csúcsban vagy oldalánál érintkező szomszédos cellára lépünk. Ha az S-szeri bolyongást minden nem megjelölt cellára elvégeztük, akkor a szimuláció véget ér. Ekkor minden megjelölt cella értékét megszorozzuk S-sel. Az így kialakult számértékekhez rendeljünk lineárisan egy színskáláról színeket, és a kapott képet jelenítsük meg grafikusan.
A program bemenete a négyzetháló mérete (50N,M100), az egy cellából induló bolyongások száma (50S1000), valamint a nem nulla kezdőértékű cellák száma (1Z100), és soronként egy-egy megjelölt cella koordinátái és -5 vagy +5 értéke.
A feladat megoldásaként a versenykiírásban szereplő eszközökkel elkészíthető alkalmazások mellett a webes vagy mobil applikációkat is elfogadjuk. A bemeneti adatok egyszerű bevitelét az alkalmazás jellegétől függően lehessen megadni.
Beküldendő egy i453.zip tömörített állományban a program forráskódja és a működéséhez szükséges egyéb fájlok, továbbá a hozzá kapcsolódó felhasználói dokumentáció, valamint a leírás, amely tartalmazza, hogy a forrásállomány melyik fejlesztői környezetben fordítható.