Black jack en scheme
Résolu
ily69
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
Groarh Messages postés 682 Date d'inscription Statut Membre Dernière intervention -
Groarh Messages postés 682 Date d'inscription Statut Membre Dernière intervention -
Bonjour, en faite je dois programmer le jeu de black jack et pour commencer je dois faire une fonction qui prend 2 arguments en paramètre ( le premier c'est la hauteur de la carte , as , 3 ,valet ....et le second c'est la couleur , pique , coeur ...
voila l'appelle de la fonction :
- (fonction '(12 3) -> ( dame pique)
comment puis -je attribuer un nom à chaque nombre ( 12 reçoit dame ...) j'ai essayé avec un let* mais j'y arrive pas , merci .
voila l'appelle de la fonction :
- (fonction '(12 3) -> ( dame pique)
comment puis -je attribuer un nom à chaque nombre ( 12 reçoit dame ...) j'ai essayé avec un let* mais j'y arrive pas , merci .
A voir également:
- Black jack en scheme
- Iphone black friday - Accueil - Téléphones
- Problème prise jack manette ps5 - Forum Jeux vidéo
- Faux contact casque audio prise jack ✓ - Forum Casque et écouteurs
- Réparer prise jack femelle - Forum LG
- Comment brancher un casque + micro sur pc avec une seul prise jack ✓ - Forum Casque et écouteurs
6 réponses
Oh, du Scheme ! C'est pas souvent qu'on en voit sur ce forum. Allez, c'est chiant le Scheme mais je vais répondre sinon personne le fera ^^
Moi je verrais bien le truc avec une ou deux fonctions intermédiaires, genre :
Y'aura ptêt deux-trois détails à revoir pour la syntaxe, je fais ça de mémoire.
Tu me suis ? Par contre des fois les fonctions intermédiaires ça plaît pas au prof... Le mien disait que c'était de la triche...
Moi je verrais bien le truc avec une ou deux fonctions intermédiaires, genre :
(define hauteur (lambda (num) (cond ((= num 1) "as") ((= num 11) "valet") ((= num 12) "dame") ((= num 13) "roi") (else num) )))
Y'aura ptêt deux-trois détails à revoir pour la syntaxe, je fais ça de mémoire.
Tu me suis ? Par contre des fois les fonctions intermédiaires ça plaît pas au prof... Le mien disait que c'était de la triche...
super c'est tout à fait ce que je voulais savoir , je savais pas qu'on pouvait faire ça avec un cons , merci beaucoup :) , je vais faire une autre fonction pour les couleurs et une troisième qui prend en argument ses deux fonction pour donner la valeur de la carte , merci encore .
j'ai un petit problème là ,voila ce que j'ai fais
(define hauteur
(lambda (num)
(cond ((= num 1) "as")
((= num 11) "valet")
((= num 12) "dame")
((= num 13) "roi")
(else num)
)))
(define couleur
(lambda (a)
(cond ((= a 1) "carreau")
((= a 2) "coeur")
((= a 3) "pique")
((= a 4) "trefle")
(else 'erreur)
)))
(define carte
(lambda(l)
(list(hauteur couleur))))
quand j'exécute ça me renvoie un message d'erreur comme quoi "as" et carreau ont le même nombre qui est 1 , alors que ce n'est la même fonction , normalement ça marche non ?
(define hauteur
(lambda (num)
(cond ((= num 1) "as")
((= num 11) "valet")
((= num 12) "dame")
((= num 13) "roi")
(else num)
)))
(define couleur
(lambda (a)
(cond ((= a 1) "carreau")
((= a 2) "coeur")
((= a 3) "pique")
((= a 4) "trefle")
(else 'erreur)
)))
(define carte
(lambda(l)
(list(hauteur couleur))))
quand j'exécute ça me renvoie un message d'erreur comme quoi "as" et carreau ont le même nombre qui est 1 , alors que ce n'est la même fonction , normalement ça marche non ?
Pourquoi tu n'as qu'un seul paramètre dans la fonction carte ? C'est une liste ?
Je ne comprends pas ton message d'erreur mais tu devrais essayer car et cdr pour extraire les arguments de ta liste.
Je ne comprends pas ton message d'erreur mais tu devrais essayer car et cdr pour extraire les arguments de ta liste.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
(define hauteur
(lambda (l)
(cond ((equal? (car l) 1) "as")
((equal? (car l) 11) "valet")
((equal? (car l) 12) "dame")
((equal? (car l) 13) "roi")
(else (car l)
))))
(define couleur
(lambda (l2)
(cond ((equal? (cadr l2) 1) "carreau")
((equal? (cadr l2) 2) "coeur")
((equal? (cadr l2) 3) "pique")
((equal? (cadr l2) 4) "trefle")
(else 'erreur)
)))
(define carte
(lambda(x)
(list(hauteur couleur))))
j'ai aussi fais avec le cdr l mais ça ne marche pas , je peux pas mettre la foncton couleur dans la première ?
(lambda (l)
(cond ((equal? (car l) 1) "as")
((equal? (car l) 11) "valet")
((equal? (car l) 12) "dame")
((equal? (car l) 13) "roi")
(else (car l)
))))
(define couleur
(lambda (l2)
(cond ((equal? (cadr l2) 1) "carreau")
((equal? (cadr l2) 2) "coeur")
((equal? (cadr l2) 3) "pique")
((equal? (cadr l2) 4) "trefle")
(else 'erreur)
)))
(define carte
(lambda(x)
(list(hauteur couleur))))
j'ai aussi fais avec le cdr l mais ça ne marche pas , je peux pas mettre la foncton couleur dans la première ?