8 REINES SUR UN ÉCHIQIER

Signaler
Messages postés
478
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
10 juin 2015
-
cs_NoMitsu
Messages postés
122
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
15 février 2011
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52359-8-reines-sur-un-echiqier

cs_NoMitsu
Messages postés
122
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
15 février 2011

Bonjour,

Je vois bien que tu es débutant, néanmoins le code est une horreur ! je te conseille fortement d'essayer de le recoder sans les goto et sans le k==92. De plus les 8 reines, est un excellent exercice de récursivité, tu devrais essayer de le faire de cette façon. Bon courage et si tu as besoin d'aide n'hésite pas a poser des questions.
fredericfabry
Messages postés
5
Date d'inscription
mercredi 21 juillet 2010
Statut
Membre
Dernière intervention
11 décembre 2011

Bonjour
Je pense avoir mal compris le système de passage de paramètre d un tableau qu'il soit a une dimension ou plusieurs.
Effectivement le int*t[9] peut être remplacé par int*t.

Je comprend pourquoi les goto n ont plus la cote:
sur les langages moderne la notion de fonction ou d'encapsulation permet de penser autrement (fonction ou méthode) mais sur les automates industriels plus proche de l'assembleur, ca fonctionne encore.

Je vous remercie pour vos commentaires.

(demain j'essai le code de yannikator)(super idée mais irréalisable pour moi tout seul)
Yannikator
Messages postés
23
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
10 novembre 2012

Bon comme j'étais aussi intéressé par le résultat, j'ai pas résisté de mettre le résultat dans un fichier ^_^.

Pour ceux que ça intéresse :
void saveResult(int(*t)[9]){

FILE *file;
int i,j;
static int tagg = FALSE;

if(tagg == FALSE)
{if((file fopen("C:\\result.txt","w")) NULL)
{printf("Probleme creation fichier...");return;}
}
else
{if((file fopen("C:\\result.txt","a+")) NULL)
{printf("Probleme MAJ fichier...");return;}
}

for (j=1;j<=8;j++)
{
for (i=1;i<=8;i++)
{
if (t[i][j]<0)
{
fputc('*',file);
}
else
{
if (t[i][j]>0)
{
fputc('R',file); //Affiche le R de reine
}
else
{
fputc('-',file); //Affiche les possibilités de pose de reine
}
}
}
/*fprintf(file,"%s",CHARRIOT);*/
fputs(CHARRIOT,file);
}
fprintf(file,"%s%s","--------",CHARRIOT);
fprintf(file,"%s%d%s%s","---",tagg,"---",CHARRIOT);
fprintf(file,"%s%s%s","--------",CHARRIOT,CHARRIOT);
tagg++;
fclose(file);
}

Sans oublié les define:
#define FALSE 0;
#define CHARRIOT "\n" /*retour charriot...*/

A+
Yannikator
Messages postés
23
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
10 novembre 2012

Salut,

J'aime beaucoup l'algo, je trouve la méthode étonnante et très ancienne. Ce qui reflète bien la référence bibliographique auquel tu fais référence. Car les goto sont très dépréciés de nos jours, même si ils sont parfois indispensable.
Cependant je serais curieux de savoir si tu peux me dire qu'est-ce que tu fais quand tu déclare tes paramètres avec int (*t)[9], un simple int *t n'aurait pas été plus simple en tant que débutant...
Sinon l'algo je le trouve très intéressant... J'avais jamais pensé comme ça.

A+