Projet ISN

Fermé
Saroce91 Messages postés 1 Date d'inscription lundi 13 avril 2015 Statut Membre Dernière intervention 13 avril 2015 - 13 avril 2015 à 10:09
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 13 avril 2015 à 10:55
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

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
Modifié par gravgun le 13/04/2015 à 10:55
'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