TeamSo6
Messages postés13Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention31 mai 2006
-
6 mai 2006 à 22:27
TeamSo6
Messages postés13Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention31 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!
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 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
++
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 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);
TeamSo6
Messages postés13Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention31 mai 20061 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.
TeamSo6
Messages postés13Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention31 mai 20061 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.
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 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
TeamSo6
Messages postés13Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention31 mai 20061 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}};
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 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.
++
TeamSo6
Messages postés13Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention31 mai 20061 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.