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. 285. feladat (2012. január)

I. 285. Valószínűleg sokan ismerik az általános vagy középiskolából a Logo nyelvet, amelyben érdekes és izgalmas ábrákat készíthetünk egy teknőc irányításával. Az Imagine Logo programozási környezetet minden tanuló és tanár számára szabadon használható és letölthető a http://logo.sulinet.hu oldalról. A feladatunk az lesz, hogy tanítsuk meg a teknőcöt labirintust rajzolni, illetve kitalálni egy labirintusból.

Először rajzoljunk egy véletlen labirintust, melynek minden járata és minden fala 11 egység széles, tehát alapelemként 11×11 méretű fehér (járat) vagy fekete (fal) négyzetekből áll. A labirintust létrehozó labkész :n :m eljárás két paramétere a labirintus négyzeteinek vízszintes és függőleges száma (két páratlan pozitív egész). A labirintus közepe a rajzlap közepére kerüljön, és egy kijáratot tartalmazzon a bal felső sarok alatti négyzet helyén.

A teknőc érzékeli a lapon az adott helye alatti pont színét. Másodszor ennek felhasználásával készítsünk egy elhelyez :n :m eljárást, amely véletlenszerűen elhelyezi a teknőcöt a labirintusba egy járat négyzet közepére úgy, hogy észak felé nézzen, és egy kitalál :n :m eljárást, amely megpróbálja kivezetni a teknőcöt a labirintusból. A teknőc húzzon egy 5 egység vastag színes vonalat, amely mutatja, hogy mely járatokon haladt keresztül, de a négyzeteken belüli apró mozgásoknál a teknőc ne húzzon vonalat. Az eljárás érjen véget, ha a teknőc kiért a labirintusból.

A kivezető algoritmus nagyon egyszerű is lehet, tehát nem követelmény, hogy a teknőc minden labirintusból kijusson. A körjáratot nem tartalmazó labirintusokból pl. ki lehet jutni úgy, hogy olyan módon mozgunk, hogy közben tőlünk jobbra mindig fal van.

A megoldás során csak a teknőcgrafikát és a Logo nyelv funkcionális részét használjuk. Ne alkalmazzunk változókat, csak rekurzió segítségével valósítsunk meg ismétlést. Igyekezzünk minél több önállóan is értelmes függvényre és eljárásra bontani a megoldást, pl. négyzet rajzolása, annak megállapítása, hogy van-e fal előttem stb.

Beküldendő egy i285.zip tömörített állományban a megoldást tartalmazó i285.imp Imagine Logo Project és egy i285.txt szöveges állomány, amely ismerteti a megoldás során készített egyes eljárásokat és függvényeket.

(10 pont)

A beküldési határidő 2012. február 10-én LEJÁRT.


Mintamegoldásként Antal János Benjamin 12. osztályos nyíregyházi versenyző megoldását közöljük (i285.zip ).


Statisztika:

6 dolgozat érkezett.
10 pontot kapott:Antal János Benjamin, Beleznay Soma, Kovács Balázs Marcell.
9 pontot kapott:Kucsma Levente István.
5 pontot kapott:2 versenyző.

A KöMaL 2012. januári informatika feladatai