Supprimer un élément d'une grille
KalenShiv
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Dalfab Messages postés 706 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis actuellement en train de créer le jeu Bingo. J'ai réussi à faire afficher le tirage de la boule mais aussi une grille avec des nombres aléatoires. Cependant je ne sais pas comment à partir de ce programme enlever un élément de la grille si celui ci correspond au nombre tiré.
Règle du jeu bingo : le joueur dispose d'une grille sur laquelle sont notés divers numéros tirés aléatoirement. L'orateur énonce à voix haute les nombres parus à la sortie de l'urne et chaque joueur raye ou non le chiffre s'il apparaît dans sa propre grille. Le premier à avoir rayé tous les nombres d'une même ligne ou d'une même colonne crie « Bingo » pour annoncer qu'il vient de gagner.
PS : Je suis un débutant en C.
Merci d'avance!
Code:
Ce que le programme affiche :
Je suis actuellement en train de créer le jeu Bingo. J'ai réussi à faire afficher le tirage de la boule mais aussi une grille avec des nombres aléatoires. Cependant je ne sais pas comment à partir de ce programme enlever un élément de la grille si celui ci correspond au nombre tiré.
Règle du jeu bingo : le joueur dispose d'une grille sur laquelle sont notés divers numéros tirés aléatoirement. L'orateur énonce à voix haute les nombres parus à la sortie de l'urne et chaque joueur raye ou non le chiffre s'il apparaît dans sa propre grille. Le premier à avoir rayé tous les nombres d'une même ligne ou d'une même colonne crie « Bingo » pour annoncer qu'il vient de gagner.
PS : Je suis un débutant en C.
Merci d'avance!
Code:
#include <stdio.h> #include <stdlib.h> #include <time.h> int *tirage(int nombre, int min, int max) { int *tabelems, *ret, i, indice, maxi = max - min; if(min >= max || nombre > maxi + 1 || nombre < 1) return NULL; tabelems = malloc((maxi + 1) * sizeof(int)); ret = malloc(nombre * sizeof(int)); for(i = 0; i < maxi + 1; i++) tabelems[i] = i + min; for(i = 0; i < nombre; i++){ indice = rand() % (maxi + 1); ret[i] = tabelems[indice]; tabelems[indice] = tabelems[maxi]; maxi--; } free(tabelems); return ret; } int *tirage(int nombre, int min, int max); int compare(int tabl[45], int nombre , int taille); int main () { int i,j,*tab; int nb = 5; int tableau[45]; int tire; //On affiche la grille printf("+----+----+----+----+----+\n"); srand(time(NULL)); for(j = 0; j < 5; j++) { printf("|"); if((tab = tirage(nb, 10, 45))) { for(i = 0; i < nb; i++) printf(" %d |", tab[i]); printf("\n+----+----+----+----+----+\n"); printf("\n"); free(tab); } } //Initialisation de la semence srand ( time(NULL) ); system("PAUSE");//fait une pause for(i=10;i<45;i++) //boucle pour i de 0 à 45 { do{ tire= 10+rand() % 45; }while (compare(tableau,tire,i)); tableau[i] = tire; printf ("Le nombre de la boule est : %d \n", tire); system("PAUSE"); } return 0; } int compare(int tabl[45], int nombre , int taille) { int res; int j; res = 0; j=0 ; do { if(tabl[j]==nombre){res=1;} j++; }while (res==0 && j<taille); return res; }
Ce que le programme affiche :
+----+----+----+----+----+ | 12 | 31 | 28 | 22 | 10 | +----+----+----+----+----+ | 33 | 20 | 45 | 16 | 28 | +----+----+----+----+----+ | 15 | 39 | 36 | 12 | 19 | +----+----+----+----+----+ | 15 | 13 | 14 | 38 | 27 | +----+----+----+----+----+ | 24 | 15 | 39 | 18 | 32 | +----+----+----+----+----+ Appuyez sur une touche pour continuer... Le nombre de la boule est : 48 Appuyez sur une touche pour continuer... Le nombre de la boule est : 41 Appuyez sur une touche pour continuer... Le nombre de la boule est : 30 Appuyez sur une touche pour continuer...
A voir également:
- Supprimer un élément d'une grille
- Supprimer rond bleu whatsapp - Guide
- Supprimer une page word - Guide
- Impossible de supprimer un fichier - Guide
- Comment supprimer une application préinstallée sur android - Guide
- Supprimer pub youtube - Accueil - Streaming
Oui, il parait logique d'avoir une fonction qui vérifie la condition de gain. On pourrait associer un compteur à chaque ligne et colonne qui serait incrémenté quand un numéro est bon, un simple test indiquerait qu'il y a gain. Ou bien parcourir la ligne et la colonne pour voir s'il y a gain à chaque coup serait surement plus lisible.