C'est reparti pour un tour...
Mais cette fois, vous allez pouvoir gagner !!!
Je vous propose un petit jeu d'allumettes.
Le but de ce jeu est de prendre la dernière allumette sachant que chaque joueur prend 1, 2 ou 3 allumettes à la fois.
Le nombre d'allumettes au départ est fixé à 21.
Le joueur qui commence est déterminé par un tirage au sort et vous pouvez donc, tout comme l'ordinateur, GAGNER !!!
Ci-dessous le code commenté. Le nombre d'allumettes au départ se règle simplement à l'aide de la ligne "var N = 21;". Vous pourrez adapter le code pour que l'utilisateur choisisse cette valeur maxi. Tous les messages (de départ, de félicitations) peuvent bien sûr être également adaptés à vos besoins...
jeu_allum.htm
<html> <head> <script language="Javascript"> var N = 21; // Nombre d'allumettes au départ var Maxi=N; // Sauvegarde nombre d'allumettes var p = 3; // Nombre maximum d'allumettes autorisées var depart = Math.floor(Math.random()*2); // Pour déterminer qui commence // Images des allumettes (allumoff.gif est une image blanche ;-) Img_On=new Image;Img_On.src="allumon.gif"; // Allumette activée Img_Off=new Image;Img_Off.src="allumoff.gif"; // Allumette désactivée // --- Fonctions utilisées ---- // Fonction d'activation/désactivation d'une allumette // Elle reçoit en paramètres : // - le nom de l'image à afficher // - le nom de l'objet concerné function img_act(imgName,lieu) {imgon=eval(imgName + ".src");document [lieu].src=imgon;} // Fonction d'affichage des allumettes function affiche() { // Mettre les allumettes qui restent mais en principe ça ne // sert à rien puisque les allumettes ne font que disparaître !!! // On va activer l'image On ou l'image Off selon le cas // pour les n objets appelés 1,2,3,4,5, etc. for(i=1;i<=N;i++) {img_act('Img_On',i);} // Enlever les allumettes qui disparaissent for(i=N+1;i<=Maxi;i++) {img_act('Img_Off',i);} } // Le joueur joue de 1 à 3 allumettes function humain_joue(Nb) { N = N - Nb; // On retire le Nb d'allumettes affiche(); // et on affiche les allumettes // S'il n'y a plus d'allumettes, le joueur a gagné ! // Et on lui dit Bravo puis on recharge la page (nouvelle partie) if(N==0){alert("Pas mal pour un humain ! :-(");location.reload(true);} // Sinon, l'ordinateur joue à son tour if(N!=0){pc_joue()}; // Si le jeu n'est pas fini, au PC de jouer } // L'ordinateur joue function pc_joue() { // On calcule le modulo à 4 (il faut toujours laisser une allumette de plus // que le maximum autorisé afin de pouvoir gagner donc 4 (p+1) Nall = N - (Math.floor(N/(p+1))*(p+1)); // ou Nall = N % 4 // Si ce modulo est égal à zéro, on tire au hasard entre 1 et 3 allumettes if(Nall==0){Nall=1+Math.floor(Math.random()*p);} alert("L'ordinateur enlève "+ Nall+ " allumette(s)"); N = N - Nall; // On retire le Nb d'allumettes affiche(); // et on affiche les allumettes // S'il n'y a plus d'allumettes, l'ordinateur a gagné if(N==0){alert("Qui c'est le meilleur ? ;-)");location.reload(true);} } </script> </head> <body><font face="Verdana, Arial, sans-serif" size=2> <h3>Un petit jeu d'allumettes</h3> Celui qui prend la dernière allumette gagne la partie !<br> <form name="frm"> <!-- Boucle d'affichage des allumettes en nommant chaque objet 1,2,3,etc. --> <script>for(i=1;i<=N;i++){ document.write("<img src='allumon.gif' name='"+i+"'>");} </script> <br><br> Combien prenez-vous d'allumettes ? <!-- Boucle d'affichage des choix de tirage d'allumette(s) --> <script>for(i=1;i<=p;i++){ document.write("<input type='button' value=' "+i+" 'onClick='humain_joue("+i+")'>");} </script> </form> <!-- Ici, le premier qui commence est tiré aléatoirement --> <script> if(depart==1) {alert("L'ordinateur commence...");pc_joue();} else {alert("A vous de commencer.");} </script> </body> </html>
A vos claviers... Et attention de ne pas y mettre le feu...