A voir également:
- [C++] Génération de grille de Sudoku
- Génération processeur amd - Guide
- Generateur de mot de passe - Télécharger - Sécurité
- Grille instagram - Guide
- Grille de tombola vierge à imprimer - Télécharger - Création musicale
- Télécharger sudoku gratuit pour mobile - Télécharger - Puzzle & Réflexion
2 réponses
Utilisateur anonyme
29 juin 2008 à 14:18
29 juin 2008 à 14:18
#include <iostream> #include <stdlib.h> #include <time.h> #include <stdio.h> using namespace std; void main(){ int grille[9][9]={0};//déclaration de la grille + mise à zéro //Pour la génération des nombres aléatoires srand((unsigned int)time(NULL)); //Les limites pour le tirage au sort int max = 9; int min = 1; bool nombre_ok; //Pour la sélection du nombre de la grille for(int i=0; i<9; i++){ for(int j=0; j<9; j++){ do{ nombre_ok = true; grille[i][j] = (rand() % (max - min + 1)) + min; for(int k=0; k<9; k++){ if (k!=j){ if(grille[i][k] == grille[i][j]){ nombre_ok = false; } } } }while (!nombre_ok); } } for(int v=0; v<9;v++){ for(int h=0; h<9; h++){ cout << grille[v][h]; cout << " "; } cout << "\n"; } system("pause"); }
J'ai modifié vraiment cette ligne là :
if (k!=j){ if(grille[i][k] == grille[i][j]){ nombre_ok = false; } }
En effet, déjà tu avais inversé k et i dans ton tableau. Et de plus, il faut que tu fasses attention à ne pas comparer le nombre tiré au hasard avec lui même, d'où le k!=j.
Ta déclaration de tableau n'était pas bonne non plus, tu dois indiquer le nombre d'éléments : ici 9 par 9.
Voilà, tu remarqueras que ceci ne marche que pour les lignes, à toi de vérifier pour les colonnes aussi :).
Bonne chance.
ps : tu as pu remarqué une petite astuce d'initialisation de tableau ^^