IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Difficulté pour "cacher"des nombres dans une matrice


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Points : 16
    Points
    16
    Par défaut Difficulté pour "cacher"des nombres dans une matrice
    Voila en fait dans mon programme de sudoku, je dois générer des grilles de façon aléatoires suivant 4 niveaux de difficultés. POur cela, j'ai créé un programme qui permet de remplacer un certain nombre de cases par des zéros. Or dans mon programme, il se peut qu'il rencontre 2 fois la même case et donc au final au lieu d'avoir 20 cases où il y a des zéros, j'en ai que 17 par exemple. ET je voudrais en avoir toujours 20... Je vous montre le programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    a=[7 2 8 4 6 5 3 9 1;4 3 1 9 8 7 5 2 6;6 5 9 1 2 3 4 8 7;1 8 5 2 7 4 6 3 9;9 6 2 3 5 8 1 7 4;3 4 7 6 9 1 8 5 2 ;5 7 6 8 4 2 9 1 3;2 1 4 5 3 9 7 6 8;8 9 3 7 1 6 2 4 5];
    n=input('Choisissez votre niveau de difficulté :')
    if n==1
        disp('Vous avez choisi le niveau facile')
    f=20;
        for q=1:f
            x=randi(9,1,1);
            y=randi(9,1,1);
            if a(x,y)==0,
               a(x,y)=0;
            else          
               a(x,y)=0;
            end
        end
    end
         disp(a);

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Tu peux garder en mémoire dans un vecteur les coordonnées des différents points cachés. Ensuite sur ton rand, tu check pour savoir si ces valeurs conjointes sont déjà sorties.

    si elles sont déjà sorties, à ce moment là tu recommences le rand. Si elle n'est pas sorti, tu continues ta boucle.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 42
    Points : 16
    Points
    16
    Par défaut
    ET comment on garde en mémoire les cases déjà cachées ? Je vais essayé

Discussions similaires

  1. [Débutant] calculer nombre des 1 dans une matrice
    Par angel_tn dans le forum Images
    Réponses: 3
    Dernier message: 02/05/2010, 07h33
  2. Forcer l'affichage des nombres dans une cellue
    Par zahidovich dans le forum Excel
    Réponses: 4
    Dernier message: 22/11/2008, 09h41
  3. changer des nombres dans une chaine
    Par newbiegeek dans le forum ASP
    Réponses: 11
    Dernier message: 09/08/2007, 15h24
  4. cherche requette pour trouver le nom des champs dans une table
    Par maverick56 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 12/07/2007, 10h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo