Malá hra o velkého Bajta (5) - Hledání min

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
faraon
Master Level 8
Master Level 8
Příspěvky: 6680
Registrován: prosinec 10
Pohlaví: Muž

Malá hra o velkého Bajta (5) - Hledání min

Příspěvekod faraon » 14 úno 2016 12:15

Všechny bity hry:

00000001 - Jednoduchá kalkulačka
00000010 - Odebírání zápalek
00000100 - Gregoriánský kalendář
00001000 - Hádání kombinace
00010000 - Vigenérova šifra
00100000 - Hledání min
01000000 - Házení kostkou
10000000 - Conway's Game of Life




Měsíc utekl, neděle přitekla, a je zas na čase si trochu pohrát s programováním. A klidně i zahrát, takže tentokrát bysme opět mohli zkusit nějakou hru. Jenže doba je vážná, války se množí všude kolem nás, pomalu se plíží a blíží i do našeho zatuchlého středoevropského kráteru, takže s čím bysme si mohli hrát teď, v době válečné?
Ve válkách se používá spousta zajímavých hraček, různě drahých, různě ničivých, různě složitých... Jedna z nejjednodušších, nejlevnějších, a zároveň nejúčinnějších je obyčejná nášlapná mina. Úžasná věc, stojí jenom pár dolarů, umístit jí může kdokoliv, třeba i negramotný dětský voják, přitom dokáže ležet v zemi celé roky a čekat na svoji chvilku slávy! V každé válce se jich použijí tisíce a mnoho jich čeká dodnes, i přes veškeré snahy o odminování. Proto je v některých zemích, kde se podobné hrátky před nedávnem odehrávaly, při pohybu krajinou nejdůležitější varování:

Koukej kam šlapeš!

Hledání a zneškodňování min je velmi náročná a nebezpečná práce, a oproti jejich pokládání také mnohonásobně dražší. Vymýšlejí se různé nové a moderní způsoby jak to provádět, ale ty kromě vyššího zisku zbrojařských koncernů nic moc lepšího nepřinášejí. Asi největší pokrok v téhle oblasti učinili němečtí vojáci, kteří se v rámci amerického exportu demokracie podíleli na okupaci humanitárně rozbombardovaných trosek Afghánistánu. Jejich vynález byl úplně jednoduchý - do nebezpečného prostoru, kde předpokládali výskyt min, naházeli jablka, a pár dní počkali, až je vyhladovělé afghánské děti objeví a vysbírají. Když se jim to podařilo, označili ten prostor jako bezpečný, když ne, bylo tam aspoň o pár min méně. Afghánčata pochopitelně nadšením z takového pokroku radostně rozhazovala rukama nohama, některá až padesát metrů daleko.

Většina z nás určitě zná a hrála hru Minesweeper - Hledání min. Je to součást základního vzdělání každého klikoně už po několik desetiletí, a vedle karetního Solitéru také nejčastěji spouštěný program na počítači každého strašně těžce zaměstnaného úředníka nebo úřednice. Princip hry je jednoduchý, na hracím/minovém poli je skrytý nějaký počet min, hráč je musí najít a přežít - nesmí tedy odkrýt políčko ve kterém je schovaná mina, pouze všechna ostatní. Při odkrytí bezpečného políčka se na něm zobrazí kolik min je v sousedních osmi políčkách, kterých se dotýká stranou nebo rohem. Je-li to nula, automaticky se odkrývají sousední pole, až dokud se nenarazí na nenulovou hodnotu, pro urychlení hry. Také je možné označit/zamknout políčko, na kterém je podle názoru hráče pravděpodobně mina, aby se nedalo odkrýt omylem. Když hráč odkryje minu, hra končí (smrtí hráče, naštěstí oproti realitě pouze virtuální). Ano, pyrotechnik udělá chybu pouze jednou.

Hra existuje ve spoustě verzí, je možné jí ovládat myší, kurzorovými šipkami na klávesnici, nebo prostě zadávat do konzole souřadnice řádku a sloupce, kde se má odkrýt políčko. Obvyklá je pravoúhlá síť, ale existují i šestiúhelníkové verze, s políčky rozmístěnými jako plástve ve včelím úlu. Vznikly i variace s troj a pětiúhelníkovými políčky, dokonce s nepravidelnými. Jednoduchá implementace může vypadat třeba takhle:

https://www.youtube.com/watch?v=eJ0e9RX2gxE

Asi už je jasné, že bit 00100000 bude věnovám právě téhle hře. A stejně jako u Mastermindu se dá pojmout mnoha různými způsoby:

  • Je možné hrát pouze jednu hru, nebo na kola.
  • Obtížnost lze buď nastavit na počátku, například velikost minového pole a hustotu min, nebo může růst během hry, třeba zvyšováním počtu min v každém kole.
  • Hrací pole je buď čtvercová nebo šestiúhelníková síť, druhá možnost je na programování obtížnější, ale zajímavější.
  • Hra se dá ovládat libovolným způsobem, myší, klávesnicí, nebo klidně dotykově, to už záleží pouze na jejím tvůrci a použité technologii.
  • Jako nepovinný bonus má ukládání nejlepších výsledků, řazených buď podle nejkratšího času, podle počtu úspěšných odkrytí, nebo přežitých kol...
  • Doporučuji automatické odkrývání prázdných sousedních políček, bez toho je hra dost zdlouhavá a nudná. Stačí na to úplně maličká rekurze ;-)

Takže, jak byste si představovali ideální verzi hledání min vy?


Všech 500 nejvýkonnějších superpočítačů na světě má přes petaflops a běží na Linuxu:
https://www.root.cz/galerie/nejvykonnejsi-superpocitace-sveta-cerven-2019/

Reklama
  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Malá vs Velká case
    od jarek3202 » 23 čer 2019 14:17 » v Rady s výběrem hardwaru a sestavením PC
    4
    182
    od Donald64
    23 čer 2019 18:07
  • Hledání bazarového PC
    od bubertak » 16 led 2019 18:21 » v Rady s výběrem hardwaru a sestavením PC
    9
    470
    od djdezolatore
    17 led 2019 20:05
  • Hledání chyby v PC
    od Jtcko » 06 říj 2018 12:26 » v Problémy s hardwarem
    23
    1578
    od Turion
    16 říj 2018 21:40
  • Total Commander - pokročilé hledání
    od sojkin626 » 10 zář 2018 19:09 » v Vše ostatní (sw)
    15
    901
    od sojkin626
    16 zář 2018 11:14
  • Zamrzání PC při hledání změn HW
    od pokornja » 17 lis 2018 10:34 » v Problémy s hardwarem
    14
    503
    od xbs
    17 lis 2018 22:22

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 0 hostů