Kurzusok
/
Python
Python
/
Feladatok
/
Aknakereső
Aknakereső

Aknakereső

Közepes

Bevezetés

Az Aknakereső egy népszerű játék, amelyben a játékosnak számokkal jelzett tippek segítségével kell megtalálnia az aknákat. A tippek azt mutatják meg, hogy hány akna szomszédos közvetlenül egy mezővel (vízszintesen, függőlegesen vagy átlósan).

Utasítások

A feladatod, hogy egy kész Aknakereső-tábla üres mezőire ráírd a szomszédos aknák számát. Maga a tábla egy téglalap, amely üres (' ') vagy aknát ('*') tartalmazó mezőkből áll.

Minden üres mezőnél számold meg, hány akna van mellette (vízszintesen, függőlegesen, átlósan). Ha az üres mező mellett nincs akna, hagyd üresen. Ellenkező esetben írd rá a szomszédos aknák számát.

Például kaphatsz egy ilyen 5 x 4-es táblát (itt az üres helyeket a '·' karakter jelöli, hogy a képernyőn láthatók legyenek):

·*·*·
··*··
··*··
·····

Amelyet a kódodnak át kell alakítania ebbe:

1*3*1
13*31
·2*2·
·111·

Kivételüzenetek

Néha szükség lehet arra, hogy kivételt dobj. Amikor ezt teszed, mindig adj meg egy beszédes hibaüzenetet, amely megmutatja, mi a hiba forrása. Ez olvashatóbbá teszi a kódot, és sokat segít a hibakeresésben. Ha tudod, hogy a hiba forrása egy adott típusú lesz, választhatsz a beépített hibatípusok közül, de ilyenkor is adj meg beszédes üzenetet.

Ennél a feladatnál a raise utasítással kell „dobnod” egy ValueError-t, amikor a board() függvény hibás formátumú bemenetet kap. A tesztek csak akkor futnak le sikeresen, ha raise-eled az exception-t, és üzenetet is fűzöl hozzá.

Ahhoz, hogy üzenettel együtt dobj ValueError-t, az üzenetet argumentumként add át az exception típusnak:

# when the board receives malformed input
raise ValueError("The board is invalid with current input.")
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Python Exercism

Készen állsz elkezdeni a(z) Aknakereső feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Python nyelvet 17 fogalom146 feladat segítségével, valódi emberi mentorálással, mindez ingyen.

Mélyelemzés: Aknakereső!

Felfedezzük az egymásba ágyazott for-ciklusokat, a min/max ügyes használatát a határellenőrzés egyszerűsítésére, a funkcionális pipeline-okat és a kétdimenziós mátrixok használatát.