Az I. 468. feladat (2018. november) |
I. 468. A Mastermind játék már korábban is előkerült az informatika feladatok között. Most ennek a számjegyes változata szerepel feladatunkban: kitalálandó négy számjegy, amelyek akár egyformák is lehetnek. A játékot egy számítógép ellen játssza az általunk írt program. A számítógép ,,gondol'' négy számra, majd programunk minden lépésben négy számot tippel, válaszként pedig megkapja, hogy hány számjegy van jó helyen és mennyi szerepel még a tippünkből a gondolt számok között rossz helyen. (https://hu.wikipedia.org/wiki/Mastermind#Számjegyesváltozat.)
Az ellenféllel az alábbi formában kommunikálhatunk a kezdés, kérdés és rákérdezés parancsokkal.
művelet | url | válasz |
kezdés | http://localhost/mm/ellenfel.php?muvelet=kezdes | OK |
kérdés | http://localhost/mm/ellenfel.php?muvelet=kerdes&ertek=1234 | 2 1 |
kérdés | http://localhost/mm/ellenfel.php?muvelet=kerdes&ertek=1245 | 0 2 |
rákérdezés | http://localhost/mm/ellenfel.php?muvelet=rakerdezes&ertek=5334 | 4 0 |
A táblázat válasz oszlopában a kérdésnél és a rákérdezésnél a számok között pontosan egy szóköz van. Nem cél, hogy a lehető legkevesebb lépésben jussunk megoldásra, de törekedjünk arra, hogy olyan kérdést ne tegyünk fel, amely ellentmondásban van a korábban kapott válaszokkal.
A feladat megoldásaként a versenykiírásban szereplő eszközökkel elkészíthető alkalmazások mellett más programozási eszközöket, akár webes alkalmazásokat is elfogadunk. Feltétel, hogy a program indítását követően a rákérdezéssel bezárólag ne legyen szükség felhasználói beavatkozásra és a futás során ne igényeljen aktív netkapcsolatot.
Beküldendő egy i468.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ó dokumentáció. Utóbbi a problémamegoldás lényeges elemeire világít rá, valamint tartalmazza, hogy a forrásállomány melyik fejlesztői környezetben fordítható.
Értékelés: 4 pont jár, ha a program szabályos eszközökkel kitalálja a megoldást, további 4 pontot ér, ha a kérdések nincsenek ellentmondásban a korábban kapott válaszokkal. A körültekintően elkészített dokumentáció 2 pontot ér.
A kommunikációra példát adó ellenfel.php fájl letöltése: ellenfel.zip
(10 pont)
A beküldési határidő 2018. december 10-én LEJÁRT.
A megoldók közül ketten Java, ketten Javascript programot írtak. Emellett még Visual Basicben és Pythonban született megoldás.
Majdnem mindenki sikerrel találta ki a gondolt számot, de előfordult, hogy a kommunikáció nem volt szabályos.
Azt, hogy egy kérdés ne legyen ellentmondásban a korábbi válaszokkal, csak a versenyzők fele oldotta meg.
Ezúttal Borus Benedek Pythonban írt megoldását tesszük közé: i468.py
Statisztika:
6 dolgozat érkezett. 10 pontot kapott: Békési Péter, Borus Benedek. 9 pontot kapott: Ürmössy Dorottya. 6 pontot kapott: 1 versenyző. 4 pontot kapott: 1 versenyző. 2 pontot kapott: 1 versenyző.
A KöMaL 2018. novemberi informatika feladatai