1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
| (load "cartes.l")
(setq mainCroup '())
(setq mainJoueur '())
;(print "BIENVENUE A LAS VEGAS, LA OU (PRESQUE) TOUT EST POSSIBLE")
;tire une carte dans cartes.l
(defun tirercarte(liste)
(parcours (random (length liste)) liste)
)
(defun parcours (x l)
(if (= x 1)(car l)
(parcours (- x 1)(cdr l)))
)
;tire une carte dans cartes.l A condition qu'il en reste
(defun getCart (carte)
(progn
(if (not (null cartes))
(setq carte(tirercarte cartes))
)))
;valeur de la carte (As = 11)
(defun valeurcarte (carte)
(caddr (car carte))
)
;Va placer une carte dans la liste mainJoueur
(defun Distribuer()
(setq mainJoueur (cons (getCart cartes) mainJoueur))
)
;Calcule les points d'une main
(defun som(l)
(if (null l) 0
(+ (valeurcarte l) (som (cdr l))))
)
;Total de la main du croupier
(setq scorBank (som mainCroup))
; --------------------------- DEBUT DU JEU --------------------------------
;Fonction jeu
(defun jeu()
(setq mainCroup (cons (getCart cartes) mainCroup ))
(jeu2)
)
(defun jeu2()
(print "La main du crouper est : ")
(print mainCroup)
(cond
;Si score > 21 proposer de rejouer sinon sortir du programme
((> (som mainJoueur) 21)
(print "Perdu! Vous avez dépassé 21. Voulez vous rejouer? Oui(1) Non(2)")
(if (= (read) 1)
(progn
(load "BlackJack.l")
(jeu)))
(exit))
;En cas de BlackJack proposer de rejouer sinon sortir du programme
((= (som mainJoueur) 21)
(print "BlackJack! Voulez vous rejouer? Oui(1) Non(2)")
(if (= (read) 1)
(progn
(load "BlackJack.l")
(jeu)))
(exit))
;Tant que score du joueur < 22 proposer de tirer une carte
;Si NON alors le croupier joue
((< (som mainJoueur) 22)
(progn
(print "Voulez vous tirer une carte? Oui (1) / Non (2)")
(if (= (read) 1)
(progn
(Distribuer)
(print "Votre main est : ")
(print mainJoueur)
(print "Votre total est de : ")
(print (som mainJoueur))
(jeu2))))
(croupier))
))
;Fais jouer le croupier après le tour du joueur
;Si le croupier à moins de 2 cartes dans sa main
;Si le croupier à moins de 17 points
;Si le croupier a moins de points que le joueur
(defun croupier()
(if (< (length mainCroup) 2)
(progn
(cond
( (and (< (som mainCroup) 17)(< (som mainCroup) (som mainJoueur)))
(setq mainCroup (cons (getCart cartes) mainCroup ))
))
(print "La main du croupier est : ")
(print mainCroup)
(print "Avec un total de : ")
(print (som mainCroup))
))
(cond
( (= (som mainJoueur)(som mainCroup)) (print "Vous avez perdu"))
( (< (som mainJoueur)(som mainCroup)) (print "Vous avez perdu"))
( (> (som mainJoueur)(som mainCroup)) (print "Vous avez gagné"))
)
) |
Partager