Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1810 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  jeu de memory bug

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

jeu de memory bug

n°2142431
nougatine0​179
Posté le 15-05-2012 à 11:52:13  profilanswer
 

Bonjour à tous,
 
Je conçois un petit jeu de memory tout simple mais je bloque littéralement car le script ne démarre pas on dirait.
Je ne sais plus quoi faire.
Voici un extrait du fichier html (la div contenant mes cartes) :

Code :
  1. <head>
  2.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3.         <title>JEU DE MEMORY - Amandine Corgier-Perretant</title>
  4.         <link rel="stylesheet" type="text/css" href="projet_memory_corgier2.css" />
  5.        
  6.  <script language="javascript" src="projet_memory_corgier.js" type="text/javascript"></script>
  7.  <script type="text/javascript" src="fonts/cufon-yui.js"></script>
  8.  <script type="text/javascript" src="fonts/lobster.font.js"></script>
  9.  <script type="text/javascript">Cufon.replace('h1,h2');</script>
  10.      
  11. </head>
  12.     <body onload="installation()">
  13.            <!--conteneur global de ma page-->
  14.         <div id="global">
  15.              
  16.    
  17.         <div id="entete">      <!---MON HEADER DEBUT-->
  18.         <img src="autres/header.png" alt="projet"/>
  19.         <h1>Jeu de Memory<br/>
  20.           :: Projet 2012 Amandine Corgier - CHA173080 ::</h1>
  21.     </div>   <!---MON HEADER FIN-->
  22.      
  23.        
  24.        
  25.         <div id="boitecentrale"> <!---MA BOITE CENTRALE DEBUT-->
  26.        
  27.        
  28.         <div id="explications"> <!---MON EXPLICATION DEBUT-->
  29.             <h2>Les règles du jeu</h2><hr/>
  30.             <p>Le principe du Memory est de retrouver un ensemble de paires. Ce jeu se joue avec des cartes sur
  31.             lesquelles se trouvent des symboles. Chaque symbole se trouve sur deux cartes distinctes. Le jeu se déroule ainsi :</p>
  32.                 <ul>
  33.                 <li>Les cartes sont placées faces contre la table ;</li>
  34.                 <li>Le jeu se joue par tours successifs :</li>
  35.                 <li>Si les cartes sont les mêmes elles sont supprimées du jeu</li>
  36.                 <li>Si les cartes ne sont pas les mêmes, elles sont replacées au même endroit, face contre la table.</li>
  37.                 <li>Le jeu se termine quand toutes les paires ont été trouvées ;</li>
  38.                 <li>Le nombre de tentatives est affiché.</li>
  39.                 </ul>
  40.         </div>    <!---MON EXPLICATION FIN-->
  41.            
  42.         <div>  <!---MA BOITE MEMORY DEBUT-->
  43.             <table id="jeu" class="tablejeu">
  44.                 <tr>
  45.                 <td style="visibility: visible;"><button value="" class="" onmousedown="recuperer(0)"><img class="image" src="dos.jpg" alt=""/></button></td>
  46.                 <td style="visibility: visible;"><button value="" class="" onmousedown="recuperer(1)"><img class="image" src="dos.jpg" alt=""/></button></td>
  47.                 <td style="visibility: visible;"><button value="" class="" onmousedown="recuperer(2)"><img class="image" src="dos.jpg" alt=""/></button></td>
  48.                 <td style="visibility: visible;"><button value="" class="" onmousedown="recuperer(3)"><img class="image" src="dos.jpg" alt=""/></button></td>
  49.               </tr>
  50.            
  51.               <tr>
  52.                 <td style="visibility: visible"><button value="" class="" onmousedown="recuperer(4)"><img class="image" src="dos.jpg" alt=""/></button></td>
  53.                 <td style="visibility: visible"><button value="" class="" onmousedown="recuperer(5)"><img class="image" src="dos.jpg" alt=""/></button></td>
  54.                 <td style="visibility: visible"><button value="" class="" onmousedown="recuperer(6)"><img class="image" src="dos.jpg" alt=""/></button></td>
  55.                 <td style="visibility: visible"><button value="" class="" onmousedown="recuperer(7)"><img class="image" src="dos.jpg" alt=""/></button></td>
  56.               </tr>
  57.              
  58.                  <tr>
  59.                 <td style="visibility: visible; "><button value="" class="" onmousedown="recuperer(8)"><img class="image" src="dos.jpg" alt=""/></button></td>
  60.                 <td style="visibility: visible; "><button value="" class="" onmousedown="recuperer(9)"><img class="image" src="dos.jpg" alt=""/></button></td>
  61.                 <td style="visibility: visible; "><button value="" class="" onmousedown="recuperer(10)"><img class="image" src="dos.jpg" alt=""/></button></td>
  62.                 <td style="visibility: visible; "><button value="" class="" onmousedown="recuperer(11)"><img class="image" src="dos.jpg" alt=""/></button></td>
  63.               </tr>
  64.                  
  65.             </table>
  66.         </div>   <!---MA BOITE MEMORY FIN-->
  67.      
  68.    <!---MA BOITE A REJOUER DEBUT-->
  69. <div>
  70.     <form name="commencerjouer" action="" method="post">
  71.  <input type="button" name="" class="jouer" value="JOUER" onclick="melange()"/>
  72. </form>
  73. </div>
  74.    <!---MA BOITE A REJOUER DEBUT-->
  75.        </div> <!---MA BOITE CENTRALE FIN--> 
  76.    
  77.        
  78.         <!---MON FOOTER DEBUT-->
  79.         <div id="footer"> <!--pied de page, j'ai aussi choisi d'y insérer mon compteur de visites-->
  80.            
  81.            
  82.             <div class="icones-sociales"> <!--icones sociales-->
  83.             <p>- Les illustrations de carte sont l'oeuvre de Amandine Corgier-Perretant :: <a href="http://www.lyon-graphiste.fr" title="l'illustre graphiste">www.lyon-graphiste.fr</a> -</p>
  84.                 <ul>
  85.                     <li><a href="http://twitter.com/#!/Graphiste_Lyon" title="Twitter" target="_blank"><img src="autres/twitter.png" alt="twitter" border="0" /></a></li>
  86.                     <li><a href="http://www.facebook.com/graphiste.freelance.lyon" title="Facebook" target="_blank"><img src="autres/facebook.png" alt="facebook" border="0" /></a></li>
  87.                     <li><a href="http://www.lyon-graphiste.fr/?feed=rss" title="RSS" target="_blank"><img src="autres/rss.png" alt="rss" border="0" /></a></li>
  88.                 </ul>
  89.             </div> <!--fin icones sociales-->
  90.            
  91.             <div class="w3c">
  92.                 <a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
  93.                 <a href="http://jigsaw.w3.org/css-validator/check/referer"> <img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="CSS Valide !" /></a>
  94.             </div> <!--fin W3C-->
  95.            
  96.         </div> <!--fin pied de page-->
  97.  
  98.      </div>  <!--fin de mon conteneur GLOBAL-->


 
