begin process at 2012 02 09 15:45:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

8 reines


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

8 reines

lundi 2 mars 2009 à 16:08:43 | 8 reines

mehdislim59

bonjour je suis nouvo et je debute en programmation et je voudrais savoir comme resoudre mon petit probleme sur les 8 reines je suis mon enoncé qui me di de faire une procedure ou il y a une mise a zero de la matrice et de rentrer les coordonnees de mes reines puis une procedure de réaffichage de la matrice jusque ici tout va bien !!
mais apres je dois faire une fonction sans prise avec en parametre la matrice
#include<stdio.h>
#define max 9

typedef int typeechiquier[max][max];
typedef int ranger[max];
typedef int ranger2[max];
void lireechiquier(typeechiquier echiquier)
{
int i,j,n,cpt;
//saisie de n
printf("Saisir n :");
scanf("%d",&n);
printf("\n");
//initialisation tableau
for(i=1;i<max;i++)
{
    for(j=1;j<max;j++)
    {
        echiquier[i][j]=0;
    }
}
for(cpt=1;cpt<=n;cpt++)
{
printf("Saisir le couple (i,j) : ");
scanf("%d,%d",&i,&j);
printf("\n");

}
}


void afficherechiquier(typeechiquier echiquier)
{
int i,j;
for(i=1;i<max;i++)
{
                  printf(" _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n");
    for(j=1;j<max;j++)
    {
        if(echiquier[i][j]==1)
        {
            printf("| D ");
        }
        else
        printf("|   ");
    }
printf("\n");
}
printf(" _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n");
}

int sansprise(typeechiquier e)
{


je suis bloker la ..............


}
main()
{
typeechiquier e;
int a=0;
lireechiquier(e);
afficherechiquier(e);
printf("\n\n");
a=sansprise(e);
if(a==1)
printf("en prise\n");
else
printf("Bravo gagner");

getch();
}

Si quelqu'un peut m'aider merci davance
lundi 2 mars 2009 à 16:10:46 | Re : 8 reines

mehdislim59

typedef int ranger[max];
typedef int ranger2[max];

g oublier d'enlever ces deux lignes ne pas y faire attention
mardi 3 mars 2009 à 14:41:43 | Re : 8 reines

MahaYassine

Normalement dans la fonction sansPrise tu devrais y faire trois parties:
   *vérification de la ligne
   *vérification de la colonne
   *vérification de la diagonale (sans oublier que la diagonale coentient deux parties)
ça serais simple de faire la vérification, mais cette dérnière doit se faire part rapport  à une position, c'est à dire la fonction sera à peut près comme ça: sansPrise(echiquier e ,position p) => pour vrérifier si en plaçant une reine à la position p elle pourrait être attaquée ou pas.
 j'éspère que j'étais clair !!

(tu ne serais pas un étudiant de l'isg à tunis)

mardi 3 mars 2009 à 19:06:48 | Re : 8 reines

mehdislim59

je ne vois pas comment faire je ne vois pas ton idéeMahayassine ne pourait tu pas me montrer sil te plait?
jeudi 5 mars 2009 à 14:12:33 | Re : 8 reines

MahaYassine

nous supposons que position est une structure contenant 2 attributs: 
   * x ==> ligne
   * y==> colonne

bool sansPrise(typeechiquier e, position p)
{
   if(verfierligne(e,p) && verifiercolonne(e,p) && veriferdiag(e,p)
      return true;
   return false;
}

bool verifierligne(typeechiquier e, position p)
{
   for (int i=0; i<nbcolonne;i++){
      if( e[p.x][i] ==1 )
         return false; //il y a une prise !!
   }
   return true;
}
 voila c'est à peu près ça !!
tu fais idem pour le reste !!
le code je l'ai écrit directement (il n'est pas complié)
essaye et dis moi si c'est bon ou pas!!

jeudi 5 mars 2009 à 14:15:29 | Re : 8 reines

MahaYassine

une petite sansPrise c'est pour vérifier s'il est possible d'ajouter une reine à une position P ou pour juste vérifer l'échiquier à la fin de l'éxécution, c  a d après avoir mis ttes les reines !!?
jeudi 5 mars 2009 à 16:20:22 | Re : 8 reines

mehdislim59

ji arrive pas jsui trop nul mdr g poser ma stuct{int x,y;}position;
if( e[p.x][i] ==1 ) g un probleme par rapport a cette ligne lors de la compilation et sa marche pas lol dsl de vous embétez autant!!!
jeudi 5 mars 2009 à 16:55:51 | Re : 8 reines

MahaYassine

c koi l'erreur la complication ?
essaye de mettre ta structure comme ça:

struct position {
 int x;
int y;};

et lors de la déclaration tu mets: 

   struct position p;

n'oublis pas de me donner l'erreur en cas où ça marche pas!!

jeudi 5 mars 2009 à 19:47:37 | Re : 8 reines

mehdislim59

sa marche pas mdr
jeudi 5 mars 2009 à 23:04:57 | Re : 8 reines

MahaYassine

//voila essaye et di moi sa donne quoi

#include

<stdio.h>

#include

<conio.h>

#define

max 8

typedef

struct position {

int x;

int y;

}pos;

typedef

int typeechiquier[max][max];

void

lireechiquier(typeechiquier echiquier, int n)

{

int i,j,cpt;

pos p;

//initialisation tableau

for (i=0;i<max;i++)

{

for (j=0;j<max;j++)

{

echiquier[i][j]=0;

}

}

for (cpt=0;cpt<n;cpt++)

{

printf(

"Saisir le couple numero %d: \n" ,cpt+1);

do {

printf(

"Saisir(i): " );

scanf(

"%d,%d" ,&p.x);

}

while (p.x<1 || p.x-1>n); //il ne faut pas dépasser le nombre choisi de reine

do {

printf(

"Saisir(j): " );

scanf(

"%d,%d" ,&p.y);

}

while (p.y<1 || p.y-1>n);

echiquier[p.x-1][p.y-1]=1;

}

}

void

afficherechiquier(typeechiquier echiquier, int n)

{

int i,j;

for (i=0;i<n;i++)

{

printf(

" _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n" );

for (j=0;j<n;j++)

{

printf(

"--" );

if (echiquier[i][j]==1)

printf(

"| R |" );

else

printf(

"| |" );

printf(

"--" );

}

printf(

"\n" );

}

printf(

" _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n" );

}

//vérifier prise sur une ligne

bool

verifLigne(typeechiquier echiquier, int n)

{

int comp=0,i,j;

for (i=0;i<n;i++)

{

comp=0;

for (j=0;j<n;j++)

{

if (echiquier[i][j]==1)

comp++;

if (comp>1)

return false ;

}

}

return true ;

}

//vérifier prise sur une colonne

bool

verifColonne(typeechiquier echiquier, int n)

{

int comp=0,i,j;

for (i=0;i<n;i++)

{

comp=0;

for (j=0;j<n;j++)

{

if (echiquier[j][i]==1)

comp++;

if (comp>1)

return false ;

}

}

return true ;

}

//vérifier prise sur les diagonales

bool

verifDiagonale (typeechiquier echiquier, int n)

{

int comp=0,i,j,l=0,m=0;

for (i=0;i<n;i++)

{

for (j=0;j<n;j++)

{

l=i;

m=j;

if (l==0 ||m==0)

{

comp=0;

do {

if (echiquier[l][m]==1)

comp++;

if (comp>1)

return false ;

l++;

m++;

}

while (l<n && m<n);

}

}

}

return true ;

}

bool

sansprise(typeechiquier echiquier, int n)

{

if

(verifDiagonale(echiquier,n) && verifLigne(echiquier,n) && verifColonne(echiquier,n))

{

printf(

"Bravo gagné\n" );

return true ;

}

printf(

"En prise\n" );

return

false ;

}

int

main()

{

//saisie de n

int n;

do {

printf(

"Saisir n le nombre de reines :" );

scanf(

"%d" ,&n);

printf(

"\n" );}

while (n<1 || n>max);

typeechiquier e;

lireechiquier(e,n);

afficherechiquier(e,n);

printf(

"\n\n" );

sansprise(e,n);

getch();

}



Cette discussion est classée dans : int, printf, max, reines, typeechiquier


Répondre à ce message

Sujets en rapport avec ce message

probleme 8 dames fonction sans prise [ par mehdislim59 ] bonjour je suis nouvo et je debute en programmation et je voudrais savoir comme resoudre mon petit probleme sur les 8 reines je suis mon enoncé qui me appel de fonction [ par ibnjabal ] Bonjour j'essaie de faire une fonction qui calcule la somme de deux matrice et ça fonctionne bien mais seulement c'est quand j'essaie de le faire dans Passage par adresse d'un tableau de structures. [ par alekine ] Bonjour, j'ai un problème pour passer par adresse un tableau de structures. Voilà mon code:#include #define L_MAX 2struct point //la structure d'un p bitte hilfe!!!!!!!!! [ par sansan_2 ] Bonjour!!!!!!!! le programme c est un FIFO (ringpufffer) et j aimerais avoir une amelioration. Apres execution du programme, faire une tabulation, un problème de fonction [ par norton ] voila j'aimerai savoir pk mon compilateur me dit :"ain.cpp(41) : warning C4551: function call missing argument list"je débute en C++ voila mon code :# je ne comprends pas mon code n'affiche pas ma grille...de morpion [ par nicoworld ] Voilà ben le .exe m'affiche pas ma grille cje ne comprends pas!!!!si quelqu'un peut me dire pourquoi????voilà le code://MORPION 10*10 :#include int ve c++ creation d'un fichier texte a nom variable [ par sloaneaaaa ] ben voila je voudrai creer un fichier texte auquel je puisse donner n'importe quel nom ms g des erreurs que je comprend pasle nom de fichier est ds un probleme avec parametres [ par Amanobuo ] Bonjour, et merci pour les info sur la dll fmod ! ma question : J'apprend le C++ et je fais des application en mode console. a partir de la fonction m Multiplication d'une matrice par un scalaire [ par skrime ] Bonjour, j'ai un exercice à faire qui consiste à multiplier une matrice par un scalaire en C (la prof ne veut pas qu'on se serve des boucles FOR), je Pb de printf [ par AlexMAN ] Bonjour, Voila, j'ai un ptit pb dans la fonction ki suit : si je place le printf ki suit getch() en commentaire, le code ne fonctionne plus, au contra


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,324 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales