[déplacé DEPHI -> C] Fonction pourcentage pour le jeu " qui veut gagner des mill
flymac123
Messages postés2Date d'inscriptionjeudi 31 décembre 2009StatutMembreDernière intervention 6 janvier 2010
-
6 janv. 2010 à 14:47
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 2016
-
6 janv. 2010 à 22:19
Bonjour,
Je réalise actuellement un programme en C reproduisant le jeu "Qui veut gagner des millions", mais une version simple, sans interface graphique etc..
J'ai un problème: je voudrais créer un fonction qui permet simuler le vote du public: la fonction doit donc fournir 4 pourcentages pour les réponses et bien sur le pourcentage de la bonne réponse doit être plus élevé.
Mais ce pourcentage de la bonne réponse doit également diminuer plus la difficulté de la question augmente...
J'ai cherché des heures... mais je n'ai pas du tout d'idée pour créer cette fonction.
Auriez-vous des propositions ?
Merci d'avance
-----------------------------------------------------------------------------
Je vous fourni le programme entier (sans la fonction du vote du public )
/fonction qui tire un nombre au hazard (utilisée pour le 50/50)
int rnd(long mi,long ma)
{
long a;
a=rand()%(ma-mi+1)+mi;
return a;
}
int main()
{
long rep, vrai_rep;
long gain[12]={500,800,1500,6000,12000,24000,48000,72000,150000,300000,1000000};
long jocker_switch=1, jocker_5050=1, jocker_public=1;
long question=1, fin=0;
long i=1,r=0,j=0;
long P[4];
long tab[4];
srand(time(NULL));
printf("Bienvenue dans Qui veut gagner des Millions\n Emission presente par J-P Foucault\n");
printf("\n");
printf("vous allez devoir repondre a une serie de 12 questions a choix multiples.\n");
printf("vous disposez de 3 jockers:\n 1)le switch.\n 2)le 50/50.\n 3)le vote du public.\n");
printf("\n");
printf("Voici la pyramide des gains:\n\n");
printf(" 500E \n 800E \n 1.500E(palier) \n 3.000E \n 6.000E \n 12.000E\n 24000E \n 48.000E(palier) \n 72.000E \n 150.000E \n 300.000E \n 1.000.000E\n");
do
{
printf("voici la question %ld a %ld euros\n", &question, &gain[i]);
printf("switch=%ld 50/50=%ld public=%ld",&jocker_switch,&jocker_5050,&jocker_public);
printf("\n");
printf("instructions :\n arreter->taper 0 || reponse 1->taper 1 || reponse 2->taper 2 || reponse 3->taper 3 || reponse 4->taper 4 || switch->taper 5 || 50/50->taper 6 || public->taper 7\n");
// affichage de la question qui a été préalablement pioché dans le fichier de questions
scanf("%ld",&rep);
if (rep==vrai_rep)
{
printf("Bravo! c'est la bonne reponse, vous venez de remporter la somme de %ld \n",&gain[i]);
gain[i]=gain[i]+1;
question==question+1;
}
if (rep==5 && jocker_switch==1)
{
jocker_switch=0;
printf("Vous avez choisi le switch, une autre question va s'afficher \n");
// le programme choisi alors au hazard une autre question de la même catégorie
}
if (rep==6 && jocker_5050==1)
{
jocker_5050=0;
//l'ordinateur enlève au hazard 2 mauvaises réponses, donc choisit 2 réponses sur 3 a supprimer qui ne sont pas égal à vrai_rep
r=rnd(1,3); // on choisit au harzad une réponse fausse parmi les 3 disponibles qu'on va laisser affiché
if (r==1)
{
//afficher vrai_rep+rep1
}
if (r==2)
{
//afficher vrai_rep+rep2
}
if (r==3)
{
//afficher vrai_rep+rep3
}
}
if (rep==7 && jocker_public==1)
{
jocker_public=0;
P==publicpourcent(vrai_rep,question);
vrai_rep=tab[1];
for (j=0;j<3;j++)
{
printf("%ld",P[j]);
}
//l'ordinateur donne un pourcentage au hazard qui est de moins en moins important pour la bonne réponse quand on avance dans les questions
//on utilise la fonction créee préalablement qui permet de donner un pourcentage plus ou moins fiable en fonction de la difficulté de la question
// Affichage du tableau retourné par la fonction qui donne les 4 pourcentages
}
if (rep==0)
{
printf("Bravo! Vous repartez avec la somme de %ld euros",&gain[i]);
fin=1;
}
if (rep>7 || rep<0)
{
printf("Erreur de frappe ! Veuillez retaper votre choix \n");
printf("voici la question %ld a %ld euros\n", &question, &gain[i]);
printf("switch=%ld 50/50=%ld public=%ld",&jocker_switch,&jocker_5050,&jocker_public);
printf("\n");
printf("instructions :\n arreter->taper 0 || reponse 1->taper 1 || reponse 2->taper 2 || reponse 3->taper 3 || reponse 4->taper 4 || switch->taper 5 || 50/50->taper 6 || public->taper 7\n");
// affichage de la question qui a été préalablement pioché dans le fichier de questions
}
if (rep==5 && jocker_switch==0)
{
printf("Vous n'avez plus ce jocker ! Veuillez retaper votre reponse ! \n");
// réacffichage de la question posée
}
if (rep==6 && jocker_5050==0)
{
printf("Vous n'avez plus ce jocker ! Veuillez retaper votre reponse ! \n");
// réacffichage de la question posée
}
if (rep==7 && jocker_public==0)
{
printf("Vous n'avez plus ce jocker ! Veuillez retaper votre reponse ! \n");
// réacffichage de la question posée
}
else
{
printf("desole mais ce n'est pas la bonne reponse \n");
printf("\n");
printf("La bonne reponse etait %ld\n",&vrai_rep);
printf("\n");
// Gain en fonction du palier franchi
if (gain[i]<1500)
{
gain[i]==0;
}
if (gain[i]>1800 && gain[i]<48000)
{
gain[i]==1500;
}
else
{
gain[i]==48000;
}
printf("Vous repartez avec la somme de %ld euros\n",&gain[i]);
fin==1;
}
}while(fin!=1 || gain[i]<1000000); // la boucle continue tant que fin n'est pas égal à 0 ou que le joueur n'a pas terminé le jeu
printf("--------------------------------FIN DU JEU----------------------------------\n");
return 0;
}
A voir également:
[déplacé DEPHI -> C] Fonction pourcentage pour le jeu " qui veut gagner des mill
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 6 janv. 2010 à 15:07
Plus la difficulté sera élevée, plus les quatre pourcentages sont uniformément répartis. Tu pourrais imaginer une fonction (mathématique) de la sorte :
x est la part du public qui répond correctement, sur une échelle de 1, et t est la difficulté de la question, de 1 à 15. On peut imaginer la fonction suivante :
x = 25 + (3 + r)t - 4r, où r est un nombre réel aléatoire 0 < r < 1