Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- zaklad (7 8 9 10 'J' 'Q' 'K' 'A' array) =
- zfojer ('A' 'A' array) =
- zbalicek (zaklad zaklad zaklad zaklad append) =
- zkredit 100 =
- zsazka 10 =
- // Vypíše chybu číslo…
- chyba = (
- n arg
- switch n (
- 1 ("Chyba: Špatná volba!\n\n" print break)
- 2 ("Chyba: Musíte si nejdřív něco vsadit!\n" print break)
- 3 ("Chyba: Musíte vsadit stejně nebo méně, než máte!\n" print break)
- 4 ("Chyba: Musíte si vzít alespoň jednu kartu!\n" print break)
- 0 ("Konec hry!\n\n" print break)
- default ("Chyba: Neznámá chyba!\n\n" print)
- )
- )
- // Vypíše pravidla
- pravidla = (
- "Hraje se s kartami 7, 8, 9, 10, J, Q, K a A. Každá je v balíčku 4×.
- Karty J, Q a K mají hodnotu 1, A 11 a ostatní svou vlastní.
- Hraje se proti bankéři, cílem je získat co nejvyšší součet hodnoty karet, která nesmí přesáhnout 21.
- Hráč vyhrává dvojnásobek sázky. V případě shody výsledku vyhrává bankéř. Bank je nekonečný.
- Pokud hráč nebo bankéř obdrží dvě esa ohlásí \"fojer\" a okamžitě inkasuje (v případě hráče trojnásobek sázky).
- \n" print
- )
- // Převést kartu na číselnou hodnotu
- card2num = (
- k arg
- switch k (
- 'J' (1 break)
- 'Q' (1 break)
- 'K' (1 break)
- 'A' (11 break)
- default k
- )
- )
- // 1. Změnit sázku
- zmenitsazku = (
- "Napište, kolik chcete vsadit: " print
- vstup read =
- if ((vstup > 0) (vstup <= kredit) &&) (
- sazka vstup =
- hra
- ) else (chyba 3 zmenitsazku)
- )
- // 2. Vzít kartu
- vzitkartu = (
- "Beru kartu.\n" print
- karta (balicek length random nth) =
- karta balicek.remove
- karta karty.append
- soucet (karty map card2num apply +) =
- if (soucet >= 21)
- dost
- else hra
- )
- // 3. Dost
- dost = (
- "Máte: %kredit Kč\nVaše karty: %karty\nSázíte: %sazka Kč\n" print
- cond (
- (karty zfojer ==) (fojer break)
- (soucet > 21) (pres break)
- true (bkarty (array) =
- banker)
- )
- )
- fojer = (
- "\nFojer!\nVyhráváte trojnásobek sázky!\n\n" print
- 3 kolo
- )
- pres = (
- "\nPřes!\nProhráváte sázku!\n\n" print
- -1 print
- )
- banker = (
- karta (balicek length random nth) =
- karta balicek.remove
- karta bkarty.append
- bsoucet (bkarty map card2num apply +) =
- ("Bankéřův tah: $bkarty\n" print)
- if (bsoucet < soucet)
- banker
- else (
- if (bsoucet > 21)
- (2 kolo)
- else (-1 kolo)
- )
- )
- kolo = (
- n arg
- if (n < 0)
- ("Bankéř vyhrává.\n\n" print)
- else ("Vyhráváte!\n\n" print)
- kredit (sazka n * kredit +) =
- if (kredit <= 0)
- konec
- else hra
- )
- // Menu hry
- hra = (
- "Máte: $kredit Kč\nVaše karty: $karty\nSázíte: $sazka Kč\n
- 1. Změnit sázku
- 2. Vzít kartu
- 3. Dost
- 9. Vysvětlit pravidla
- 0. Konec hry\n
- Prosím vyberte možnost: " print
- switch read (
- 1 (zmenitsazku break)
- 2 (if (sazka > 0)
- vzitkartu
- else (2 chyba hra)
- break)
- 3 (if (sazka > 0)
- (if (karty length > 0)
- dost
- else (4 chyba hra))
- else (2 chyba hra)
- break)
- 9 (pravidla hra break)
- 0 (0 chyba menu break)
- default (1 chyba hra)
- )
- )
- // Hlavní menu
- menu = (
- "1. Nová hra
- 2. Vysvětlit pravidla
- 0. Konec\n
- Prosím vyberte možnost: " print
- switch read (
- 1 (kredit zkredit =
- karty (array) =
- sazka zsazka =
- balicek zbalicek =
- hra break)
- 2 (pravidla menu break)
- 0 ("Nashledanou!" print break)
- default (1 chyba menu)
- )
- )
- // Spustit hru
- "Vítejte ve hře Oko bere!\n" print
- menu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement