Jeu Memory en C++

Résolu
TeamSo6 Messages postés 13 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 31 mai 2006 - 6 mai 2006 à 22:27
TeamSo6 Messages postés 13 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 31 mai 2006 - 22 mai 2006 à 14:47
Bonjour, je suis un étudiant en 1ère année de Licence Math-Informatique, et il m'est demandé de créer un petit jeu de memory tout à fait basique, mais je ne sais pas trop comment m'y prendre si quelqu'un pouvait m'aider je lui en serait très reconnaissant!!!
Merci d'avance et bravo à toutes les personnes permettant le bon fonctionnement de ce site!

Citron pas bon!!!!

13 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
9 mai 2006 à 10:24
Tu peux faire un test de la forme suivante :
if(x1>=0 && x1 < 4 && y1 >=0 && y1 < 4) // verification de la saisie de la premier carte
{
if(x2>=0 && x2 < 4 && y2 >=0 && y2 < 4) // verification de la saisie de la 2eme carte
{
if(x1==x2 && y1 == y2)
{
cout << "erreur carte identiques";
}
else
{
// la c'est bon tu peut retourner les deux cartes
}
}
else
{
cout << "erreur de saisie pour la carte2";
}
}
else
{
cout << "erreur de saisie pour la carte 1 ";
}
Pour afficher les cartes retourné tu creer un talbeau de la meme taille que le tableau de référence tab[4][4]. Rempli de 0. Si tu veut devoiler deux case tu remplace tab[x1][y1] et tab[x2][y2] par la valeur 1 et quand tu affiche la grille du fait un test avant:
if(tab[i][j] ==0)
cout << "*";
else
cout << a[i][j]; // a c'est le tableau qui contient les "vrai valeur";
Pour afficher les valeurs que de pendant un lap de temps tu peut faire un appel a sleep qui permette de bloque le programme dedans x secondes et apres tu fais un appel system pour effacer l'ecran system("clear"); ou quelque chose dans le genre
++
3
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
9 mai 2006 à 11:04
Pour l'affichage pendant un certain temps :
tab -> le tableau qui permet de gerer affichage
si valeur dans tab = 0 -> pas d'affichage de cartes
si valeur dans tab = 1 -> affichage "temporaire" de carte (couple de carte non identique)
si valeur dans tab = 2 -> affichage permant de la carte
afficheTableau(tab);
Sleep(5000); // attente pendant 5000 millisecondes
system("clear"); // efface l'ecran
// modification du tableau
for(int i=0; i<4; i++)
for(int j=0; j<4; j++)
{
if(tab[i][j] == 1)
tab[i][j] = 0; // le couple retourné etait pas bon on le recache
}
afficheTableau(tab);
3
TeamSo6 Messages postés 13 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 31 mai 2006 1
22 mai 2006 à 14:47
J'ai un petit problème avec la
fonction sleep je ne suis pas trop sur que ce soit ça qu'il faille
utiliser vu que ça ne fait que stopper le processus,  ça ne
fait  pas un affichage pendant un temps donné.

Si tu sais comment  faire ça serait sympa de m'aider.









Citron pas bon!!!!
1
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
6 mai 2006 à 22:42
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TeamSo6 Messages postés 13 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 31 mai 2006 1
7 mai 2006 à 16:30
Merci beaucoup de ton aide mais en fait cela ne m'aide pas beaucoup parce que je l'ai déjà fait ce qui est décrit. Je sais comment faire un tableau mais c'est après que ça se corse parce qu'un fois que je l'ai créer je ne sais pas comment fait pour afficher seulement une image puis aucune ou toutes.

Citron pas bon!!!!
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
7 mai 2006 à 16:35
Pour chaque case de ton tableau tu conserve une valeur pour savoir si tu affiche le contenu du tableau ou non
version 0 -> affiche pas la valeur, 1 -> affiche la valeur
0
TeamSo6 Messages postés 13 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 31 mai 2006 1
8 mai 2006 à 13:24
Désolé mais je n'ai pas trop compris, il faut que je crée une fonction ou pas

Citron pas bon!!!!
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
8 mai 2006 à 14:08
Je sais pas exactment ce que tu veux faire donc si tu pouvais expliqué précisément ton problème ce serait bien.
0
TeamSo6 Messages postés 13 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 31 mai 2006 1
8 mai 2006 à 14:14
En fait, il faut que je fasse un jeu memory donc j'ai commencé par faire un programme (voir ci-dessous) et maintenant je ne sais pas trop quoi faire si tu pouvait m'aider au moins à m'orienté je t'en serais très reconnaissant.

#include
using namespace std;
void affiche(int tableau[4][4]);
main()

{

//declaration variables

int i; //ligne tableau
int j; //colonne tableau
int tab[4][4]={{1,7,4,5},{8,9,4,6},{3,10,1,9},{6,10,11,2}};
int tab2[4][4]={{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};
int tab3[4][4]={{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};

//construction tableau

cout<<"*********************************"<<"\n";
for(i=0;i<4;i++)
{cout<<"*";
for(j=0;j<4;j++)
{cout<<tab2[i][j]<<"\t*";
}
cout<<"\n";
}
cout<<"*********************************"<<"\n";

//jeu

}

Citron pas bon!!!!
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
8 mai 2006 à 14:24
Dans un premier temps, tu peut demander à l'utilisateur de donner les coordonnees (x1,y1) et (x2, y2) de 2 cartes dans le tableau (avec les vérification nécessaires), et apres de verifier dans le tableau si les "cases" correspondent.
Si les cases correspondent apres tu dévoiles les cases.
++
0
TeamSo6 Messages postés 13 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 31 mai 2006 1
9 mai 2006 à 10:09
Pour vérifier, je dois faire avec une
fonction ou un "if"peut suffire? Comment faire pour dévoiler seulement
deux cases et remplacer les autres par des étoiles? Une dernière
question, comment faire varier le temps d'affichage des cases dévoilées?

Je te suis très reconnaisant du temps que tu m'accorde.


Citron pas bon!!!!
0
TeamSo6 Messages postés 13 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 31 mai 2006 1
9 mai 2006 à 10:53
J'ai pas très bien compris pour l'affichage pendant un certain temps mais pour le reste c'est parfait.

Merci beaucoup pour tout le temps que tu as passé à me répondre ça m'aide vraiment énormément.

Encore mille merci!!!




Citron pas bon!!!!
0
TeamSo6 Messages postés 13 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 31 mai 2006 1
10 mai 2006 à 11:35
Merci beaucoup c'est bon je pense
avoir compris je te remercie grandement pour ton aide très utile et
j'espère pouvoir te rendre la pareil un jour.

Mille merci!!!!




Citron pas bon!!!!
0
Rejoignez-nous