Kurzusok
/
Rust
Rust
/
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·

Teljesítménytipp

Minden bemenet és kimenet ASCII. A Rust String és a &str típusok UTF-8 kódolásúak, így bár azt várná az ember, hogy a "Hello".chars() egyszerű, valójában minden karaktert meg kell vizsgálnia, hogy 1, 2, 3 vagy 4 u8 hosszú-e. Ha tudjuk, hogy egy &str ASCII, akkor meghívhatjuk a .as_bytes() metódust, és a mögöttes adatokra &[u8]-ként (bájtszeletként) hivatkozhatunk. Az ASCII bájtok szeletén való iterálás sokkal gyorsabb, mert nem tartalmaz kódpontokat: minden ASCII bájt egy u8 hosszú.

Meg tudod oldani a kihívást anélkül, hogy klónoznád a bemenetet?

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Rust Exercism

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

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Rust nyelvet 99 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.