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. A jenga népszerű szórakoztató társasjáték, amelyet ‐ kevésbé élvezetes formában ‐ akár online is játszhatunk. A játékszabály elérhetősége http://tarsasoznijo.blog.hu/2009/04/14/jenga, az online játék elérhetősége http://hu.freeonlinegames.com/game/jenga. Míg a valóságban nagy szerep jut az ügyességnek, a számítógépes változat inkább logikai játéknak tekinthető. A klasszikus jenga játékkal szemben mi kezdésként emeletből álló tornyot építünk. Az egyes emeletek felülnézetben felváltva mutatják az alábbi (A/B) szerkezetet:
A ledőlés vizsgálatához gondolatban minden jenga elemet bontsunk fel három négyzet alapú hasábra, ezek súlya legyen egységnyi. (Ilyen formában az emeletek közötti szerkezeti különbség eltűnne.) A torony egy hiányos emelet felett dőlhet le. A ledőléshez szükséges állapotot a feladatban úgy definiáljuk, hogy a hiányzó és meglévő elemek találkozásánál lévő ,,alátámasztási'' él hiányos oldalán nagyobb forgatónyomaték lép föl, mint a másikon. A ledőlés vizsgálatát szemlélteti a mellékelt oldalnézeti ábra. Az alsó szint hiányos, az alátámasztási élt ebben a képben a kis kör jelöli. Úgy tekintjük, hogy az egyes elemek tömege a tömegközéppontjukban van. Itt a hiányos oldalon 3 egység a forgatónyomaték (a nehézségi erő 6, az erőkar 0,5 egység), a másik oldalon 7,5 egység a forgatás mértéke (a középső oszlop felett a nehézségi erő 6, az erőkar 0,5 egység, a jobb oldali oszlop felett a nehézségi erő 3, az erőkar 1,5 egység), tehát itt nem dől le a torony. (A számításnál feltettük, hogy a középső szintről egy jenga elem sem hiányzik.) Írjunk programot, amely a hasábok mozgatás-sorozatát vizsgálva megállapítja, hogy melyik lépés eredményeként dől le a torony. A bemenet első sorában az emeletek száma található. Alatta soronként három adat szerepel egy-egy lépés leírásaként. Az első szám megadja, hogy melyik emeletről veszik el az elemet, a második az adott elem helyét írja le (1/2/3), a harmadik pedig az elhelyezés pozícióját (1/2/3) adja meg. A kimenet megadja a lépés sorszámát és a ledőlés okát: ,,az eltávolítás miatt'', ,,az elhelyezés miatt''.
A program első parancssori argumentuma a bemeneti fájl, a második pedig a kimeneti fájl neve legyen. Beküldendő egy tömörített i337.zip állományban a program forráskódja (i337.pas, i337.cpp, ), valamint a program rövid dokumentációja (i337.txt, i337.pdf, ), amely tartalmazza a megoldás rövid leírását, és megadja, hogy a forrásállomány melyik fejlesztői környezetben fordítható. |