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++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du 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
    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 : 33
    Localisation : Suisse

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    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
    Futur Membre du 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
    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 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    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
    Futur Membre du 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
    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 : 33
    Localisation : Suisse

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    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 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 035
    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

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