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. 209. feladat (2009. március)

I. 209. Készítsük el a ,,MasterMind'' játék táblázatkezelő programmal játszható változatát. A játékról részletesen olvashatunk a

http://egyszervolt.hu/jatek/mastermind.html

oldalon, és ugyanitt ki is próbálhatjuk.

Megoldásunkban a játéktér az ábrán látható szerkezetű legyen, színek helyett az ábécé első hat betűjét használjuk. A játékot két játékos játssza: az egyikük a kigondolt betűsorozatot a 2. sor első 4 cellájába írja, a másik játékos pedig a 4. sortól kezdődően tippelhet.

A tipp helyességét az adott sor E és F oszlopa mutassa. Az E oszlopban azon karakterek száma jelenjen meg, amelyek az adott tipp és a rejtett értékek sorában is ugyanabban az oszlopban vannak. Az F oszlopban pedig az, hogy hány cellában szerepel olyan karakter, ami megtalálható a rejtett listában, de nincs a helyén. A helyes tipp más háttérrel és félkövér karakterekkel jelenjen meg, a tippek számára pontosan 20 sornyi helyet készítsünk elő.

Az élvezetes játék érdekében figyeljünk továbbá arra, hogy az A2:D2 cellák tartalma - helyes bejegyzés esetén - ne legyen látható. (Az elrejtés például a háttérrel egyező szövegszínnel biztosítható.) Az E és az F oszlopokban az értékelés pedig csak akkor jelenjen meg, ha a második játékos formailag helyes tippet adott, azaz mind a 4 cellába beírta a felhasználható karakterek egyikét.

Beküldendő a táblázatkezelő munkafüzet (i209.xls, i209.ods, ...), illetve egy rövid dokumentáció (i209.txt, i209.pdf, ...) amelyben szerepel a megoldáskor alkalmazott táblázatkezelő neve, verziója, valamint a megoldás rövid leírása.

(10 pont)

A beküldési határidő 2009. április 15-én LEJÁRT.


A feladatra több tökéletes és majdnem ugyanennyi lényegi részében helyes megoldás érkezett.

Az alábbiakban közölt megoldási leírás - amely a legtöbb beküldő által használt Excel 2003 programhoz illeszkedik - részben ezek felhasználásával készült.

A kigondolt betűsorozat (A2:D2) láthatóságát – mivel kézzel bejegyzett értékekről van szó – csak feltételes formázással lehetett megoldani. A beküldők többsége cellánként döntött a megjelenítésről.

Az A2 cella esetén a feltétel lehetett: =VAGY(A2="A";A2="B";A2="C";A2="D";A2="E";A2="F") vagy =SZÖVEG.KERES(A2;"ABCDEF")>0

Utóbbi hibát generál akkor, ha nem megfelelő karaktert adunk meg, de feltételes formázás ennek ellenére helyes működik.

Az E és F oszlopokban csak akkor kellett megjeleníteni a találatok számát, ha formailag helyes betűsorozat került az első négy oszlopba. Mivel e cellákat nem kézzel kell kitölteni, így a feladat Ha() függvénnyel és feltételes formázással is megoldható. A feltételes formázás egyszerűbb megoldást nyújt, mivel ekkor a cellákban szereplő képlet egyszerűbben kialakítható.

Az ehhez szükséges függvény például:

=DARABTELI(A4:D4;"A") +DARABTELI(A4:D4;"B") +DARABTELI(A4:D4;"C") +DARABTELI(A4:D4;"D") +DARABTELI(A4:D4;"E") +DARABTELI(A4:D4;"F") <>4

A képlet azt használja ki, hogy az egyes karakterek előfordulási száma összesen ki kell adja a cellák számát.

A mintát megvizsgálva többen felfedezték, hogy az F oszlopban nem látható semmi, ha az ott szereplő érték 0. Ezt a feltételes formázást újabb feltétellel bővítve lehet elérni a legegyszerűbben. Logikus lett volna ezt az E oszlopban is beállítani, azonban ezt az értékelésnél nem vizsgáltuk, mert a feladat szövege és a minta nem adott erre utasítást.

Az E oszlop megfelelő (helyén van) cellájának kitöltése a legegyszerűbben a

=HA(A4=A$2;1;0)+HA(B4=B$2;1;0)+HA(C4=C$2;1;0)+HA(D4=D$2;1;0)

képlettel történhetett.

A képlet azt vizsgálja, hogy az egyes cellák tartalma páronként megegyezik-e.

Az F oszlopban az egyezéseket kellett megtalálni, amelyek nem a helyükön vannak.

=MIN(DARABTELI(A4:D4;"A");DARABTELI(A2:D2;"A")) +MIN(DARABTELI(A4:D4;"B");DARABTELI(A2:D2;"B")) +MIN(DARABTELI(A4:D4;"C");DARABTELI(A2:D2;"C")) +MIN(DARABTELI(A4:D4;"D");DARABTELI(A2:D2;"D")) +MIN(DARABTELI(A4:D4;"E");DARABTELI(A2:D2;"E")) +MIN(DARABTELI(A4:D4;"F");DARABTELI(A2:D2;"F")) -E4

A képlet egy általános sora azt határozza meg, hogy a kigondolt és a tippelt betűsorozatban az adott betű hányszor szerepel. Az adott betű nyilván annyiszor szerepel a tippben -- a helyén vagy másutt -- amennyi a kettő közül a kisebbik érték. Ha ezt az összes karakterre összegezzük, akkor abból levonva az egyezések számát (az E oszlop tartalmát) kapjuk meg az adott cella értékét.

Telitalálat esetén az adott sor első négy cellájának háttérszínét módosítani kellett, ami az adott sor E oszlopbeli értékét vizsgáló feltételes formázással oldható meg.

A tippek helyét 20 sorra kellett elkészíteni. Az értékeléskor csak azt vizsgáltuk, hogy a megoldás felkészült-e legalább 20 sor kezelésére.

A helyesen megoldást beadók közül a feladatot kétféleképpen is megoldó Janosov Milán megoldását tesszük közzé. i209minta.zip


Statisztika:

12 dolgozat érkezett.
10 pontot kapott:Balla Attila, Janosov Milán, Kristóf Tamás.
9 pontot kapott:Englert Péter, Fehér Péter, Pap 999 Dávid.
8 pontot kapott:1 versenyző.
7 pontot kapott:2 versenyző.
6 pontot kapott:2 versenyző.
5 pontot kapott:1 versenyző.

A KöMaL 2009. márciusi informatika feladatai