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

JavaScript Discussion :

Comparaison lettre tapée au clavier et valeur dans un tableau


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Developpeur logiciel
    Inscrit en
    Juin 2015
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 62
    Par défaut Comparaison lettre tapée au clavier et valeur dans un tableau
    Bonjour à tous !
    Alors voilà. J'ai un petit problème. J'ai fait un code qui a pour but de donner une lettre aleatoire à l'utilisateur, et lorsque ce dernier tape sur son clavier sur la lettre correspondante, il se passe quelque chose (du genre alert("tu as tapé sur la bonne lettre"); quoi !!
    Sauf que ... Ca ne fonctionne pas !
    Les lettres aleatoires s'affichent bien, lorsque l'utilisateur tape sur son clavier, la lettre s'affiche bien, mais je n'arrive pas du tout à mettre en lien ces deux trucs pour que ca marche !!! HELP .

    Code JS :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    var lettres =document.querySelectorAll("#ListeChar");
    var touche =document.querySelectorAll("#touchejoueur");
     
    //********************************************
    //   Etape 1 : fonction d'affichage aleatoire des lettres
    //********************************************
    function lettre() {
    	 var i;
    	 var items = {"A":65,
                      "B":66,
                      "C":67
    };	
     
    var item = Object.keys(items)
    var affichageCle = item[Math.floor(Math.random()*item.length)];
    ListeChar.innerHTML = affichageCle;
    }
     
     
     
    //*******************************************
    //   Etape 2 : repérer les lettres que l'on tape
    //********************************************
    function toucheenfoncer(event){
    var e = event.keyCode;
    var nom= String.fromCharCode(e);
    touchejoueur.innerHTML = nom;
     }
     
    //*********************************************
    //   Etape 3 : comparer lettre tapée + event 
    //*********************************************
    function comparer() {
    if (affichageCle==nom)
    {
    	alert("Le lien entre les deux se fait !! Wouuuh"); 
    }
    }
     
    lettre();
    toucheenfoncer();
    comparer();
    Code html :

    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
    22
    23
    24
    25
    26
    27
    28
    <!DOCTYPE html>
     
    <html>
     
    <head>
        <meta charset="utf-8"/>
        <link rel="stylesheet" href="style.css">
        <title>Tape</title>
    </head>
     
    	<body onkeydown="toucheenfoncer(event)" onkeydown=lettre();>
     
    		<div id="ListeChar">5</div>
    		<div id="touchejoueur">5</div>
     
     
     
     
     
     
     
    	 <!-- ******************************
            INCLUSION FICHIER JAVASCRIPT
     ***********************************  -->
        <script src="app.js" type="text/javascript"></script>
     
    </body>
    </html>

  2. #2
    Membre très actif
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Par défaut
    Salut, j'ai pas réfléchi à ton problème mais je te fais juste remarquer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onkeydown="toucheenfoncer(event)" onkeydown=lettre();>
    Je l'aurais écris plutôt comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onkeydown="toucheenfoncer(event); onkeydown=lettre();">
    Qu'en penses-tu ?

    EDIT Voilà j'ai vu ton problème, essaie cette solution je ne l'ai pas encore essayé, je vais le faire.

    Dans le fichier "js" :
    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
    22
    23
    24
    25
    var alphabet="abcdefghijklmnopqrstuvwxyz";
    var utilisateur=alphabet[(math.random()*26)]; // lettre aléatoire pour l'utilisateur, adapte comme tu veux cette ligne.
     
    function keycodechar(lecode){
      var valeur= ev.keyCode;
      var shift = ev.shiftKey;
      if (valeur>=96 && valeur<=105){lettre=valeur-96;} // pour cette ligne je ne suis pas sûr je vais tester.
      if (valeur>=65 && valeur<=90 && shift){lettre=String.fromCharCode(lecode);}
      if (valeur>=65 && valeur<=90 && !shift){lettre=String.fromCharCode(valeur+32);}
      return lettre;
    }
     
    function toucheenfoncer(event){
      var lettre=keycodechar(event.keycode);
      if(lettre==utilisateur){
        var indication=" Vous avez trouvé votre lettre : "+lettre;
      }else
      {
      var indication="Désolé vous n'avez pas trouvé :/";
      }
      if(document.getElementById("message"){
         document.getElementById("message").display="block";
         document.getElementById("texte").innerHTML=indication;
      }
    }
    Dans le fichier "HTML" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <body onkeydown="toucheenfoncer(event)">
    <div id="message">
       <div id="texte"></div>
       <input type="button" value="OK" onclick="this.close();"> <!-- Ici je sais plus si c'est parent.close ou this.close -->
    </div>
    Convertir un keycode en caractère m'a été indiqué par ce topic :
    http://www.developpez.net/forums/d10...re/#post686002

  3. #3
    Membre actif
    Femme Profil pro
    Developpeur logiciel
    Inscrit en
    Juin 2015
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 62
    Par défaut
    Hélas je ne crois pas que le html pose problème. C'est plutôt mon JS ...! Il n'arrive pas à comprendre que le B du clavier que l'on tape par exemple, est équivalent au B du tirage aléatoire.

  4. #4
    Membre très actif
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Par défaut
    Voilà mon exemple est corrigé, je vais l'essayé

  5. #5
    Membre très actif
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Par défaut
    Ah je viens de me relire, j'ai oublié de faire un display="none" mais c'est pas important en fait puisque le message est fermé

    Bon je vais tester le code.

  6. #6
    Membre actif
    Femme Profil pro
    Developpeur logiciel
    Inscrit en
    Juin 2015
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 62
    Par défaut
    Dis moi si ça marche .
    Je l'essaye dans 1heure moi sinon!

Discussions similaires

  1. [XL-2010] Recherche valeur dans un tableau à 3 colonnes avec lettres et chiffres
    Par Remiroche.tw dans le forum Excel
    Réponses: 2
    Dernier message: 17/11/2012, 11h49
  2. [LG] Valeur dans un tableau
    Par hunter dans le forum Langage
    Réponses: 3
    Dernier message: 16/06/2005, 13h59
  3. [tableau]Valeur dans un tableau
    Par kisscool31 dans le forum Collection et Stream
    Réponses: 30
    Dernier message: 17/05/2005, 09h45
  4. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41
  5. Décaler des valeurs dans un tableau
    Par sh2003 dans le forum Langage
    Réponses: 6
    Dernier message: 20/03/2004, 16h01

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