Voici mon script sur un fichier .js que j'ai inclus dans le head de mon fichier html :

Code :
  1. // JavaScript Document
  2. var cartes = new Array (12);
  3. var repere = new Array (12);
  4. var gravure = new Array (12);
  5. var nbrecarte = cartes.length;
  6. var chemin = "images/";
  7. var clic = 0;
  8. var essai = 0;
  9. var trouve = 0;
  10. var melanger = 0;
  11. //cette fonction est appelée dans la fonction mélange//
  12. function installation()
  13. {
  14. //On reprécise la class du tableau html //  
  15. document.getElementById('jeu').className = "tablejeu";
  16. // parcours du tableau des cartes de dos //  
  17. for(var dos=0 ; dos<nbrecarte ; dos++);
  18. //on instruit les propriétés de l'image du dos //  
  19.  {
  20.     document.images[dos].src = cartes[dos];
  21.  document.images[dos].src = "dos.jpg";
  22. //on instruit la visibilité des boutons et  images qui devront disparaitre//
  23.  document.getElementsByTagName('td')[dos].style.visibility = "visible";
  24.  }
  25. //on installe les compteurs, c'est un peu superflu car ils sont déjà déclarés //  
  26. essai = 0;
  27. trouve = 0;
  28. }
  29. //_______________________________________________________________________//
  30. //_______________________________________________________________________//
  31. function melange()
  32.  {
  33. //  //  
  34.  melanger = 1;
  35.  installation();
  36.          for (indice=0 ; indice<=nbrecarte; indice++)
  37.              {
  38.               repere[indice]= 0;
  39.              }
  40. //toutes le cases du tab repere sont égales à zero//
  41.          var face= 0;
  42.   while (face < nbrecarte )
  43.                {
  44. //toutes le cases du tab repere sont égales à zero//
  45.                numero = Math.floor (nbrecarte * Math.random());
  46.                numero++;
  47. //
  48.                if (repere[numero] == 0)
  49.                   {
  50.         gravure[face] = numero;
  51.         cartes[face] = chemin + numero + ".jpg" ;
  52.         //document.images[face].src = cartes[face] ; //
  53.                        repere[numero] = 1 ;
  54.         face++;
  55.                   }
  56.                }
  57.  }
  58. //_____________________________________________________________________//
  59. //_______________________________________________________________________//  
  60. function recuperer(numero)
  61. {
  62. if (melanger == 1)
  63.    {
  64.    document.images[numero].src = cartes[numero];
  65.    if ( clic == 0 )
  66.       {
  67.             facea = gravure[numero];
  68.         n1 = numero;
  69.       }
  70.    if ( clic == 1 )
  71.       {
  72.             faceb = gravure[numero];
  73.         n2 = numero;
  74.         clic = -1;
  75.         agiretcompter(facea,faceb,n1,n2);
  76.       }
  77.    clic++;
  78.    }
  79. else
  80.    {
  81.        alert ("Commencez la partie en cliquant sur JOUER" );
  82.    }
  83. }
  84. //_______________________________________________________________________//
  85. //_______________________________________________________________________//
  86. function changerClass(){
  87. //On recupere l'element html dans le document//  
  88. var e = document.getElementById("jeu" );
  89. //on modifie sa classe css pour changer l'image de fond du jeu//
  90.  e.className = 'nouvelletable';
  91. }
  92. //________________________________________________________//
  93. function agiretcompter(facea,faceb,n1,n2)
  94. {
  95. if (facea == faceb )
  96.    {
  97.         alert ("Attention il ne faut pas cliquer 2 fois sur la même image" );
  98.    }
  99. if ( (facea == (faceb - nbrecarte/2)) || (faceb == (facea - gravure.length/2)))
  100. {
  101.       trouve++;
  102.        essai++;
  103.         window.setTimeout('document.getElementsByTagName("td" )[n1].style.visibility = "hidden"',400);
  104.  window.setTimeout('document.getElementsByTagName("td" )[n2].style.visibility = "hidden"',400);
  105. }
  106. else
  107. {
  108.     window.setTimeout('document.images[n1].src = "dos.jpg"',300);
  109. window.setTimeout('document.images[n2].src = "dos.jpg"',300);
  110.    essai++;
  111. }
  112. if (trouve == nbrecarte/2 )
  113. {
  114.     alert('Bravo c\'est gagné en : \n ' + essai + ' coups ');
  115.      window.setTimeout('changerClass()',100);
  116.      melanger = 0;  
  117. }
  118. }


