C'est reparti pour un tour...
Nous allons réviser quelques termes informatiques...
Je vous propose cette révision par le biais d'un jeu de pendu. Un mot est tiré au hasard puis affiché avec sa première et sa dernière lettre séparées par des points. Vous proposez des lettres en cliquant sur des boutons et l'ordinateur vous met la lettre dans le mot si elle existe ou vous "pend" petit à petit si elle ne fait pas partie du mot... A vous d'être perspicace pour ne pas finir au bout d'une corde ;-)
Ci-dessous le code commenté. Le principe est simple, identique au jeu connu de tous. Les messages peuvent bien sûr être adaptés à vos besoins... Il peut également être rendu plus difficile en affichant aucune lettre au départ mais uniquement des points.
Le fichier "mots_pendu.js", dans lequel sont stockés les mots, est volontairement absent de cette page. Il contient 45 mots stockés sous la forme :
var Mot=new Array("Mot 1","Mot 2","Mot 3", ... ,"Mot n");
L'avantage d'avoir un fichier séparé vous permet de créer des thèmes différents. En effet, vous pouvez très bien avoir un fichier contenant des termes informatiques, un autre fichier contenant des termes médicaux, etc.
pendu.htm
<html> <head> <script language="Javascript" src="mots_pendu.js"></script> <script language="Javascript"> var NbMots=Mot.length; // Nb mots contenus dans la table Mot var Tirage=Math.floor(Math.random()*NbMots); // Tirer aléatoirement un mot var Cherche=Mot[Tirage]; // Stocker le mot tiré var Long=Cherche.length; // Calculer la longueur du mot tiré var Chaine=Cherche.substr(0,1); // Créer la chaine à afficher for(i=1;i<=(Long-2);i++){Chaine+=".";} // en mettant des . au milieu Chaine+=Cherche.substr(Long-1,Long); Propos=""; // Lettres proposées NbErr=0; // Nombre d'erreurs // Pour afficher les lettres du mot, on va aérer avec des espaces function aff_mot() { Tampon=""; for(i=0;i<Long;i++){Tampon=Tampon+" "+Chaine.substr(i,1);} document.frm.what.value=Tampon; } // Voir si la lettre existe dans le mot function trouve(Lettre) {Propos=Propos+Lettre; // La stocker dans les lettres proposées trv=0; // On considère au départ que la lettre n'est pas trouvée document.frm.coups.value="Jouées : "+Propos; // On affiche les lettres déjà jouées for (i=0;i<Long;i++) // Boucle de recherche de la lettre { if(Cherche.substr(i,1)==Lettre){ // Et prise en compte si trouvée trv=1; // On a trouvé cette lettre gauche=Chaine.substr(0,i); // On crée la chaine droite=Chaine.substr(i+1,Long); // en y insérant Chaine=gauche+Lettre+droite; // la lettre trouvée } } aff_mot(); // On affiche le mot if(trv==0){NbErr+=1;} // Si la lettre n'a pas été trouvée, +1 dans Erreurs if(NbErr>0){document.pict.src="pendu"+NbErr+".gif";} // Image à afficher if(NbErr>5){ // A-t-il perdu ? alert("Vous êtes pendu(e) !\nIl fallait trouver :\n"+Cherche); location.reload(true);} if(Chaine==Cherche){alert("Bravo !");location.reload(true);} // A-t-il gagné ? } </script> <style> input { border-color:#000000;border-width:1; font-family:Verdana, Arial, Helvetica, Geneva, sans-serif; font-size:14;color:#000000; } </style> </head> <body onLoad=aff_mot()><center> <table width=300 border=0><tr><td align=center> <h3>Un petit jeu de PENDU</h3></td><td> </td></tr><tr><td width=250 align=center> <form name="frm"><script> document.write("<input type=text name=what value='' size="+(2*Long)+">");</script> <br><br> <!-- Boucle d'affichage des lettres de l'alphabet avec fonction correspondante --> <script> for (i=65;i<=90;i++) // en deux morceaux pour des raisons d'affichage ici {document.write("<input type=button accesskey='&#"+i+";' "); document.write("value='&#"+i+";' onClick=trouve('&#"+i+";')>"); if (i==77){document.write("<br>");}}</script> <br><input type=text name=coups value='' size=30 style="border-width=0px;"> </form></td><td width=50><img src="pendu0.gif" name=pict></td></tr></table> </center> </body> </html>