ColorPop [Fermé]

Signaler
Messages postés
1
Date d'inscription
samedi 26 novembre 2016
Statut
Membre
Dernière intervention
26 novembre 2016
-
Bonjour,

Alors voilà mon problème : j'ai un exercice donc le but est de coder un ColorPop.

Je dois donc afficher un plateau de 10 par 10 plus des repères de colonne en chiffres et des repères de lignes en lettres (classiquement de 0 à 9 pour les colonnes et de A à J pour les lignes.
Seulement voilà, après je dois attribuer la couleur blanche à 5 pions pris aléatoirement sur le plateau. Puis répartir les autres pions en 5 groupes de 19 pions (avec une couleur par groupe). Bien évidemment, ces pions sont aussi placés aléatoirement.

Donc voilà, j'ai pensé à utiliser des "structs" pour que cela soit plus simple pour la suite de l'exercice où il faudra faire bouger les pions.

Je ne vous demande pas une solution complète (ça ne m'aiderai pas à progresser) mais si vous pouviez m'indiquer où sont mes erreurs ça serrait vraiment appréciable :)

je vous ajoute le code ci dessous :

Fichier main :
#include <iostream>
#include "fonctions.h"
#include <windows.h>
#include <stdlib.h>
#include <time.h>


int main() // fonction principale du projet d'ap1.1
{
    srand(time(0));

pion lePlateau[NB_MAX][NB_MAX];
    fonctionInitialisation (lePlateau);
    couleur (lePlateau);
    fonctionAffichage(lePlateau);

return 0; // confirmation du bon déroulement du programme
}

<bold>Fichier d'entêtes :</bold>

#ifndef FONCTIONS_H
#define FONCTIONS_H

const unsigned int NB_MAX = 10;
const unsigned char FORME = 4;
const unsigned int NBCOULEUR = 5;
const unsigned int INITCOULEUR = 0;

struct pion
{
    int id;
    char forme;
    int couleur;
};

struct couleurPion
{
    int lesCptsCouleur;
    int lesCouleurs;
};


void fonctionAffichage(pion unTab[NB_MAX][NB_MAX]);
void couleur (pion unTab[NB_MAX][NB_MAX]);
void fonctionInitialisation(pion unTab[NB_MAX][NB_MAX]);


#endif // FONCTIONS_H

Fichier de fonctions :
#include <iostream>
#include "fonctions.h"
#include <windows.h>
#include <stdlib.h>
#include <time.h>


void fonctionInitialisation (pion unTab[NB_MAX][NB_MAX])
{
    int id=0;
    for (unsigned int lignes = 0; lignes < NB_MAX; lignes++)
    {
        for (unsigned int colonnes = 0; colonnes < NB_MAX; colonnes++)
        {
            unTab[NB_MAX][NB_MAX].couleur = INITCOULEUR;
            unTab[NB_MAX][NB_MAX].forme = FORME;
            unTab[NB_MAX][NB_MAX].id = id;
            id++;
        }
    }
}

void couleur (pion unTab[NB_MAX][NB_MAX])
{
    int leNbBlancAffiche = 5;
    int idAleatoire = 0;
    for (int leNbBlanc = 0; leNbBlanc < leNbBlancAffiche; leNbBlanc++)
    {
        idAleatoire = rand()%100;

for (unsigned int lesLignes = 0; lesLignes<NB_MAX; lesLignes++)
        {
            for (unsigned int lesColonnes = 0; lesColonnes<NB_MAX; lesColonnes++)
            {
                if (unTab[lesLignes][lesColonnes].id == idAleatoire)
                {
                    if ( unTab[lesLignes][lesColonnes].couleur == 0)
                    {
                        unTab[lesLignes][lesColonnes].couleur = 15;
                    }else{
                        leNbBlancAffiche++;
                    }
                }
            }
        }
    }

int initCouleur = 10;

couleurPion tabDesCouleurs[NBCOULEUR];
    for (unsigned int leIndex = 1; leIndex < NBCOULEUR; leIndex++)
    {
        tabDesCouleurs[leIndex].lesCptsCouleur = 19;
        tabDesCouleurs[leIndex].lesCouleurs = initCouleur;
        initCouleur++;
    }

unsigned int laCouleurTiree;
    for (unsigned int lesLignes = 0; lesLignes<NB_MAX; lesLignes++)
    {
        for (unsigned int lesColonnes = 0; lesColonnes<NB_MAX; lesColonnes++)
        {
            do
            {
                laCouleurTiree=rand()%5;
            }while(tabDesCouleurs[laCouleurTiree].lesCptsCouleur==0);
            tabDesCouleurs[laCouleurTiree].lesCptsCouleur=tabDesCouleurs[laCouleurTiree].lesCptsCouleur-1;
        }
    }
}

void fonctionAffichage(pion unTab[NB_MAX][NB_MAX]) // définition de la fonction d'affichage du plateau de jeu
{
    HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE);
    std::cout << " 0 1 2 3 4 5 6 7 8 9" << std::endl;

for (unsigned int lesLignes = 0; lesLignes<NB_MAX; lesLignes++)
    {
        char repereLigne = 65;
        std::cout << repereLigne;
        for (unsigned int lesColonnes = 0; lesColonnes<NB_MAX; lesColonnes++)
        {
            SetConsoleTextAttribute (H,unTab[lesLignes][lesColonnes].couleur);

std::cout << unTab[lesLignes][lesColonnes].forme;

SetConsoleTextAttribute (H,7);
        }
        repereLigne = repereLigne+1;
    }
}



Merci d'avance pour vos conseils et bonne journée à vous !

Thomas (élève en première année d'IUT info mais qui a quelques difficultés avec la prog, oui c'est bizarre mais c'est comme ça ^^')



EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.