Kurzusok
/
Python
Python
/
Feladatok
/
Virágmező
Virágmező

Virágmező

Közepes

Bevezetés

A Virágmező a népszerű Aknakereső játék együttérző újragondolása. A játék célja, hogy megtaláld a kert összes virágát olyan számokkal jelzett utalások segítségével, amelyek megmutatják, hány virág van közvetlenül egy mező mellett (vízszintesen, függőlegesen, átlósan). A Virágmező a Microsoft Windows olaszországi, németországi, dél-koreai, japán és tajvani változataiban jelent meg.

Utasítások

A feladatod, hogy egy kész Virágmező-kert üres mezőibe beírd a virágok számát. Maga a kert egy téglalap alakú tábla, amely olyan mezőkből áll, amelyek vagy üresek (' '), vagy virágot jelölnek ('*').

Minden üres mezőnél számold meg, hány virág van mellette (vízszintesen, függőlegesen és átlósan). Ha az üres mező mellett nincs virág, hagyd üresen. Egyébként írd be a helyére a mellette lévő virágok számát.

Például kaphatsz egy ilyen, 5 x 4-es táblát (az üres helyek itt a '·' karakterrel vannak jelölve, hogy a képernyőn is látszódjanak):

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

A kódodnak pedig ezt kell belőle előállítania:

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) Virágmező 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: Virágmező!

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.