Message édité par nougatine0179 le 15-05-2012 à 12:09:11
mood
Publicité
Posté le 15-05-2012 à 11:52:13  profilanswer
 

n°2142463
dwogsi
Défaillance cérébrale...
Posté le 15-05-2012 à 15:04:48  profilanswer
 

Un lien de démo peut être ? C'est plus pratique pour debugger... Lire tout ton code... c'est... :o
Firebug est ton amis soit dit en passant.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°2142470
nougatine0​179
Posté le 15-05-2012 à 15:25:42  profilanswer
 

autant pour moi, voici le lien avec les éléments du dossier.
j'ai encore tenté des rectifs mais rie n'y fait en plus j'ai une big carte de dos qui s'affiche au démarrage, super !
http://graphistelyon.free.fr/jeumemory/

n°2142536
nougatine0​179
Posté le 15-05-2012 à 22:21:15  profilanswer
 

Personne pour m'aider ? :-((

n°2142571
mechkurt
Posté le 16-05-2012 à 08:54:59  profilanswer
 

Dans ta boucle installation, tu cibles toutes les images de la page pour les mettre de dos, y compris celle de ton entête, c'est pourquoi tu as une grosse carte de dos.
 
Quel est ton niveau en JS ?
Car sur ce forum on fait de la maïeutique, mais on ne fait pas les choses à la place des autres... ^^
 
Regarde pour utiliser un bibliothèque Javacript comme Jquery ou Mootools, ça te simplifieras énormément toutes les manipulations de ton code html (src des images, ajout ou suprpession de classe, selection d'image ayant une même classe, etc...).

n°2142574
nougatine0​179
Posté le 16-05-2012 à 09:16:30  profilanswer
 

Du coup comment puis-je lancer le script au démarrage sans prendre en compte l'image du haut ?
 
Je suis entrain d'apprendre javascript mais entre les enfants et le travail c'est pas évident d'avancer rapidement.
J'effectue une formation à distance qui manque de clarté

n°2142645
mechkurt
Posté le 16-05-2012 à 15:01:51  profilanswer
 

Code :
  1. for(var dos=0 ; dos<nbrecarte ; dos++);


 
Tu pars de dos = 0, si tu veux zapper la 1ere image, et comme tu passe par document.images[dos].src pour changer les src, tu peux augementer de 1 pour zapper la 1ere image du document.
 
Mais en utilisant une bibliothèque, tu pourrais cibler plus spécifiquement

Code :
  1. $('jeu').getElements('img').each(function(IMG,index){
  2.   IMG.set('src','dos.jpg');
  3. });


 
Tu as plein de ressource sur internet, par exemple : http://www.siteduzero.com/tutoriel [...] cript.html


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  jeu de memory bug

 

Sujets relatifs
Shared Memory Posix sur un Mac[MySQL] Moteur de base entre Memory et MyIsam
Constructeur par recopie (memory leak ?)zip lib: memory exceeded sur les gros fichiers zip
[PERL] Out of memory sur Win7 x64 [RESOLU]Fatal error: Allowed memory size of 33554432 bytes exhausted
memory error[javascript]Out of memory :(
[Eclipse] "An out of memory error has occured". Un flutiste en cadeau.ORACLE: ORA-00371: not enough shared pool memory, should be atleast 62
Plus de sujets relatifs à : jeu de memory bug


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR