IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Probleme avec mon programme des 8 reines


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Probleme avec mon programme des 8 reines
    Bonjour cher devellopeurs

    J ai travailler sur un programme qui doit me donner toutes les solution possible pour placer 8 reines sur un echiquier.
    J ai deja une partie du programme, cependant il y a des erreurs que je n'arrive pas à trouver.
    Comme je ne programme pas depuis longtemps, est-ce que quelqu'un pourrai m'aider. Merci d avance

    Voici ce que j ai deja réaliser
    [balise ajoute par mongaulois]
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    #include <stdio.h>
    #include <iostream.h>
     
    int nbcase=8;
    int point[8][8];                     //tableau representant l'echiquier
    int x,y;                              //variables pour les boucles de l'affichage du tableau
    int c[8];                             //tableau qui contient le numero de ligne des dames
    int d ;                               // variable pour les entrees-sorties
    int e[8];                            //tableau qui contient les valeurs de demarrage des boucles
    dame(int,int,int);    //fonction pour placer ou retirer une dame
    afftable();     //fonction qui affiche les resultats
    placedame(int);
     
    int main()
    {
    	for (x=0;x<nbcase;x++)		//initialise le tableau avec des 0
    	{        
    		e[x]=0;
    		for (y=0;y<nbcase;y++)
    		{
    			point[x][y]=0;
    		}
    	}
    	d=1;
    	cout<<endl;
    	if (d<0 || d>nbcase -1){
    		d=0;
    	}
    	e[0]=d;
    	placedame(0); //essaye de placer les dames
    	afftable();
    	cin>>x; //permet a l'utilisateur de voir la reponse
    	return 0;
    }
     
     
    void placedame(int ligne)		//fonction pour essayer les positions possibles
    { 
    	for (c[ligne]=e[ligne];c[ligne]<nbcase;c[ligne]++)
    	{    
    		if (point[c[ligne]][ligne]==0)
    		{  
    			e[ligne]=c[ligne]+1;  
     
    			dame(ligne,c[ligne],2);                           
    			if (ligne<nbcase -1)                              
    			placedame(ligne+1);                               
     
    			if (ligne==nbcase -1)
    			{ 
    				afftable();                                        
    				dame(ligne,c[ligne],-2);                           
    				dame(ligne-1,c[ligne-1],-2);                       
    				placedame(ligne-1);   
    				}
    			break ;    
    			}
    	}
    	if (ligne !=0)
    	{
    		if (c[ligne]>=nbcase)
    		{  
    			for (x=ligne;x<nbcase;x++)
    				e[x]=0;
    			dame(ligne-1,c[ligne-1],-2);                       //on efface la dame de la colonne juste avant
    			placedame(ligne-1);                                //on essaye de placer la dame sur la colonne d'avant
    		}
    	}
    }
     
     
     
    void dame(int a,int b,int num)
    {
    	for (x=0;x<nbcase;x++)
    	{
    		if (x !=a)
    			point[b][x]+=num;    //trace les lignes horizontales et verticales occupees
     
    		if (x !=b)
    			point[x][a]+=num;
    	}
    	for (x=1;x<nbcase;x++)			// trace les lignes diagonales occupees
    	{       
    		if (a+x<nbcase && b+x<nbcase)
    			point[b+x][a+x]+=num;
     
    		if (a-x>=0 && b-x>=0)
    			point[b-x][a-x]+=num;
     
    		if (a-x>=0 && b+x<nbcase)
    			point[b+x][a-x]+=num;
    		if (a+x<nbcase && b+x>=0)
    			point[b-x][a+x]+=num;
    	}
    	if (num>0)
    		point[b][a]+=1;      //place la dame
     
    	if (num<0)
    		point[b][a]-=1;      //retire la dame
    }
     
     
     
    void afftable()
    {
    	for (x=0;x<nbcase;x++)
    	{
    		for (y=0;y<nbcase;y++)
    		{
    			if (point[x][y] !=1)
    				cout<<0<<" ";
     
    			if (point[x][y]== 1)
    				cout<<point[x][y]<<" ";
    		}
    		cout<<endl;
    	}
    	cout<<endl;
    	cout<<"entier = une etape ,lettre=toutes les etapes"<<endl;
    	cin>>x;
    }

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Plusieur choses :
    Ce code n'est ni du C ni du C++ mais un horrible mix entre les deux que je ne souhaite même pas lire
    Les balises code existent.
    On ne va pas deviner l'erreur.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut lol
    Le code que j ai écrit si dessus à été réaliser d'après les notions aquises lors du cour d'informatique, a l'université en option " ingenieur industriel.
    Tu m'en vois désolé si sa ne ressemle à rien :p...

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Bonjour,
    cela ressemble beaucoup à
    http://www.developpez.net/forums/sho...ighlight=reine
    quelque remarque :
    * . ca va pour cette fois

    * C'est pas du C++ ton code....c'est du plustôt du C. J'ai l'impression que tu as eu les même cours que l'autre thread Mais t'inquiète le forum peut t'aider (si tu y met du tien bien sur)

    * Avant toute chose, que connait tu de la programmation Objet? Tu commence?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut re
    bah... je ne comprends pas pourquoi tu me dis que ce n 'est pa du c++, car sa fait 1 an qu' on m'enseigne la programmation en C++ à l'unif de cette façon

    donc je suis un peu perdu lol

  6. #6
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Mon dieux !
    Ce code est une horreur absolue !!
    Si on t'enseigne a programmer de cette façcon, il faut reprendre tout depuis les bases même les plus basses.
    Avec un compilateur bien réglé, ce code ne devrais même pas compiler.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par zuzu6969 Voir le message
    bah... je ne comprends pas pourquoi tu me dis que ce n 'est pa du c++, car sa fait 1 an qu' on m'enseigne la programmation en C++ à l'unif de cette façon

    donc je suis un peu perdu lol
    Il n'est pas aussi affreux comme code.
    Mais c'est du C à part les cin et cout...
    Ton code n'as aucune structure....
    Par exemple. Ici tu veut poser des rennes sur un echiquié.
    Cela aurait été judicieux d'avoir une class reine et un class plateaux

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 267
    Points : 275
    Points
    275
    Par défaut
    Plutôt que de parler du code (à moi aussi on m'a appris le C++ de cette façon (école d'ingénieur en électronique !!)), ne pourrait-on pas l'aider?

    Tout d'abord si tu veux apprendre le C++ (correct) va voir :
    les tutos
    les livres

    Sinon quand tu dis
    cependant il y a des erreurs que je n'arrive pas à trouver.
    de quelles erreurs parles-tu?

  9. #9
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    C'est pour cela que je lui ai demandé :
    * Avant toute chose, que connait tu de la programmation Objet? Tu commence?

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 267
    Points : 275
    Points
    275
    Par défaut
    [HS]
    C'est pour cela que je lui ai demandé :
    Citation:
    * Avant toute chose, que connait tu de la programmation Objet? Tu commence?
    En fait ta réponse est arrivée pendant que j'écrivais la mienne.... Je n'ai donc pas lu ton message.
    Mais t'inquiète le forum peut t'aider (si tu y met du tien bien sur)
    Et je parlais aux autres....
    [\HS]

  11. #11
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Bon après les critiques, un peu d'aide :
    essaie de :
    1- créer une class reine est une class plateau....
    2- voir comment tester si une reine voit une autre.Cette fonction devrai faire partie de la class reine. Le test est trés simple (test sur la différence des coordonnées entre deux reines)
    3- Réfléchie à l'algo pour remplir le plateau. C'est assez récursif ton problème de remplissage
    4- Préoccupe toi de l'affichage en dernier.
    5- N'hésite a demander de l'aide

  12. #12
    Membre régulier
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Points : 77
    Points
    77
    Par défaut les 8 reines
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    program echec; 
     {comment placer 8 reines sur un
    échiquier sans qu'elles soient en prise,
    le programme fournit 92 solutions. 
    }
    uses crt,drivers;
    const 
         Faux=false; 
         Vrai=true; 
    type 
     echiquier=array[1..8,1..8] of boolean; 
     diagonale_1=array[-7..7] of boolean; 
     diagonale_2=array[2..16] of boolean; 
     line=array[1..8] of boolean; 
    var 
       press,flag_exit:boolean;
       k:integer;r:string;event:tevent; mx,my:integer;d:byte;
     
     procedure ecrire(Queen:echiquier);
    var 
      l, i,j:integer;
      c,d:byte;
     
    begin
         k:=k+1; 
         writeln;textbackground(2);textcolor(1);
         gotoxy(30,10);writeln('  Solution Nø',k:3,'  ');
          gotoxy(60,13);textbackground(4);writeln(' Suivant > ');
         for i:=1 to 8 do
             begin gotoxy(28,12+i);
                for j:=1 to 8 do
                   if Queen[i,j]=Vrai then
                   begin
                      if (i in[2,4,6,8]) and (j in [2,4,6,8])then
                      c:=5
                      else
                      c:=1;
                      if (i in[1,3,5,7]) and (j in [1,3,5,7])then
                      c:=5;
                      textbackground(c);textcolor(15);write('  ');
                   end
             else
             begin
               if (i in[2,4,6,8]) and (j in [2,4,6,8])then
                 c:=5
                 else
                 c:=1;
               if (i in[1,3,5,7]) and (j in [1,3,5,7])then
                 c:=5;
                 textbackground(c);write('   ');
             end;
         end;
        delay(200);
        repeat
        initevents;
        getmouseevent(event);
        mx:=event.where.x; my:=event.where.y; inc(mx); inc(my);
        if event.buttons=$01 then
        if (my=13) and (mx in [60..71])  then
        begin
        gotoxy(60,13);textbackground(2);writeln(' Suivant > ');
        delay(80);
        exit;
        end;
        textbackground(2);textcolor(0);
        if (d<60) and (d>0) then begin
        gotoxy(d,24);write('DUT Info 1 (CSI)');
        end;
        if d=0 then
        d:=60;
        d:=d-1;delay(200);gotoxy(1,24);textbackground(2);clreol;
        until ((my=13) and (mx in [60..71]));
     
    end;{ecrire}
     procedure placer(var diag1:diagonale_1;var diag2:diagonale_2;
                        var ligne:line;var reine:echiquier;
                        var j:integer);
    var
       i0,i:integer;
    begin
      if flag_exit then exit;
      if j=9 then ecrire(reine)
      else
        for i0:=1 to 8 do
        begin
          i:=i0;
          if(ligne[i]=Faux)and(diag1[i-j]=Faux)and(diag2[i+j]=Faux) then
          begin
            ligne[i]:=Vrai;
            diag1[i-j]:=Vrai;
            diag2[i+j]:=Vrai;
            reine[i,j]:=Vrai;
            j:=j+1;
            placer(diag1,diag2,ligne,reine,j);
            j:=j-1;
            ligne[i]:=Faux;
            diag1[i-j]:=Faux;
            diag2[i+j]:=Faux;
            reine[i,j]:=Faux;
     
          end
        end
    end;{placer}
     procedure Reines_8;
    var
       i,j:integer;
       diag1:diagonale_1;
       diag2:diagonale_2;
       ligne:line;
       reine:echiquier;
    begin
      for i:=1 to 8 do
      begin
        ligne[i]:=Faux;
        for j:=1 to 8 do
        begin
          diag1[i-j]:=Faux;
          diag2[i+j]:=Faux;
          reine[i,j]:=Faux;
        end
      end;
      j:=1;
      k:=0;
      placer(diag1,diag2,ligne,reine,j);
     
    end;
    begin  d:=0;
    clrscr;
    Reines_8;
    exit;
    end.

  13. #13
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Slaut, et bienvenue sur le forum.

    Bon, une chose que l'on ne t'as visiblement pas appris dans tes cours d'informatique, c'est qu'il faut te poser les bonnes questions au bon moment, et que les différentes réponses t'apportent "naturellement" une partie de la réponse à la question suivante

    Nous allons donc reprendre depuis le début, si tu veux bien

    Avant d'écrire la première ligne de code, il est important de répondre à au moins quatre questions qui sont toujours les mêmes:
    • Que doit faire l'application (c'est généralement une phrase qui commence "je veux une application qui...)
    • Quelles données l'application va-t-elle manipuler
    • Où l'application va-t-elle trouver ces données
    • Comment l'application va-t-elle utiliser ces données
    La réponse à la première question pourrait être:
    Je veux une application qui affiche l'ensemble des possibilités permettant de placer 8 reines sur un échiquier de manière à ce qu'aucune autre ne la mette en danger
    Une possibilité alternative serait:
    Je veux une application qui affiche la ou les possibilités permettant de placer 8 reines sur un échiquier de manière à ce qu'aucune autre ne la mette en danger, en en plaçant soi-même X ou Y
    Ca n'a l'air de rien, mais le fait d'exprimer clairement un problème y apporte déjà la moitié de la solution

    En effet, ces réponses nous donnent (presque) tous les renseignement nécessaires pour répondre à la deuxième question:

    Ainsi, tu dois te dire que tous les noms sont susceptibles de représenter "un objet" que tu manipulera, à savoir:
    • la solution : un ensemble fini représentant la position de 8 reines
    • la reine : une piece d'échec respectant un certain nombre de regles de déplacement (à compléter : quelles sont ces règles )
    • l'échiquier : "terrain de jeu" carré composé de huit fois huit cases sur lesquelles une reine peut prendre place
    Accessoirement, comme on a parlé de "case", de "position"(ce sont aussi des noms ) et de déplacement ( de règles de déplacement, en réalité) , il serait sans doute intéressant de les considérer comme des objets que nous allons manipuler:
    • la case : une subdivision de l'échiquier sur laquelle une reine peut prendre place
    • la position : La manière la plus simple d'identifier de manière unique et non ambigüe une case particulière de l'échiquier. Elle est représente les coordonnées Ligne / Colonne (horziontale et verticales) de la case par rapport au coin inférieur gauche de l'échiquier.
    • Déplacement: le passage de la reine de sa position de départ vers une nouvelle position qui lui sera assignée
    • Règles de déplacement : la logique qui permet de déterminer si un déplacement vers une position donnée est autorisé pour une reine en particulier
    et nous savons donc quelles informations seront manipulée

    La troisième étape consiste à savoir où l'application va aller chercher les informations.

    Si on regarde la première version de la question, l'application devra veiller à ... prendre l'ensemble des situations de départ en compte.

    Si l'on regarde la deuxième version de la question, la situation de départ (et donc la position des N reines que veut placer l'utilisateur) sera fournie par... l'utilisateur lui-même (via le clavier ou via un fichier représentant la situation de départ dans un format à déterminer).

    Pour apporter un début de réponse à la dernière question, tu peux commencer par t'intéresser au verbes de la première réponse: Ils représentent clairement une partie au moins de "ce qui doit être fait".

    La première analyse fait apparaitre les verbes:
    • Afficher (... qui affiche les ...)
    • Placer (...de placer 8 reines sur un échiquier...)
    • mettre en danger (...ne la mette en danger...)
    Accessoirement la réponse à la troisième question nous indique, même si cela ne saute pas forcément aux yeux, que dans certaines circonstances, il s'agira... de récupérer une situation de départ

    Jusqu'à présent, nous avons énoncé les besoins que je qualifierais de "fondamentaux" de ton application... "YAPUKA" réfléchir à "comment apporter une réponse cohérente" à ces différentes attentes

    On peut déjà commencer par certaines déductions "logiques":
    Par exemple si chaque reine se trouve sur une case particuilère,
    • elle dispose d'une position qui lui est propre
    • elle est capable de mettre des reines en danger si celles-ci se trouvent sur le chemin des déplacements que la reine peut effectuer
    Tiens, voilà un terme que je n'ai jamais utilisé jusqu'à présent:
    • Chemin : ensemble des positions intermédiaires par lesquelles la reine va passer lors de son déplacement: pour qu'un déplacement respecte les règles, il faut que chaque position intermédiaires par lesquelles il passe les respecte

    Nous devrions en outre nous intéresser aux services que les différents objets doivent pouvoir nous rendre.

    Par exemple:
    • Une reine doit pouvoir
      1. nous indiquer si elle peut se déplacer vers une position donnée
      2. nous indiquer sa position sur l'échiquier
      3. nous indiquer si elle met une reine se trouvant à une position donnée en danger (ce qui revient presque au même que le (1) )
    • L'échiquier doit pouvoir, pour une solution en cours de calcul donnée:
      1. nous indiquer si une reine se trouve à une position donnée
      La case, si elle est utilisée, doit pouvoir
      1. nous indiquer sa position sur l'échiquier
      2. nous indiquer si une reine se trouve dessus ou non
    • Une solution doit pouvoir:
      1. nous dire combien de reines ont déjà été placée pour cette solution particulière
      2. nous permettre d'accéder à (la position de) chaque reine déjà placée
      3. nous permettre d'ajouter une nouvelle reine
      4. nous permettre de retirer une reine qui s'avérerait mal placée
    • L'ensemble des solutions doit:
      • nous permettre d'accéder à chaque solution validée
      • nous permettre d'ajouter une solution validée supplémentaire
      • nous permettre (accessoirement) de savoir combien de solutions ont été validées
      • (éventuellement) garder en mémoire les solutions testées mais non conforme
    A ce stade, nous savons le "qui", le "quoi" et le "qui fait quoi"...

    Il ne reste plus qu'à déterminer le "comment" de tout ce qui est fait.

    Et ca, je vais te laisser réfléchir un peu par toi même

    Ce qui importe, c'est de trouver la logique que devront suivre les différents objets pour fournir les services que l'on attend deux, et cela ne passe pas par l'écriture de code: nous en sommes encore "simplement" à essayer de déterminer les algorithmes qui seront utilisés

    Une fois que la logique à suivre pour assumer les différents services attendus, nous aurons toutes les cartes en main pour commencer à coder l'application, et cette partie pourra être assimilée à "un long et emm..ant travail de dactylographie et de traduction"
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. Probleme avec mon programme
    Par scofield1 dans le forum Débuter
    Réponses: 3
    Dernier message: 07/09/2011, 08h42
  2. probleme avec un programme en JS qui realise des calculs
    Par leclone dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/09/2006, 18h09
  3. [TP] Problème avec mon programme de conversion
    Par Panzer95 dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 28/05/2006, 18h36
  4. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo