Projet ISN

Saroce91 Messages postés 1 Statut Membre -  
ElementW Messages postés 5690 Statut Contributeur -
Bonjour !
Alors voilà on est trois filles qui ont un projet d'isn à réaliser et on a choisi un mastermind ! Sauf que jusqu'à présent bah ca n'avance pas fort parce que la programmation en c et nous bah ça fait trois ! On utilise code blocks comme logiciel, et notre probleme c'est qu'on a beaucoup de mal à programmer les fonctions ! Voici jusqu'à présent ce qu'on a fait :

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

int nb_couleurs=6;
int nb_dessaie=10;
int taille_de_la_solution=4;

void initialise_solution()
{
int i;
int nombre_aleatoire ;
int borne_minimale=1;
int borne_maximale=6;
int tab[4];
srand(time(NULL));
for(i=1;i<5;i++)
{
nombre_aleatoire=rand();
printf("%d\t",(int)(nombre_aleatoire*(borne_maximale+1-borne_minimale)/RAND_MAX+borne_minimale));
tab[i-1]=nombre_aleatoire;

}
printf("\n");

return 0;
}

void dessine_plateau()
void dessine_palette()
void remplit_proposition()
void analyse_proposition()

Et la seule fonction détaillé c'est notre prof qui nous a aidé ! S'il vous plait aidez nous !! On ne demande pas à faire totalement le programme mais si vous pourriez nous donnez des pistes ça nous avancerez vraiment ! Merci d'avance !

1 réponse

  1. ElementW Messages postés 5690 Statut Contributeur 1 293
     
    'lut, primo la fonction détaillée à quelques problèmes:
    • taille_de_la_solution
      est défini mais pas utilisé pour le tableau de solution (
      4
      hardcodé). Pour l'utiliser, il faudra passer le compilateur en mode C99, car le C89 ne supporte pas les tableaux à dimensions variables (VLA).
    • ta boucle
      for
      , en plus d'avoir une limite hardcodée (5), commence a 1, ce qui t'oblige a décrémenter i à chaque accès au tableau de solution. Bien que techniquement correct et pas mauvais en soi, il est préférable de commencer a 0, et donc ici rester en dessous de 4, ou plutôt de
      taille_de_la_solution
      .
    • généralement, on appelle qu'une seule fois
      srand(time(NULL));
      , au début du programme (dans le
      main
      )
    • le cast explicite en
      int
      du calcul est superflue, car toutes les variables utilisées dans le calcul sont des
      int
      : le résultat sera
      int
      automatiquement. De plus, le résultat de ce calcul devrait être stocké dans
      tab[i]
      , car tu stockes rand()=entre 0 et RAND_MAX: ce n'est pas ce que tu veux pour la suite.
    • Tu devrais déplacer
      borne_minimale
      et
      borne_maximale
      dans le contexte global; c-à-d en dehors de ta fonction (avant).
    • return 0;
      est incorrect pour une fonction devant renvoyer
      void
      . Retire-le, ou enlèves le 0.
    • Surtout: ta fonction créé la solution, mais ne la stocke pas: elle est supprimée quand la fonction arrive à sa fin.


    Pour le reste des fonctions à écrire...
    • dessine_plateau affichera le contenu d'un nouveau tableau, qui aura la taille de
      nb_dessaie
      (boucle for + printf), ainsi que d'un autre de la même taille contenant le nombre de juste/mauvais endroit, qui sera remplit progressivement par
      analyse_proposition
      .
    • dessine_palette montrera les différentes "couleurs" (ici nombres leur correspondant)
    • remplit_proposition fera des getchar/scanf pour obtenir la proposition du joueur

    from human import idiocy
    del idiocy
    0