Aller au contenu

Théorème, ruine du joueur, Prolog


Statique

Messages recommandés

Théorème, ruine du joueur, Prolog

Bonjour à toute l'équipe. J'ai un sujet de TP sur Prolog concernant le théorème de la ruine du joueur ( Si un joueur a une fortune initiale finie, il n'existe pas de stratégie pour gagner à coup sûr. À l'inverse, s'il joue sans limite de temps, il finira ruine) et ayant déjà des difficultés dans cette langue de programmation, je me permets de vous demander des conseils.

Mon problème : 
- Je pense savoir comment l'exprimer en français, mais j'éprouve des difficultés pour le retranscrire en Prolog et par la suite pour le faire boucler.

- Qu'elles sont les premières questions à se poser ou les méthodes à utiliser afin de résoudre cette exercices.


Mon Sujet :  
Le joueur dispose de 134 €. La mise effective sera de 60 Euros €. Si le joueur n’a plus d’argent, le jeu s’arrête, il est ruiné.
Il est demandé de réaliser un programme qui sera appelé par le prédicat jeu/3 définit comme suit :


Prédicat jeu(Mise_init,Strategie,Valeur) */ /* ROLE prédicat d'appel global qui permet de savoir en combien de parties un joueur qui a une mise initiale donnée met à être ruine en suivant une stratégie donnée.
Argument Mise_init(entier, +) : somme disponible en début de partie.
Stratégie (entier, +) : type de stratégie (fixe=2,variable=1).
Valeur (entier, +) : pourcentage de la mise disponible ou somme fixe.



Mes idées :  
Pour moi en français, cela donne : 

Temps que le joueur à de l'argent, je boucle. Suivant la stratégie au début, je génère un nombre aléatoire (0=gagner, 1=perdu), suivant le résultat de ce nombre aléatoire, je déduis ou ajoute la somme à la mise initiale. Je regarde si la mise initiale est bien > à 0 (condition d’arrêt) et je boucle.

Condition d’arrêt : si le joueur n'a plus d'argent, il a perdus (Mise_ini<0).en Prolog pour moi cela donne 
jeu(x):- mise_ini(y)y>0.     mais je ne sais pas si c'est bon )


Je vous ai copié la partie du cahier des charges demandé dans un fichier Word ci-joint
pour que ça soit plus clair.  
Je vous remercie par avance pour vos conseils 
Respectueusement 

 

TP Prolog.docx

Lien vers le commentaire
Partager sur d’autres sites

Voici ce que j'ai commencé à faire, mais une fois que j'ai testé avec l'arbre de résolution, je me rends compte que la récursivité ne fonctionne pas comme je le souhaitais

mise_ini(_).
strategie(_).
pari(_).
lancement(gagner,mise_ini + pari).
lancement(perdu,mise_ini - pari).
gen_random(N).
gen_random(1,gagner).
gen_random(0,perdu).

/* X joue si y est la mise et Y superieur a 0(condition d'arret)*/
jeu( X,_,_):- mise_ini(X),X>0.
jeu(X,Y,Z):-strategie(Y),mise_ini(X),pari(Z),gen_random(N,W),lancement(W,_),jeu(_,_,_).

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...
spam filtering
spam filtering