Aller au contenu

Théorème, ruine du joueur, Prolog


Statique

Messages recommandés

Posté(e)

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

Posté(e)

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(_,_,_).

Archivé

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

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