Advertisement
FutureMillennium

Blackjack.Mitto

Jan 31st, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.36 KB | None | 0 0
  1. zaklad (7 8 9 10 'J' 'Q' 'K' 'A' array) =
  2. zfojer ('A' 'A' array) =
  3. zbalicek (zaklad zaklad zaklad zaklad append) =
  4. zkredit 100 =
  5. zsazka 10 =
  6.  
  7. // Vypíše chybu číslo…
  8. chyba = (
  9. n arg
  10. switch n (
  11. 1 ("Chyba: Špatná volba!\n\n" print break)
  12. 2 ("Chyba: Musíte si nejdřív něco vsadit!\n" print break)
  13. 3 ("Chyba: Musíte vsadit stejně nebo méně, než máte!\n" print break)
  14. 4 ("Chyba: Musíte si vzít alespoň jednu kartu!\n" print break)
  15. 0 ("Konec hry!\n\n" print break)
  16. default ("Chyba: Neznámá chyba!\n\n" print)
  17. )
  18. )
  19.  
  20. // Vypíše pravidla
  21. pravidla = (
  22. "Hraje se s kartami 7, 8, 9, 10, J, Q, K a A. Každá je v balíčku 4×.
  23. Karty J, Q a K mají hodnotu 1, A 11 a ostatní svou vlastní.
  24. Hraje se proti bankéři, cílem je získat co nejvyšší součet hodnoty karet, která nesmí přesáhnout 21.
  25. Hráč vyhrává dvojnásobek sázky. V případě shody výsledku vyhrává bankéř. Bank je nekonečný.
  26. Pokud hráč nebo bankéř obdrží dvě esa ohlásí \"fojer\" a okamžitě inkasuje (v případě hráče trojnásobek sázky).
  27. \n" print
  28. )
  29.  
  30. // Převést kartu na číselnou hodnotu
  31. card2num = (
  32. k arg
  33. switch k (
  34. 'J' (1 break)
  35. 'Q' (1 break)
  36. 'K' (1 break)
  37. 'A' (11 break)
  38. default k
  39. )
  40. )
  41.  
  42. // 1. Změnit sázku
  43. zmenitsazku = (
  44. "Napište, kolik chcete vsadit: " print
  45. vstup read =
  46. if ((vstup > 0) (vstup <= kredit) &&) (
  47. sazka vstup =
  48. hra
  49. ) else (chyba 3 zmenitsazku)
  50. )
  51.  
  52. // 2. Vzít kartu
  53. vzitkartu = (
  54. "Beru kartu.\n" print
  55. karta (balicek length random nth) =
  56. karta balicek.remove
  57. karta karty.append
  58. soucet (karty map card2num apply +) =
  59. if (soucet >= 21)
  60. dost
  61. else hra
  62. )
  63.  
  64. // 3. Dost
  65. dost = (
  66. "Máte: %kredit Kč\nVaše karty: %karty\nSázíte: %sazka Kč\n" print
  67. cond (
  68. (karty zfojer ==) (fojer break)
  69. (soucet > 21) (pres break)
  70. true (bkarty (array) =
  71. banker)
  72. )
  73. )
  74.  
  75. fojer = (
  76. "\nFojer!\nVyhráváte trojnásobek sázky!\n\n" print
  77. 3 kolo
  78. )
  79.  
  80. pres = (
  81. "\nPřes!\nProhráváte sázku!\n\n" print
  82. -1 print
  83. )
  84.  
  85. banker = (
  86. karta (balicek length random nth) =
  87. karta balicek.remove
  88. karta bkarty.append
  89. bsoucet (bkarty map card2num apply +) =
  90. ("Bankéřův tah: $bkarty\n" print)
  91. if (bsoucet < soucet)
  92. banker
  93. else (
  94. if (bsoucet > 21)
  95. (2 kolo)
  96. else (-1 kolo)
  97. )
  98. )
  99.  
  100. kolo = (
  101. n arg
  102. if (n < 0)
  103. ("Bankéř vyhrává.\n\n" print)
  104. else ("Vyhráváte!\n\n" print)
  105. kredit (sazka n * kredit +) =
  106. if (kredit <= 0)
  107. konec
  108. else hra
  109. )
  110.  
  111. // Menu hry
  112. hra = (
  113. "Máte: $kredit Kč\nVaše karty: $karty\nSázíte: $sazka Kč\n
  114. 1. Změnit sázku
  115. 2. Vzít kartu
  116. 3. Dost
  117. 9. Vysvětlit pravidla
  118. 0. Konec hry\n
  119. Prosím vyberte možnost: " print
  120. switch read (
  121. 1 (zmenitsazku break)
  122. 2 (if (sazka > 0)
  123. vzitkartu
  124. else (2 chyba hra)
  125. break)
  126. 3 (if (sazka > 0)
  127. (if (karty length > 0)
  128. dost
  129. else (4 chyba hra))
  130. else (2 chyba hra)
  131. break)
  132. 9 (pravidla hra break)
  133. 0 (0 chyba menu break)
  134. default (1 chyba hra)
  135. )
  136. )
  137.  
  138. // Hlavní menu
  139. menu = (
  140. "1. Nová hra
  141. 2. Vysvětlit pravidla
  142. 0. Konec\n
  143. Prosím vyberte možnost: " print
  144. switch read (
  145. 1 (kredit zkredit =
  146. karty (array) =
  147. sazka zsazka =
  148. balicek zbalicek =
  149. hra break)
  150. 2 (pravidla menu break)
  151. 0 ("Nashledanou!" print break)
  152. default (1 chyba menu)
  153. )
  154. )
  155.  
  156. // Spustit hru
  157. "Vítejte ve hře Oko bere!\n" print
  158. menu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement