ITI0011:Aardejaht

Allikas: Kursused
Redaktsioon seisuga 30. jaanuar 2016, kell 01:48 kasutajalt Ago (arutelu | kaastöö) (Uus lehekülg: 'Tagasi kursuse lehele Xena on just lõpetanud pika sõjakäigu ning saabunud äsjavallutatud piirkonda. Selleks, et piirkond üles ehitada, on vaja kulda. Xena oli k...')
(erin) ←Vanem redaktsioon | Viimane redaktsiooni (erin) | Uuem redaktsioon→ (erin)
Mine navigeerimisribale Mine otsikasti

Tagasi kursuse lehele

Xena on just lõpetanud pika sõjakäigu ning saabunud äsjavallutatud piirkonda. Selleks, et piirkond üles ehitada, on vaja kulda. Xena oli kuulnud jutte, kuidas piirkonnas olevat juba ammusest ajast palju varandust maa alla peidetud (arvatavasti mõne vana hõimkonna komme). Kaalunud võimalust tööga raha teenida, otsustab Xena hakata kulda maapõuest otsima. Kuna aga kulla otsimine konkreetselt alalt võtab aega, ei tahaks ta kogu ala läbi kaevata. Eesmärk oleks kogu kuld piirkonnas kokku koguda võimalikult väikese vaevaga.

Aardejaht on ühe mängija mäng, kus tuleb võimalikult kiiresti (väheste "kaevamiste" arvuga) leida üles kõik aarded.

Mäng toimub M x N (M rida, N veergu) laua peal, kus igas lahtris (edaspidi "ruudus") võib olla aare. Kõik ruudud on algselt mängija eest peidetud ehk siis mängija ei tea, kas ruudu all on aare. Kui mängija valib ühe ruudu, siis see ruut avatakse. Mäng kestab seni, kuni kõik aarded on üles leitud. Mängu jooksul avatud ruutude summa on mängija "aeg" - mida väiksem see number on, seda parem. Mängulauale peidetud aarete kogus on teada.

Põhiosa (4p)

Nõuded:

* mängijalt küsitakse mängulaua suurus (M ja N)
* mängijalt küsitakse aarete kogus (X)
* programm genereerib M x N kaardi, mille peal on juhuslikult paigutatud X aaret
* kasutaja valib ruudu (rida, veerg), mis tuleb avada
** kui avatud ruudus ei ole aare, siis näidatakse välja number, mitu aaret on selle ruudu kõrval olevates ruutudes (iga ruudu küljes võib maksimaalselt olla 8 aaret).
* mängijale kuvatakse jooksvalt leidmata aarete kogus, kasutatud avamiste kogu ja mängulaud peale igat käiku. 
* kui kõik aarded on leitud, küsib programm, kas mängija tahab uuesti mängida.

Näide:

Sisesta M (ridade arv), N (veergude arv), X (aarete arv): 3, 3, 3

Edukat kaevamist!

...
...
...
kaevamisi: 0, aardeid jäänud: 3
Mida kaevame (rida, veerg): 0, 0

1..
...
...
kaevamisi: 1, aardeid jäänud: 3
Mida kaevame (rida, veerg): 0, 1

10.
...
...
kaevamisi: 2, aardeid jäänud: 3
Mida kaevame (rida, veerg): 1, 1

10.
.+.
...
AARE!

kaevamisi: 3, aardeid jäänud: 2
Mida kaevame (rida, veerg): 2, 1
(1,0 pole mõtet kaevata, kuna 0,0 ümbruses oli üks aare ja see paikneb 1,1 ruudul)

10.
.+.
.3.
kaevamisi: 4, aardeid jäänud: 2
Mida kaevame (rida, veerg): 2, 2

10.
.+.
.3+
AARE!

kaevamisi: 5, aardeid jäänud: 1
Mida kaevame (rida, veerg): 2, 0

10.
.+.
+3+
AARE!

kaevamisi: 6, aardeid jäänud: 0

Mäng läbi! Kokku tehti 6 kaevamist.
Kas soovid veel mängida?