Demande d'algo Mastermind
chabine
-
blurk Messages postés 493 Date d'inscription Statut Membre -
blurk Messages postés 493 Date d'inscription Statut Membre -
J'ai un devoir qui consite a créer le programme de mAstermind mais je suis perdu et je n'arrive pa a commence l'algo
Aidez moi SVP!!!!!!!!!!
Aidez moi SVP!!!!!!!!!!
2 réponses
-
Heu oui d'accord, mais ton prgramme doit faire quoi?
C'est l'ordi qui choisit les couleurs, et apres tu as une interface pour qu'un 'hulain' trouve la bonne combinaison?
ou tu choisis les couleurs et c'est l'ordi qui retrouve ta combinaison pas à pas?
ou pour jouer à 2?
un pti peu plus de precision, stp!!!-
pitier au secours
c'est un mastermind a 5 couleur identifier par 0 1 2 3 4 en dix coups en mode console
d'avance merci- Salut, tu prgm en quoi ? je te propose les étapes suivantes
1) tirage aléatoire pour positionner les couleurs. Tu peux faire une loi uniforme sur [0, 1] et tu dis si 0<=n<0.2 alors 0, si 0.2<=n<0.4 alors 1 etc (n est ton tirage aléatoire)
2) tu mets en mémoire ces 5 nb dans un vecteur par exemple
3) l'être humain rentre 5 nb dans un vecteur. Tu fais des vérifications pour savoir s'il y a bien 5 nb et si ils sont compris entre 0 et 4
4) tu compares ces deux vecteurs et tu renvoies un vecteurs à deux dimensions pour dire le nb de couleurs bien placées et le nb de couleurs mal placées.
Tout ceci dans un while(counter<=10)
j'espère que ces gds idées peuvent t'aider.
Pom
-
-
Salut,
Normalement je devrais pas faire ça,
mais n'importe quel néophyte peut télécharger
des exemples de ce genre :
#include <string.h> #include <stdio.h> #include <stdlib.h> #include <time.h> int main( ) { int nbcoups=0; int nbchiffre=0; int nbp=0,nmp=0,gagne=0,i,j,k; char combinaison[10], combijeu[10]; char jeu[10]; time_t t; srand((unsigned) time(&t)); printf("en combien de coups jouez vous ?"); scanf("%d",&nbcoups); if (nbcoups <1)nbcoups =1; if (nbcoups>12)nbcoups =12; printf("avec combien de chiffres ?"); scanf("%d",&nbchiffre); if (nbchiffre <1)nbchiffre =1; if (nbchiffre>9)nbchiffre =9; for(i=0; i<nbchiffre; i++) { combinaison[i]=(char)(rand()%10+'0'); } printf("%s",combinaison); for(i=0; i<nbcoups && gagne==0 ; i++) { printf("essai N° %d :",i); scanf("%s",jeu); if(!strncmp(jeu,combinaison,nbchiffre)) gagne=1; else { strcpy(combijeu, combinaison); nbp=0; nmp=0; for(j=0;j<nbchiffre; j++) { if(jeu[j]==combijeu[j]){nbp++;jeu[j]='B';combijeu[j]='b';} } for(j=0;j<nbchiffre; j++) { for(k=0;k<nbchiffre;k++) if(j!=k && jeu[j]==combijeu[k]) {jeu[j]='M';combijeu[k]='m'; nmp++;} } printf("Bien places :%d Mal places :%d", nbp,nmp); } } if(gagne) { printf ("trouve en %d coups",i); } scanf("%d",i); return 0; }
Celui là, plus simple tu meurs, en plus ça marche avec gcc, builder, visual et devcpp
cordialement
¤