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

  1. #1
    Membre du Club
    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
    Points : 40
    Points
    40
    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 éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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
    Points : 1 262
    Points
    1 262
    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.
    Tout énigme a une solution ! Tout est question de discipline !

  3. #3
    Membre du Club
    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
    Points : 40
    Points
    40
    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 éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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
    Points : 1 262
    Points
    1 262
    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.
    Tout énigme a une solution ! Tout est question de discipline !

  5. #5
    Membre du Club
    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
    Points : 40
    Points
    40
    Par défaut
    Hum yep je vais essayer de voir ça alors

  6. #6
    Membre du Club
    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
    Points : 40
    Points
    40
    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)

  7. #7
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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
    Points : 1 262
    Points
    1 262
    Par défaut
    La le soucis est que tu affiches toutes les valeurs.

    Pour un input, il va falloir que ton code ressemble a un truc comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    	for ($i=0;$i<sizeof($Grille[0]);$i++){
    		echo "<tr>";
     
    		for ($j=0;$j<sizeof($Grille[0]);$j++){
    	 	     if ($afficher === true )	 
                         echo "<td>". $Grille[$j][$i]. "</td>";													
                         else 
                         echo '<td><input type="text" name="col_' . $i . "_" . $j . '"/><td>';
    		}
     
    		echo "</tr>";
    Maintenant reste à savoir que $afficher === true, d'après ce que j'ai compris tu veux le faire de façon aléatoire. donc a toi de voir comment tu peux sortir une liste aléatoire de numéro de colonne.

    Par exemple tu as 9 cases, donc tu peux faire un rand de 1 à 9 x fois (x = nombre de colonnes visibles).
    Tout énigme a une solution ! Tout est question de discipline !

  8. #8
    Membre du Club
    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
    Points : 40
    Points
    40
    Par défaut
    Ah oui c'est carrément bien ta solution !

    Faut que je vois effectivement comment sortir une liste aléatoire ensuite, oui.

    Mais déjà j'avance ^^

    A tout à l'heure pour le prochain "problème"

  9. #9
    Membre du Club
    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
    Points : 40
    Points
    40
    Par défaut
    Une petite question sur le array_pop que j'essaie d'utiliser.
    Quand je tape :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $numbers=array(1,2,3,4,5,6,7,8,9);
    // Vidons numbers après l'avoir mélangé aléatoirement, et stockons les valeurs vidées une à une dans $result1_Ligne1
     
    for ($i=0; $i <9; $i++) { 
      shuffle($numbers);
      $result1_Ligne1[] = array_pop($numbers);
    }
     
    print_r($result1_Ligne1);
    print_r($numbers);
    Pas de problème, il m'affiche $result1_Ligne1 rempli et mélangé aléatoirement, et $numbers vide.
    Parfait c'est ce que je voulais

    Mais si je tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for ($i=0; $i <sizeof($numbers); $i++) { 
      shuffle($numbers);
      $result1_Ligne1[] = array_pop($numbers);
    }
     
    print_r($result1_Ligne1);
    print_r($numbers);
    Et que donc j'ai changé la valeur 9 par sizeof($numbers) afin qu'il exécute ma boucle jusqu'à la fin de mon tableau (plutot que de devoir entrer à la main la valeur, qui peut changer en fonction du remplissage de mon tableau $numbers), là il m'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Array ( [0] => 5 [1] => 7 [2] => 9 [3] => 3 [4] => 8 )// pour $result1_Ligne1
    Array ( [0] => 2 [1] => 1 [2] => 6 [3] => 4 )//pour $numbers
    Pourquoi n'a-t-il pas été jusqu'au bout du tableau et qu'il s'est arrêté à 5 valeurs ?
    Comment faire pour que la boucle aille jusqu'à la fin du tableau et qu'il se vide petit à petit, sans avoir à connaitre à l'avance la taille du tableau ?

  10. #10
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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
    Points : 1 262
    Points
    1 262
    Par défaut
    Salut,

    Pour le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for ($i=0; $i <sizeof($numbers); $i++) { 
      shuffle($numbers);
      $result1_Ligne1[] = array_pop($numbers);
    }
    si tu fais les traces d’exécution, tu aurais un truc comme ça.

    1ère : $i = 0; sizeof() = 9 ==> condition valide
    2ieme: $i = 1; sizeof() = 8 ==> condition valide
    3ième $i = 2; sizeof() = 7 ....

    Au bout d'un moment, $i sera supérieur à sizeof (array_pop enlève un élément à chaque fois de ton tableau).

    Dans ton cas, il faudrait plutôt utiliser l'instruction while, pour récupérer tous les éléments de ton tableau.
    Tout énigme a une solution ! Tout est question de discipline !

  11. #11
    Membre du Club
    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
    Points : 40
    Points
    40
    Par défaut
    ahhh mais c'est biensur !!!

    Évidemment que ça s'arrête, car comme tu dis, une fois arrivé à la moitié du tableau +1, $i devient supérieur au nombre d'éléments du tableau, et fatalement, la boucle s'arrête.

    Merci

  12. #12
    Membre du Club
    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
    Points : 40
    Points
    40
    Par défaut
    On approche de la fin :p

    J'ai donc maintenant 2 grilles
    1 grille source, remplie de tous les numéros générés, mais invisible en front
    1 grille Front, qui affiche certains numéros de la grille source, et pour le reste, des champs input (pour que l'utilisateur joue ^^)

    MOn soucis c'est : comment faire pour vérifier que l'utilisateur n'entre pas une valeur qui se trouve déjà ailleurs (dans la colonne ou la ligne du input concerné, en l'occurrence) et surtout comment faire pour vérifier, une fois que al grille est totalement remplie, que les entrées de l'utilisateur correspondent bien au chiffre caché de la grille ?

    Pour l'instant j'ai ca :

    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
    17
    18
    19
    20
    21
    include 'gen_grille.php'; // On prend en compte les données du fichier gen_grille.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++){
    		$choix2 = array_pop($choix);// je vais chercher dans une liste remplie aléatoirement de 1 et 0, la dernière valeur que j'extrais de la liste
    		if (empty($choix)) { // si ma liste est vide, il me le dit
    			echo "<td>vide</td>";
    		}
    		else{ 
    			if($choix2==1){	// si ma valeur extraite est 1
    				echo "<td>". $Grille[$j][$i] . "</td>"; // il m'affiche la valeur correspondante dans ma grille source
    			}
    			else{//sinon, il m'affiche un input
    				echo '<td> <input type="text" name="'.$j.'-'.$i.'" maxlength="1" size="1" class=""> </td>';
    			}
    		}			
    	}
    	echo "</tr>";	
    }
     echo "</table>";
    Je crois qu'il me faudrait utiliser du javascript... mais kézaco ?

  13. #13
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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
    Points : 1 262
    Points
    1 262
    Par défaut
    Tu as 2 possibilités à mon avis.
    - Tu gère le contrôle des saisies par JavaScript, c'est à dire qu'a chaque saisie utilisateur, tu vas vérifier que ce chiffre est unique sur la ligne, la colonne.
    Par contre pour le contrôle final, il faut que tu stocke quelque part en JS, les bonnes valeurs (donc visible par l'utilisateur).
    - Tu gère le contrôle final à la soumission du formulaire. Et tu réaffiches le tout s'il y a une erreur.

    Tu peux aussi faire un mix des deux.
    Un 1er contrôle pour valider l'unicité de chaque chiffre + le contrôle final côté PHP.
    Tout énigme a une solution ! Tout est question de discipline !

  14. #14
    Membre du Club
    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
    Points : 40
    Points
    40
    Par défaut
    Hum, la seconde solution m'a l'air bien, c'est tout à fait ce que j'imaginais

    Mais, comment contrôle-t-on la saisi en javascript du coup ?

  15. #15
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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
    Points : 1 262
    Points
    1 262
    Par défaut
    Ca fait longtemps que je n'utilise plus de JavaScript pur, mais en passant par Jquery (ou prototype), tu peux mettre des id a tes champs et les parcourir.
    Par exemple, tu as la matrice suivante :
    [1_1][1_2][1_3]
    [2_1][2_2][2_3]
    [3_1][3_2][3_3]

    Si l'utilisateur modifie la case [1_2], tu dois aller vérifier les cases [1_1][1_3] mais aussi [2_2][2_3].
    Pour ca tu peux mettre des id soit sur les champs input (pour contrôler les autres saisies utilisateurs) mais aussi sur tes champs fixes.
    (pour les champs fixe, il te suffit de mettre un span avec un id.
    De mémoire pour accéder à la valeur d'un champ par jquery c'est la syntaxe suivante:
    Tout énigme a une solution ! Tout est question de discipline !

  16. #16
    Membre du Club
    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
    Points : 40
    Points
    40
    Par défaut
    Ok je vais chercher autour de ça, mais je pense avoir bien compris.
    Ca tombe bien mes champs sont déjà automatiquement nommés (enfin du coup, ils ont un nom du type 1_1 et pas un ID, mais il me suffit d'ajouter ID au champs input et de l'incrémenter de la même façon)

    Encore merci

  17. #17
    Membre du Club
    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
    Points : 40
    Points
    40
    Par défaut
    Bien j'ai donc commencer à tâtonner avec jQuery

    Du coup, je me retrouve pour l'instant (vu que je découvre totalement) avec, dans mon fichier principal où se situe ma grille, ce code :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script type="text/javascript"
       src="jquery-1.11.0.min.js"></script>
    <script src="verifval.js"></script>
    Avec ca je lui demande d'aller piocher dans la bibliothèque de fonction jQuery, et je lui dit aussi d'aller chercher les instructions dans mon fichier .js que j'ai fais tout spécialement pour lui

    Dans ce fichier verifval.js j'y ai mis :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     $(document).ready(function(){
    	$('.toto').keyup(function(){
    		var cell = $(this).attr('id');
    		alert('Vous avez rempli la cellule : '+cell+' avec brio !');
    	});
    });
    Qui a pour l'instant la simple instruction de m'afficher une pop up dès que l'user relache sa touche (après avoir voulu remplir une des cases)
    Et cette jolie popup lui indique l'id de la cellule de la matrice qu'il a rempli.
    Du genre : Vous avez rempli la cellule 4-3 avec brio !

    Cool.
    Mais ca c'était pour me familiariser avec jQuery
    Maintenant, je voudrais n'avoir de popup que lorsque la saisi est incorrecte (et non pas à chaque saisi).
    Je suppose donc que ca passe par un truc du genre "if" ...?

    Mais "if" quoi ?
    Et bah c'est bien là toute la difficulté.
    "If" la valeur que tu viens d'entrer ne se trouve pas déjà dans l'une des cellules de la matrice qui ont le même identifiant $i ainsi que dans l'une de toutes celles ayant le même identifiant $j

    Dans cet exemple 4-3 > $i=4 / $j=3

    Dans le concept, je vois bien.
    dans la pratique euh... je nage.
    Que dis-je, je coule!

  18. #18
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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
    Points : 1 262
    Points
    1 262
    Par défaut
    Bon je dirais l'étape suivante est d'afficher la valeur saisie, tu devrais trouver ton bonheur dans la doc Jquery.
    Et ensuite d'afficher la valeur des cases des mêmes lignes et même colonne.

    pour info, un truc dans ce genre fonctionne.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var i = 1
    var j = 2
    val = $("col" . i . "_" . j);

    C'est de mémoire, je me souviens plus exactement de la concaténation en JS.
    Tout énigme a une solution ! Tout est question de discipline !

  19. #19
    Membre du Club
    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
    Points : 40
    Points
    40
    Par défaut
    "membre Expert" oui tu portes bien ton titre

    merci beaucoup, je vais creuser un peu tout ça, ca semble me parler

  20. #20
    Membre du Club
    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
    Points : 40
    Points
    40
    Par défaut
    De retour avec mon Sudoku ^^
    J'ai donc pas mal avancé, et par la même occasion j'ai pu découvrir et m'initier au jQuery.

    Je me retrouve donc maintenant avec deux fichiers.
    - mon fichier PHP où se génère ma grille
    - mon fichier jQuery où sont écrites mes fonctions JS

    Biensur, j'appelle bien mon fichier .js depuis mon fichier .php, c'est vérifié et ca fonctionne.

    Par contre, j'ai un peu de mal à bien dissocier JS de PHP dans mon écriture

    En effet, je me retrouve donc sur mon fichier .php avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for ($i=0;$i<sizeof($Grille[0]);$i++){ //boucle sur le n° de ligne			
    	for ($j=0;$j<sizeof($Grille[0]);$j++){// boucle sur le n° de colonne
    		echo '<input type="text" name="cell '.$j.'-'.$i.'" id="'.$j.'-'.$i.'" maxlength="1" size="1" class="valuser grille">';
    	}
    }
    et mon dans mon fichier .JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $("input").change(function(){// quand on quitte la cellule
        for(var k =0;k<var i;k++){ // pour K inférieur à i (soit le numéro de ligne où on se trouve)
          if($(this).val()==$(k).val()){ // si la valeur de K est égale à la valeur de i
            $(this).css("background-color","#6f6f6f");
            $(this).css("color","#ff6c6c");// affiche le texte en ROUGE
            $(this).css("font-size","14px");
          }
          else{
            $(this).css("color","#a2cdf8");//sinon, en bleu ciel
          }
        }
    Ce que je veux, c'est qu'il y ait donc une correspondance entre les valeurs $i et $j de mon PHP (qui indique les coordonnées de ma grille, et donc dans quelle cellule nous sommes ($i= n° ligne, $j=n°Colonne) et la valeur "var k" de ma boucle dans mon JS
    Pour qu'il comprenne qu'il faut vérifier les valeurs de K en fonction de $i et de $j (puisque je veux comparer en fonction d'où on se trouve dans la grille)

    PS: bien entendu, dans le bout de code copié, je ne compare que la ligne "i" mais une fois la bonne syntaxe je n'aurai qu'à remplacer "i" par "j", donc je n'ai pas mis les deux
    Nous allons donc supposer que pour l'instant je veux simplement lui faire vérifier les valeurs se situant dans la même ligne que le champs input où on se trouve.

    Y'a un souci de reconnaissance de variable je pense, mais je n'ai pas trouvé la bonne syntaxe :/

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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