Programme jeu Bingo en C.

KalenShiv Messages postés 28 Statut Membre -  
KalenShiv Messages postés 28 Statut Membre -
Bonjour,

J'aimerai réaliser le jeu Bingo en C. Je tiens d'abord à préciser que je suis débutant en c. J'aimerai savoir comment créer une grille avec les numeros par carte s'il vous plaît. J'ai commencé pour l'instant à coder le tirage de "la boule" pour l'instant.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>   // pour rand

int main(void){

    srand(time(NULL));
    int tirage=rand()%90+1;    //entre 1-9
    printf("%d\n",tirage);
    return 0;
}


Merci de bien vouloir m'aider.

1 réponse

  1. Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention   102
     
    Bonjour,

    Dans une grille, il y a 5 numéro par ligne, et il ne peut y avoir 2 numéro dans la même dizaine pour une ligne, d'où :
    void fillGrid( unsigned char grid[2][5] ) {
       for ( int j = 0 ; j < 2 ; ++j ) {     // pour chaque ligne
          for ( int i = 0 ; i < 5 ; ++i ) {  // pour chaque numero de la ligne
             for (;;) {                 // trouver un unique dans sa dizaine
                unsigned char numero = rand()%90+1;
                unsigned char dizaine = numero==90 ? 8 : numero / 10;
                int k;
                for ( k = 0 ;  k < i ; ++k ) { // chercher parmi les precedents
                   unsigned char diz = grid[j][k]==90 ? 8 : grid[j][k] / 10;
                   if ( diz == dizaine )
                      break;        // dans la même dizaine, pas bon
                }
                if ( k >= i )       // on a tout vérifie sans voir de probleme
                   break;           // le numero tire est valide
                // sinon en chercher un autre
             }
             grid[j][i] = numero;
          } // fin chaque numero de la ligne
       } // fin chaque ligne
    }
    0
    1. KalenShiv Messages postés 28 Statut Membre
       
      Bonjour,

      Merci infiniment pour ta réponse ! Cependant lorsque j'essaie de compiler avec gcc ça me met comme message d'erreur :

      bingo.c: In function ‘fillGrid’:
      bingo.c:5:36: warning: implicit declaration of function ‘rand’ [-Wimplicit-function-declaration]
      unsigned char numero = rand()%90+1;
      ^
      bingo.c:17:23: error: ‘numero’ undeclared (first use in this function)
      grid[j][i] = numero;
      ^
      bingo.c:17:23: note: each undeclared identifier is reported only once for each function it appears in
      0
    2. Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention   102 > KalenShiv Messages postés 28 Statut Membre
       
      Mea culpa, numero doit être déclarée avant le for(;;) et initialisée dans le for(;;)
      0
    3. Utilisateur anonyme
       
      4 for imbriqués, ce code venant directement des enfers
      0
    4. KalenShiv Messages postés 28 Statut Membre > Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention  
       
      Marche toujours pas, ou alors j'ai pas bien compris l'erreur
      0
    5. Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention   102 > KalenShiv Messages postés 28 Statut Membre
       
      #include <stdlib.h>
      void fillGrid( unsigned char grid[3][5] ) {
      for ( int j = 0 ; j < 3 ; ++j ) {
      for ( int i = 0 ; i < 5 ; ++i ) {
      unsigned char numero;
      for (;;) {
      numero = rand()%90+1;
      ...
      0