[RESOLU] faire correspondre une image à une lettre.

LAHOYASHRA
Invité n'ayant pas de compte PHPfrance

25 mars 2016, 18:32

Bonjour,

je souhaite que l'une des 3 lettres de l'alphabet français qui s'affiche doit correspondre à l'image LSF qui s'affiche et je n'y arrive pas.

Le but du jeu que je crée, c'est que l'utilisateur clique sur la lettre de l'alphabet qui lui semble être la bonne traduction de l'image LSF. Si il clique sur la mauvaise alors le message suivant s'affichera "Mauvaise réponse, essaye encore." et si il a cliqué sur la bonne traduction alors, le message suivant s'affichera: "Bravo, continue de jouer, jusqu'a 5 lettres à deviner". Au bout de 5 lettre dévinées, le joueur peut passer à un autre niveau.

Voila mon code:

Code : Tout sélectionner

<!-- Le code suivant sert à définir les 26 images des lettres de l'alphabet LSF possibles pour l'affichage et aussi à choisir l'une d'elle parmi elles aléatoirement. Le nom de l'image qui va etre affichée est stocké dans la variable affimage.--> <?php $nbimages=26; $nomimages[1]="A.PNG"; $nomimages[2]="B.PNG"; $nomimages[3]="C.PNG"; $nomimages[4]="D.PNG"; $nomimages[5]="E.PNG"; $nomimages[6]="F.PNG"; $nomimages[7]="G.PNG"; $nomimages[8]="H.PNG"; $nomimages[9]="I.PNG"; $nomimages[10]="J.PNG"; $nomimages[11]="K.PNG"; $nomimages[12]="L.PNG"; $nomimages[13]="M.PNG"; $nomimages[14]="N.PNG"; $nomimages[15]="O.PNG"; $nomimages[16]="P.PNG"; $nomimages[17]="Q.PNG"; $nomimages[18]="R.PNG"; $nomimages[19]="S.PNG"; $nomimages[20]="T.PNG"; $nomimages[21]="U.PNG"; $nomimages[22]="V.PNG"; $nomimages[23]="W.PNG"; $nomimages[24]="X.PNG"; $nomimages[25]="Y.PNG"; $nomimages[26]="Z.PNG"; srand((double)microtime()*1000000); $affimage=rand(1,$nbimages); /*Ici on met le code qui permet d'afficher 3 lettres de l'alphabet aléatoirement mais l'une d'elle est la traduction de l'image affichée plus haut dans le visuel*/ $alphabet="abcdefghijklmnopqrstuvwxyz"; //$nbrlettre=3; $lettre_aleatoire[1]=$alphabet[rand(0,25)]; $lettre_aleatoire[2]=$alphabet[rand(0,25)]; $lettre_aleatoire[3]=$alphabet[rand(0,25)]; //$affilettre=rand(3,$nbrlettre); ?> <div> <!--Ensuite, on demande l'affichage de l'image en lui meme :--> <img id="imageLSF" src="images/Alphabet/<?php echo $nomimages[$affimage]; ?>" alt="Image aléatoire"> </div> <div> <?php /*On affiche les 3 lettres de l'aphabet mais on fait en sorte qu'elles soient bien différentes*/ for ($i=1; $i<4; $i++){ echo $lettre_aleatoire[$i]; } ?>

LAHOYASHRA
Invité n'ayant pas de compte PHPfrance

25 mars 2016, 19:28

J'ai essayé avec ce code :

Code : Tout sélectionner

$lettre_aleatoire[1]=$alphabet[$affimage];
pour faire en sorte qu'une de ces lettre soit la bonne traduction de l'image LSF. Mais cela ne fonctionne pas. ça affiche 2 lettres identiques parmi les 3 ou 3 lettres qui ne correspondent pas à l'image.

Merci pour vos futurs éclaircissements.

Eléphant du PHP | 94 Messages

26 mars 2016, 10:40

En fait, si tu veux afficher la bonne combinaison de lettres parmi d'autres, il faut d'abord que tu enregistre le bon numéro de lettres (sans "$alphabet") puis que tu les mélanges avec 2 autres tirées au sort, c'est ça ?

Dans ce cas, il suffit d'utiliser soit les fonctions array_push & array_unshift en fonction d'un autre "rand(..)%2" (pour avoir un pair/impair à utiliser en fonction de l'ajout des tirées au sort dans le tableau pour le mélange).

Tu peux aussi voir du côté de la fonction shuffle en gardant ton code et en bouclant sur un élément en moins.
J'espère ne pas répondre à côté!!

LAHOYASHRA
Invité n'ayant pas de compte PHPfrance

26 mars 2016, 11:19

:D J'ai réussi!

Donc j'arrive bien à afficher une image d'une lettre LSF en aléatoire, et dessous 3 lettres de l'alphabet français qui sont bien différentes, en aléatoire aussi.
Merci de votre aide.
Voici mon code:

Code : Tout sélectionner

<!-- Le code suivant sert à définir les 26 images des lettres de l'alphabet LSF possibles pour l'affichage et aussi à choisir l'une d'elle parmi elles aléatoirement. Le nom de l'image qui va etre affichée est stocké dans la variable affimage.--> <?php $nbimages=26; $nomimages[1]="A.PNG"; $nomimages[2]="B.PNG"; $nomimages[3]="C.PNG"; $nomimages[4]="D.PNG"; $nomimages[5]="E.PNG"; $nomimages[6]="F.PNG"; $nomimages[7]="G.PNG"; $nomimages[8]="H.PNG"; $nomimages[9]="I.PNG"; $nomimages[10]="J.PNG"; $nomimages[11]="K.PNG"; $nomimages[12]="L.PNG"; $nomimages[13]="M.PNG"; $nomimages[14]="N.PNG"; $nomimages[15]="O.PNG"; $nomimages[16]="P.PNG"; $nomimages[17]="Q.PNG"; $nomimages[18]="R.PNG"; $nomimages[19]="S.PNG"; $nomimages[20]="T.PNG"; $nomimages[21]="U.PNG"; $nomimages[22]="V.PNG"; $nomimages[23]="W.PNG"; $nomimages[24]="X.PNG"; $nomimages[25]="Y.PNG"; $nomimages[26]="Z.PNG"; srand((double)microtime()*1000000); $affimage=rand(1,$nbimages); /*Ici on met le code qui permet d'afficher 3 lettres de l'alphabet aléatoirement mais l'une d'elle est la traduction de l'image affichée plus haut dans le visuel*/ $alphabet="abcdefghijklmnopqrstuvwxyz"; $melange = str_shuffle($alphabet); $lettres = str_shuffle(substr($melange, 0, 3)); ?> <div><img id="imageLSF" src="images/Alphabet/<?php echo $melange[0]; ?>.png"></div> <?php for ($i=0; $i<strlen($lettres); $i++){ echo $lettres[$i]; } ?>