::: ::: Jazyk Scheme | Hra Ruleta ve Scheme

0 x hodnoceno

Hra Ruleta ve Scheme

Program generuje náhodná čísla od 0 do 36. Hráči sázejí na jednotlivá čísla nebo skupiny podle evropské verze rulety. Program vyhodnotí tipy hráčů, určí zda-li vyhráli a případně vypíše i výhru.

Sázení je možné na: čísla, sudá a lichá čísla, červenou a černou barvu, sloupce, řady (program si poradí i když číslo nebude začátkem řady), sousední páry, čtverce sousedních čísel, šestice čísel v podobě dvou sousedních řad (program požaduje počáteční číslo šestice). Padne-li nula nebo neuhodne-li hráč daný tah, propadá výhra do Banku. Vyhraje-li hráč, vrací se mu sázka + násobek sázky z Banku.


#| --------------------------------- Evropska verze rulety ------------------------------ |#
(define cisla_cerna '(15 4 2 17 6 13 11 8 10 24 33 20 31 22 29 28 35 26))
(define cisla_cervena '(32 19 21 25 34 27 36 30 23 5 16 1 14 9 18 7 12 3))
(define sl1 '(0 1 4 7 10 13 16 19 22 25 28 31 34))
(define sl2 '(0 2 5 8 11 14 17 20 23 26 29 32 35))
(define sl3 '(0 3 6 9 12 15 18 21 24 27 30 33 36))
(define RND (random 37))
(define cislo
  (lambda (c)
    (cond
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      ((= RND c) (display "Vyhra! (Vklad+ *35) Padlo cislo: "))
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      (else (display "   Prohra! Padlo cislo: "))
      )(+ RND 0)))
(define suda
  (lambda ()
    (cond
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      ((even? RND) (display "Vyhra! (Vklad+ *1) Padlo cislo: "))
      (else (display "   Prohra! Padlo cislo: "))
      )(+ RND 0)))
(define licha
  (lambda ()
    (cond
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      ((odd? RND) (display "Vyhra! (Vklad+ *1) Padlo cislo: "))
      (else (display "   Prohra! Padlo cislo: "))
      )(+ RND 0)))
(define cerna
  (lambda ()
    (cond
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      ((memq RND cisla_cerna) (display "Vyhra! (Vklad+ *1) Padlo cislo: "))
      (else (display "   Prohra! Padlo cislo: "))
      )(+ RND 0)))
(define cervena
  (lambda ()
    (cond
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      ((memq RND cisla_cervena) (display "Vyhra! (Vklad+ *1) Padlo cislo: "))
      (else (display "   Prohra! Padlo cislo: "))
      )(+ RND 0)))
(define 1az12
  (lambda ()
    (cond
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      ((<= RND 12) (display "Vyhra! (Vklad+ *2) Padlo cislo: "))
      (else (display "   Prohra! Padlo cislo: "))
      )(+ RND 0)))
(define 13az24
  (lambda ()
    (cond
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      ((and (> RND 12)(<= RND 24)) (display "Vyhra! (Vklad+ *2) Padlo cislo: "))
      (else (display "   Prohra! Padlo cislo: "))
      )(+ RND 0)))
(define 25az36
  (lambda ()
    (cond
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      ((>= RND 25) (display "Vyhra! (Vklad+ *2) Padlo cislo: "))
      (else (display "   Prohra! Padlo cislo: "))
      )(+ RND 0)))
(define 1az18
  (lambda ()
    (cond
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      ((<= RND 18) (display "Vyhra! (Vklad+ *1) Padlo cislo: "))
      (else (display "   Prohra! Padlo cislo: "))
      )(+ RND 0)))
(define 19az36
  (lambda ()
    (cond
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      ((>= RND 19) (display "Vyhra! (Vklad+ *1) Padlo cislo: "))
      (else (display "   Prohra! Padlo cislo: "))
      )(+ RND 0)))
(define sloupec1
  (lambda ()
    (cond
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      ((= (modulo RND 3) 1) (display "Vyhra! (Vklad+ *2) Padlo cislo: "))
      (else (display "   Prohra! Padlo cislo: "))
      )(+ RND 0)))
(define sloupec2
  (lambda ()
    (cond
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      ((= (modulo RND 3) 2) (display "Vyhra! (Vklad+ *2) Padlo cislo: "))
      (else (display "   Prohra! Padlo cislo: "))
      )(+ RND 0)))
 
(define sloupec3
  (lambda ()
    (cond
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      ((= (modulo RND 3) 0) (display "Vyhra! (Vklad+ *2) Padlo cislo: "))
      (else (display "   Prohra! Padlo cislo: "))
      )(+ RND 0)))
(define rada
  (lambda (r)
    (cond
        ((= RND 0) (display "   Prohra! Padlo cislo: "))
        ((= (modulo RND 3) 1)
         (if (or (= (list-ref sl1 (/ (+ RND 2) 3)) (+ r 0))
                 (= (list-ref sl1 (/ (+ RND 2) 3)) (- r 1))
                 (= (list-ref sl1 (/ (+ RND 2) 3)) (- r 2)))
            (display "Vyhra! (Vklad+ *11) Padlo cislo: ")
            (display "   Prohra! Padlo cislo: ")))
        ((= (modulo RND 3) 2)
         (if (or (= (list-ref sl2 (/ (+ RND 1) 3)) (+ r 0))
                 (= (list-ref sl2 (/ (+ RND 1) 3)) (- r 1))
                 (= (list-ref sl2 (/ (+ RND 1) 3)) (+ r 1)))
            (display "Vyhra! (Vklad+ *11) Padlo cislo: ")
            (display "   Prohra! Padlo cislo: ")))
        ((= (modulo RND 3) 0)
         (if (or (= (list-ref sl2 (/ (+ RND 0) 3)) (+ r 0))
                 (= (list-ref sl2 (/ (+ RND 0) 3)) (+ r 1))
                 (= (list-ref sl2 (/ (+ RND 0) 3)) (+ r 2)))
            (display "Vyhra! (Vklad+ *11) Padlo cislo: ")
            (display "   Prohra! Padlo cislo: ")))
        (else (display "   Prohra! Padlo cislo: ")))(+ RND 0)))
(define par
  (lambda (d1 d2)
    (cond
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      ((or (= RND d1) (= RND d2)) (display "Vyhra! (Vklad+ *17) Padlo cislo: "))
      (else (display "   Prohra! Padlo cislo: "))
      )(+ RND 0)))
(define ctverec
  (lambda (c1 c2 c3 c4)
    (cond
      ((= RND 0) (display "   Prohra! Padlo cislo: "))
      ((or (= RND c1) (= RND c2) (= RND c3) (= RND c4)) (display "Vyhra! (Vklad+ *8) Padlo cislo: "))
      (else (display "   Prohra! Padlo cislo: "))
      )(+ RND 0)))
(define sestice
  (lambda (s1)
    (cond
       ((= RND 0) (display "   Prohra! Padlo cislo: "))
        ((> RND 0)
          (if (memq RND (build-list (+ 6)
                          (lambda (i)
                             (* (+ i s1) 1))))
              (display "Vyhra! (Vklad+ *5) Padlo cislo: ")
              (display "   Prohra! Padlo cislo: "))
          )) (+ RND 0)))
#| --------------------------------- Ukazky sazek ---------------------------------------|#
; (cislo 3) (suda) (licha) (cerna) (cervena) (1az12) (13az24) (25az36)
; (1az18) (19az36) (sloupec1) (sloupec2) (sloupec3) (rada 16) (rada 29)
; (par 16 19) (par 10 11) (ctverec 8 9 11 12) (sestice7) (sestice 25)
 
#| ----------------------------------- Tipy hracu ---------------------------------------|#
(cislo 17)
(cislo 29)
(suda)
(13az24)
(rada 27)
(rada 9)
(par 19 20)
(sestice 7)
(sestice 28) 

ruleta1

ruleta2


 

ruleta


No comments

Reklama (sponzoruje chod webu)
Analytics
Created by E.Sc. Petr Mejzlik, DiS.           © 2009 - 2017 X-IDEA.cz          Tento web používá COOKIES