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

Langage PHP Discussion :

Vos conseils pour un sudoku : cacher des champs aléatoirement dans une grille (tableaux)


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web en formation
    Inscrit en
    Février 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en formation

    Informations forums :
    Inscription : Février 2014
    Messages : 66
    Par défaut Vos conseils pour un sudoku : cacher des champs aléatoirement dans une grille (tableaux)
    Bien le rebonjour

    En fait, toutes mes petites questions posées jusque là étaient dans le but caché (ahaha) de réaliser un simulacre de sudoku (je dis bien simulacre parceque je n'ai pas cherché un algorithme hyper sophistiqué de génération de grille, mais le tout était qu'il fonctionne)
    J'ai donc réussi à générer une grille (cf : Pièce jointe 138393)

    Cette grille est pour l'instant en dure, sous forme de array $grille[][], allant de $grille[0][0] à $grille[8][8], que j'ai ensuite remis dans un 2nd fichier, dans un <table>
    Dans cet exemple, A1= $grille[0][0]; A1= $grille[1][0]; A1= $grille[2][0] etc...

    Ce que je voudrais maintenant, c'est que cette grille laisse des champs input vide pour que le joueur remplisse lui-même
    Il faudrait donc que ces champs soit cachés de façon aléatoire à la génération de la grille

    Mais comment je pourrais faire ça ?
    Là, c'est toute la question


    Sachant qu'après il me faudra vérifier, à chaque saisi, qu'il n'y a pas d'erreur (c'est à dire si l'utilisateur entre un chiffre qui existe déjà dans la colonne ou dans la ligne du champs qu'il rempli.
    Mais ça, c'est une autre histoire et c'est pour plus tard :p

  2. #2
    Membre Expert Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Par défaut
    Salut,

    tu peux stocker la liste des cases dans une table.
    Puis mélanger cette table avec un shuffle
    Et tu ne gardes qu'un certain nombre de lignes de cette table.

    Comme ca, tu gardes la liste des colonnes fixes.

    Dans la théorie, cela peut marcher.
    Par contre, je crois qu'il y a tout un algo derrière qui détermine la complexité du sudoku en fonction des cases qui restent présentes sur la grille.
    Tu peux donc t'exposer à rendre ta grille impossible en fonction de ce que tu laisses affiché.

    exemple à la con, par hasard, uniquement les chiffres 1 et 3 restent afficher, bah bon courage pour remplir le reste de la grille.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web en formation
    Inscrit en
    Février 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en formation

    Informations forums :
    Inscription : Février 2014
    Messages : 66
    Par défaut
    Ah bah c'est là qu'on verra les vrais sudokistes

    Oui je sais que de toute façon ca ne sera qu'un pseudo sudoku, car il ne prendra pas en compte toutes les vrais contraintes et les niveaux de difficulté
    Mais le but est surtout de m'apprendre à utiliser les boucle, les fonction et le code
    Et ce sudoku est une façon plutôt ludique de m'exposer à pleins de choses intéressantes (les input, les mutli fichiers, les boucles, etc etc...)

    Là, au moins, il me génère une grille forcément bonne (sans erreur).
    Mais une fois qu'on a compris la méthode utilisée, on rempli mon sudoku les yeux fermés, quelque soit la génération obtenue, c'est sûr...

    M'enfin pas grave, je n'en ferai pas commerce ^^

  4. #4
    Membre Expert Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Par défaut
    ok, bah dans ce cas la, regarde la fonction que je mentionne dans le message précédent, cela devrait t'aider.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web en formation
    Inscrit en
    Février 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en formation

    Informations forums :
    Inscription : Février 2014
    Messages : 66
    Par défaut
    Hum yep je vais essayer de voir ça alors

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web en formation
    Inscrit en
    Février 2014
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web en formation

    Informations forums :
    Inscription : Février 2014
    Messages : 66
    Par défaut
    Bon en fait j'ai fais autrement.

    Effectivement ma grille n'était pas vraiment générée, mais simplement construite en dure (je m'étais amusé à écrire chaque TD et chaque TR)

    Pour générer un tableau tout seul, j'ai donc fait :

    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
     
    <?php
    include 'fichier1.php';
     
    echo '<table width="200" border="2">';
    	for ($i=0;$i<sizeof($Grille[0]);$i++){
    		echo "<tr>";
     
    		for ($j=0;$j<sizeof($Grille[0]);$j++){
    			echo "<td>". $Grille[$j][$i]. "</td>";													
    		}
     
    		echo "</tr>";	
    	}
     echo "</table>";
    ?>
    IL me génère une magnifique grille et tout.
    Mais si je veux que dans cette grille il y ait des cellules qui soient vides (enfin qui est un champs input) et qu'on ne voit donc pas apparaitre la valeur qu'elles contiennent ? (sachant que TOUTES les cellules ne doivent pas être comme ca, il faut quand même garder un certain nombre de cellule affichant la valeur qu'elles contiennent, sinon le sudoku est infaisable au départ.
    Le but étant ensuite que si l'utilisateur entre la même valeur que celle caché, il a bon, sinon ca veut dire qu'il ne pourra valider son sudoku ^^ (mais ça je crois que je vais devoir passer par du javascript, et là c'est le flou total :p)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mettre des images aléatoirement dans une grille
    Par LeMarseillais78 dans le forum Interfaces Graphiques en Java
    Réponses: 48
    Dernier message: 08/04/2014, 19h42
  2. Réponses: 8
    Dernier message: 15/02/2011, 12h19
  3. [SP-2007] Ajouter des champs dynamiquement dans une cutom list
    Par takuan64 dans le forum SharePoint
    Réponses: 8
    Dernier message: 26/07/2010, 14h12
  4. Insérer des champs vides dans une requête sql
    Par js8bleu dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/02/2008, 15h00
  5. Récupérer la valeur des champs calculés dans une requète SQL dans vba
    Par FrédéricCM dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 28/06/2006, 16h29

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