Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1614 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Comment programmer en c++ manstermind?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment programmer en c++ manstermind?

n°2115969
bayarno
Posté le 11-12-2011 à 04:57:00  profilanswer
 

Comment programmer en c++ manstermind?
Bonjour,
je suis débutant sur C++ et j'utilise devC++
j'essaye des crée de petits jeux mais devant ce lui la je bloque
merci de m'aider
 
 
Configuration: Windows XP / Firefox 3.6.24
 
comment crée le jeux master mind sur c++
il y a une combinaison de couleur a trouver
les couleurs possible sont 4 : r b v j
je jeu doit afficher le nombre de couleur qui sont a leur position et le nombre de couleur mal positionner
exemple pour le code rbvj
quand je tape bvvj
l' affichage est comme le suivent
couleur identique :2
couleur mal positionner :1
c'est l'utilisateur qui choisir la combinaison
et il y a le droit a 6 essai pas plus
et si sa de combinaison est toute juste avant le 6ém essai
l'affiche est "gagner" sinon "perdu"
apparemment ca ce fait avec un tableau non !
merci

mood
Publicité
Posté le 11-12-2011 à 04:57:00  profilanswer
 

n°2116020
Terminapor
I'll see you rise.
Posté le 11-12-2011 à 15:29:08  profilanswer
 

Oui, avec un tableau ça peut se faire
Là comme ça je dirais deux tableaux, un qui contient la solution, l'autre l'essai du joueur, tu vérifies la que la couleur que l'utilisateur a rentré dans le tableau de solution existe. Tu sais que si elle a le même index que le tableau de solution, elle est bien placée, sinon elle est mal placé, et tu incrémentes ce qu'il faut pour tes espèces de compteur (couleurs identique / couleurs mal positionnées)
Ensuite, tu sais que si le nombre de couleur identique est le même que le nombre de case, c'est bon il a gagné :D
Après pour les plusieurs essais, tu peux essayer de te débrouiller je pense, y'a rien de bien compliqué :D


---------------
Perhaps you don't deserve to breathe
n°2116053
bayarno
Posté le 12-12-2011 à 04:20:02  profilanswer
 

j'ai fait ca mais il y a plein de problèmes  
 
merci de m'aider  
j'ai pas trouvé une autre solution qu'avec ces 3 whiles  
 
peur etre c'est mieux comme ca mais tjr
des fautes a gogo
 
 
 
/*
 
 
*/
 
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NBCOUL 4
#define NBESS 6
 
 
main()
{
char codeSecret[NBCOUL] ; // tableau contenant les 4 couleurs à trouver
//char copie[NBCOUL] ; // tableau contenant la copie du tableau combinaison
char reponse,essai[NBESS] ; // tableau contenant chacun des essais
int i , k, n ; // indice de parcours des tableaux
int test; // compteur d'essai avant de trouver la formule
int bb=0, mm=0 ; // compteurs de bien et mal placés
 
srand(1810)
 
for(i=0;i<NBESS;i++)
{
switch(rand()%4){
case 0: codeSecret[i]='r';break;
case 1: codeSecret[i]='b';break;
case 2: codeSecret[i]='v';break;
case 3: codeSecret[i]='j';break;
}
}
 
 
// Le do pour rejouer
do {
 
 
// 6 Essais Max
for (test = 0; test < NBESS; test++){
do{
do{
 
printf("Entrez votre combinaison : " );
scanf("%c", &essai[n]);
n++;
}
while (n < NBCOUL);
 
 
// boucle pour les valeurs presentes et bien placees
n=0;
i=0;
for (j = 0; j < NBCOUL; j++)
{
if (essai[n] == codeSecret[i] && n == i)
{
bb++;
}
n++;
i++;
}
printf("Couleur identique: %d",bb);
// boucle pour les valeurs presentes mais mal placees
n=0;
i=0;
for (j = 0; j < NBCOUL; j++)
{
if (essai[n] == codeSecret[i] && n != i)
{
mm++;
}
n++;
i++;
}
printf("Couleur presentes : %d",mm);
 
 
}
while (bb<NBCOUL);
printf("\nVous avez gagne " );
 
}
printf("\nVous avez perdu " );
 
 
// Afficher la combinaison pour le perdant
if (bb<NBCOUL)
{
printf("\nLa combinaison etait %c %c %c %c ",codeSecret[0],codeSecret[1],codeSecret[2],codeSecret[3] );
}
 
// Demander si le joueur veut rejouer
printf("\nVoulez-vous rejouer ? (o/n) " );
scanf(" %c", &reponse);
}
while (reponse == 'o' || reponse == 'O');
if (reponse == 'n' || reponse=='N' ) printf("Fin du jeu " );
 
system("pause" );
}


Message édité par bayarno le 12-12-2011 à 07:53:24
n°2116167
Terminapor
I'll see you rise.
Posté le 12-12-2011 à 13:02:15  profilanswer
 

Déjà, ton code c'est du C là, pas du C++

 

Bon, d'abord, est-ce que la combinaison 'rrjb' marche pour le mastermind ? Faut pas absolument 4 couleurs différente ? Parce que rien qu'au début, si je me trompe pas dans l'analyse, tu risques d'avoir des doublons dans ton tableau :D

 

En C++ on se sert pas tellement des printf/scanf, utilises plutôt le std::cin et std::cout (cin pour demander une valeur, cout pour afficher)

 


Par exemple :

 
Code :
  1. using namespace std; // On a pas à écrire std::cin / std::cout, le namespace est un raccourci
  2. int main()
  3. {
  4. int variable_a_saisir,variable_a_afficher;
  5. variable_a_afficher=140;
  6. cout<<"La variable à afficher est "<<variable_a_afficher<<endl; // std:endl correspond à '\n'
  7. cin>>variable_a_saisir;
  8. cout<<"Vous avez entrez "<<variable_a_saisir<<endl;
  9. }
  10. }
 

Bon sinon, globalement c'est ça à quelque erreurs près.

 

Par exemple, à la fin :

 
Code :
  1. do
  2. {
  3. // Demander si le joueur veut rejouer
  4. printf("\nVoulez-vous rejouer ? (o/n) " );
  5. scanf(" %c", &reponse);
  6. }
  7. while (reponse == 'o' || reponse == 'O');
  8. if (reponse == 'n' || reponse=='N' ) printf("Fin du jeu " );
 

Ben il redemandera 'voulez vous rejouer ?" jusqu'à ce que le joueur dise oui, faut ajouter 'reponse=='n' || reponse=='N' dans ta condition du while :D

 

J'te conseil aussi d'épurer ton code en ajoutant des fonctions, par exemple une qui teste les couleurs bien placés/mal placé (avec passage par référence vu qu'elle aurait besoin de renvoyer plusieurs variable)

 

Essai de refaire tout ça en C++ (cout/cin et références) et d'ajouter quelques fonction pour alléger le main et re-poste ton code :D

 

edit : Je viens de capter que t'es super ambiguë, tu veux faire ça C ou en C++ ? Là ton code c'est du C, tu le met dans la cat du C et tu parles de C++, tu veux faire quel langage ? :D


Message édité par Terminapor le 12-12-2011 à 13:07:16

---------------
Perhaps you don't deserve to breathe
n°2116240
bayarno
Posté le 12-12-2011 à 15:54:26  profilanswer
 

en C  
pas de C++  
et oui le rrjb ou vbvr ca marche enfin normalement sur manstermind  
"teste les couleurs bien placés/mal placé"  
ca veut dire quoi ! comment faire pour ca !
un petit indice si c'est possible !!
je comprend rien en c++


Message édité par bayarno le 12-12-2011 à 16:22:02
n°2116249
shaoyin
Posté le 12-12-2011 à 16:26:07  profilanswer
 

[:cbrs]
on dit "mastermind", pas "manstermind"


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Comment programmer en c++ manstermind?

 

Sujets relatifs
pistes pour programmer une gestion de procédureMnémotechnie, programmer et administrer de mémoire
Programmer une communication via liaison RS232 en CProgrammer un bot
programmer la fonction mathématique dérivée seconde en langage cprogrammer fonction If-Thene-Else pour des fonction booleene
Comment programmer un client FTP sous AndroidProgrammer en C une fonction d'interruption pour dsp
Faut-il être bon en maths pour programmer?Programmer Acquisition de données en C++/VB
Plus de sujets relatifs à : Comment programmer en c++ manstermind?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR