Az I. 450. feladat (2018. február) |
I. 450. A képen látható egyszemélyes ,,játékot'' bárki megvásárolhatja. A játék hat, teljesen egyforma, közös tengelyen elhelyezett ,,hengerből'' áll, amelyek palástja pontosan ugyanannyi részre oszlik. Az első, a harmadik, az ötödik és a hatodik henger minden helyen számjegyeket tartalmaz, a második műveleti jeleket, a negyedik pedig relációs jeleket. A hengereket úgy kell elforgatni egymáshoz képest, hogy a kialakuló sorok mindegyikében az első három által mutatott kifejezés és az utolsó két számjegy által alkotott szám között a negyedik helyen szereplő reláció álljon fenn.
Írjunk programot, amely a fenti játék síkbeli változatát valósítja meg. A program indításakor a játékos beállítja a sorok számát, amely 3 és 10 közötti szám lehet. Ezt követően a program véletlenszerűen generál egy kiindulási állapotot, majd megjeleníti az alábbi mintának megfelelően (bal oldali ábra). A generálásnál ügyelnünk kell arra, hogy a feladat megoldható legyen. A játék során a játékos által választott oszlopot (annak tartalmát) eggyel elcsúsztatja a többihez képest. (A kicsúszó elem az ellenkező oldalon megjelenik.) A játék befejeződik, ha a játékosnak sikerül elérnie, hogy minden sorban teljesüljön a reláció (jobb oldali ábra). A játékos a játékot feladhatja, ekkor a programnak meg kell jelenítenie a megoldást.
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.
Beküldendő egy i450.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ó.
Az értékelésben 7 pont jár a feladat leírásának megfelelő megoldásokért, 3 pont pedig a megoldás kifinomultsága, ötletessége, használhatósága alapján kerül kiosztásra.
(10 pont)
A beküldési határidő 2018. március 12-én LEJÁRT.
A feladat kitűzésekor nem gondoltuk, hogy az összes beérkező megoldás más-más eszközzel készül majd el, ami akkor is sok, ha csak 9 versenyző adta le munkáját. (Visual Basic, Python, Java, Xcode (macOS), Lazarus, C++, HTML/Javascript, C#, Android Studio).
A feladat kiírásának megfelelésnél a következő elemeket figyeltük: beállítható-e a méret / véletlenszerű, megoldható kiindulóállapot / az oszlopok minden irányban mozgathatóak / a program felismeri-e a helyes megoldás kialakulását / feladáskor egy helyes megoldást mutat / van-e külön felhasználói dokumentáció vagy a program a kezelőfelületen pótolja-e egy részét (ebben igen megengedőek voltunk) / leírás a fejlesztői környezetről.
A felhasználói dokumentációról a http://progalap.elte.hu/downloads/seged/eTananyag/lecke28lap1.html#hiv6 címen lehet olvasni.
A megoldás kifinomultsága, ötletessége, használhatósága részben pedig a grafikus felület / az egyértelmű, könnyű kezelhetőség / és az összbenyomás ért pontot.
A legjobbak közé tartozott Horcsin Bálint (i450hb.zip) és Ürmössy Dorottya (i450ud.zip) megoldása.
Ami leginkább megközelítette a képen látható számhenger adta lehetőségeket - kibővítve a méretváltoztatással és változatos feladványokkal -, az Zsombó István (i450ZsI.zip) megoldása volt.
Statisztika:
9 dolgozat érkezett. 10 pontot kapott: Horcsin Bálint, Zsombó István. 9 pontot kapott: Békési Péter, Kiss Dániel Márk, Ürmössy Dorottya. 8 pontot kapott: 1 versenyző. 6 pontot kapott: 1 versenyző. 4 pontot kapott: 1 versenyző. 1 pontot kapott: 1 versenyző.
A KöMaL 2018. februári informatika feladatai