ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 11 oct. 2005 à 12:11
Normalement depuis une méthode membre on peut appemer n'importe quelle autre méthode membre de la classe. Il faudrait plus de code ainsi que les messages d'erreurs du compilo ou du linker.
upyboobs
Messages postés79Date d'inscriptionsamedi 28 octobre 2000StatutMembreDernière intervention10 décembre 2005 11 oct. 2005 à 12:21
ok alors voila le code :
Mets le dans ton compilateur, pour comprendre le fonctionnement du programme regarde surtout les méthodes :
grille::actions() //Dans le case '3' du switch(key)
et grille::aide()
Merci beaucoup
pour que le programme marche, il te faudrait une liste de mot dans un fichier que nous avons sur le pc... Mais le programme ne va aps jusque la pour l'instant ^^
enfin, pour entrer un mot dans la grille il te suffit de le taper normalement.
ensuite tu peut naviguer dans la grille avec les touches 4,2,6,8
pour supprimer une lettre appuie sur 7
pour ajouter une case noire appuie sur 9
(le programme est une aide a la conception de mots croisés)
pour lancer l'aide a la conception pour un mot horizontal place toi sur la premiere lettre de ce mot et tape 3
et pour pour un mot vertical tape 1
eninf enfin, le concept est de laisser 2 ou 3 cases vides et le programme doit proposer une liste de mots qui conviennent.
void grille::aide(int a) {
char tampon[50];
if (a==1) {
int i=curseurli;
int j=0;
while (tableau[i][curseurco]!='#' && i<=nblignes) {
tampon[j]=tableau[i][curseurco];
i++;j++;
}
}
else if (a==3) {
int i=curseurco;
int j=0;
while (tableau[curseurli][i]!='#' && i<=nbcolonnes) {
tampon[j]=tableau[curseurli][i];
i++;j++;
}
}
FILE* fic;
char complist[50][M];
int taille=1;
int k;
char mot[50];
strcpy(mot,tampon);
char aux[50];
fic=fopen("mots.dat","r");
if(fic!=NULL){
while(!feof(fic)){
int l=0;
int mauvais=0;
fscanf(fic,"%s",aux);
if(strlen(mot)==strlen(aux)){
while (l!=strlen(mot) && !mauvais){
if( (aux[l]==mot[l]) || (mot[l]=='.') ) {}
else{
mauvais++;
}
l++;
}
if(mauvais==1){
}
else{strcpy(complist[taille],aux);taille++;}
}
else{}
}
fclose(fic);
}
else{printf("Probleme mots.dat nexiste pas");}
system("cls");
printf("\nListe des mots compatibles :\n\n");
printf("%s\n\n",tampon);
for(k=1;k<taille;k++){
printf("%d. %s\n",k,complist[k]);
printf("\n");
}
system("PAUSE");
}
void main () {
int a;
int b;
char saisie [10];
int encore;
// Saisie du nb de lignes
do{
bye=0;
encore=0;
printf ("Veuillez indiquer le format de la grille <nb lignes>");
scanf ("%s", saisie);
if (! sscanf(saisie,"%d",&a)){
encore = 1;
printf("Vous devez saisir un chiffre.\n");
}
else {
if ( a<0 || a>100 ){
printf("Le nombre doit etre compris entre 1 et 100.\n");
encore = 1;
}
}
} while (encore == 1);
// Saisie du nb de colonnes
do{
encore=0;
printf ("Veuillez indiquer le format de la grille <nb colonnes>");
scanf ("%s", saisie);
if (! sscanf(saisie,"%d",&b)){
encore = 1;
printf("Vous devez saisir un chiffre.\n");
}
else {
if ( b<0 || b>100 ){
printf("Le nombre doit etre compris entre 1 et 100.\n");
encore = 1;
}
}
} while (encore == 1);
//mise en place de la grille
printf ("test\n");
grille grid (a,b);
//MENU
//system("cls");
bye=0;
do {
system("cls");
grid.afficher();
grid.actions();
system("cls");
grid.afficher();
} while ( bye != 1);
}
upyboobs
Messages postés79Date d'inscriptionsamedi 28 octobre 2000StatutMembreDernière intervention10 décembre 2005 11 oct. 2005 à 12:35
Bon, on a plus ou moins résolu le probleme.
Le binome avec lequel je travail, a trouvé judicieux de définir une taille de tableau de 100000000 (il a prétendu s'endormir sur le clavier lors de la saisie).
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 12 oct. 2005 à 09:28
Dans ta classe, tu créés un tableau de 100x100 alors que lorsque tu créés ton objet, si tu donnes juste une grille de 50x50, tu perds 75% de mémoire. faut utiliser de l'allocation dynamique pour ton truc.
ymca2003, je comprends pas pk tu dis que ca fait exploser la pile. Il a suffisamment surement assez de ram pour stocker ces tableaux.
ET pour finir, je vois pas l'utilité de ton tableau [50][10000000].