Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az I. 228. feladat (2009. december)

I. 228. A következő játékot ketten játszhatják. Egy sorba felállítanak páros sok bábut, amelyek mindegyikének ismert a tömege. A játékosok felváltva vesznek el a sor valamelyik végéről egy-egy bábut. Amikor a bábuk elfogynak, a levett bábuk tömegét összeadják és az nyert, akinél az összeg nagyobb.

Készítsük el a játék weblapon játszható változatát. Jelenítsük meg egy lapon a bábuk képét és rajtuk vagy alattuk a bábu tömegét. Ha a felhasználó a kívánt bábura kattint, és az a sor végén található, akkor a program tüntesse el a bábut, tömegét pedig adja hozzá a játékos eredményéhez. Amikor az összes bábu elfogyott, a program nevezze meg a győztest. Az egyik játékos legyen a gép, aki a játékot kezdi.

A játékot 16 bábura kell elkészíteni. A gép stratégiája, amely egyben a nyerés algoritmusa a következő: a kezdő játékos összeadja a páros és a páratlan sorszámú bábuk tömegét és azokból veszi le a sor végén állót, amelyik tömege nagyobb. Egyenlőség esetén mindegy, hogy a páros vagy páratlan sorszámúakat szemeli ki.

A feladat megoldásánál a HTML és a JavaScript elemei használhatók.

Beküldendő az i228.html dokumentum és az esetlegesen szükséges GIF, JPEG vagy PNG formátumú képfájlok, valamint a megoldás rövid dokumentációja (i228.txt vagy i228.pdf) egy i228.zip fájlba tömörítve.

(A feladat alapjául az 1996-os Nemzetközi Informatikai Diákolimpia egyik feladata szolgált.)

(10 pont)

A beküldési határidő 2010. január 11-én LEJÁRT.


A feladatot majd minden megoldó jól megoldotta, több apró figyelmetlenség azonban előfordult.

Mivel a megoldást alapvetően egy html dokumentum adta, fontos, hogy a böngészőbeli megjelenítés korrekt legyen. Örültünk volna, ha a beküldött megoldások érvényes html dokumentumok (ellenőrzés: http://validator.w3.org/ ), azonban erre a feladat szövegében nem utaltunk, így az értékelésből is kimaradt. A megjelenés kapcsán azt figyeltük, hogy a netbookok képernyőjén (1024 képpont széles) és egy átlagos asztali monitoron (1440 képpont széles), valamint a két legelterjedtebb böngészőben (Internet Explorer és Firefox) egyező képet mutasson.

Fontos szempont volt, hogy a program betartsa a bábu levételének szabályát és a művelet eredményét meg is jelenítse mind képben, mind a választott bábuk össztömegében (ez utóbbit legalább a végén). A győztes megnevezése látszólag egyszerű, hiszen a kezdőnek nyerő stratégiája van, azonban nem szabad megfeledkezni a döntetlen lehetőségéről sem.

Az értékelésben a legnagyobb súllyal a nyerő stratégia követése szerepelt, amelyet megfelelőnek ítéltünk akkor is, ha a program az elején döntött a leveendő bábukról, de akkor is, ha minden lépés előtt újra elvégezte az értékelést.

A mintaként Szabó 928 Attila és Balla Attila megoldását közöljük utóbbi nem teljes értékű a megjelenítéssel kapcsolatos hiba miatt, azonban a kivitel és a dokumentáció teljessége miatt mégis mintaként szolgálhat.

Szabo928Attila.zip BallaAttila.zip


Statisztika:

5 dolgozat érkezett.
10 pontot kapott:Barta 111 János, Szabó 928 Attila.
9 pontot kapott:Balla Attila.
8 pontot kapott:1 versenyző.
6 pontot kapott:1 versenyző.

A KöMaL 2009. decemberi informatika feladatai