Section courante

A propos

Section administrative du site

Bien avant de concevoir des jeux d'arcades, des Pac-Man, Tetris et des City of Heroes, il faut savoir programmer des jeux simples et que tous le monde comprennent parfaitement. Un de ceux-ci est sans nulle doute le jeux Entrecroisés dans lequel il faut trouvé à quel emplacement est situé un ensemble de mots dans une grille. Voici de quoi devrait avoir l'air le jeu entrecroisés avec les mots «JOSUE», «JESUS»,«JEREMIE»,«NOE»,«ELIE»,«MOISE»,«SAMUEL»,«JACOB»,«ABEL» :

A l'aide du code source JavaScript suivant, vous trouverez la réponse que vous souhaitez :

  1. <script type="text/javascript" language="javascript">
  2.  
  3. var MaGrilleY = new Array();
  4. var NumberToChar = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
  5.                              "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
  6.                                     "U", "V", "W", "X", "Y", "Z", "AA","AB","AC","AD");
  7.  
  8. document.write("<TABLE>");
  9. for(J = 0;J < 31;J++) {
  10.  document.write("<TR>");
  11.  MaGrilleY[J]=new Array();
  12.  for(I = 0;I < 31;I++) {
  13.      document.write("<TD ID=T",NumberToChar[I],J,"></TD>");
  14.       MaGrilleY[J][I]="@";
  15.  } 
  16.  document.write("</TR>");
  17. }
  18. document.write("</TABLE>");
  19.  
  20.  
  21. function AddHorizontalWord(X,Y,text) {
  22.    for(I = 0;I < text.length;I++) {
  23.           document.getElementById("T"+NumberToChar[X+I-1]+(Y)).innerHTML="<INPUT MAXLENGTH=1 SIZE=1 ID="+"I"+NumberToChar[X+I-1]+(Y)+" VALUE='' ONCHANGE='CheckGrille("+(X+I)+","+Y+")'>";
  24.           MaGrilleY[Y][X+I]=text.charAt(I);
  25.    }
  26. }
  27.  
  28. function AddVerticalWord(X,Y,text) {
  29.    for(I = 0;I < text.length;I++) {
  30.           document.getElementById("T"+NumberToChar[X-1]+(Y+I)).innerHTML="<INPUT MAXLENGTH=1 SIZE=1 ID="+"I"+NumberToChar[X-1]+(Y+I)+" VALUE='' ONCHANGE='CheckGrille("+X+","+(Y+I)+")'>";
  31.           MaGrilleY[Y+I][X]=text.charAt(I);
  32.    }
  33. }
  34.  
  35. function CheckGrille(X,Y) {
  36.      CurrLetter=document.getElementById("I"+NumberToChar[X-1]+Y).value.toUpperCase();
  37.      document.getElementById("I"+NumberToChar[X-1]+Y).value=CurrLetter;
  38.      
  39.      I=X;
  40.      while(I>0) {
  41.           if(MaGrilleY[Y][I]=="@") break;
  42.           I--;
  43.      }
  44.      if(I>=0) {
  45.           I++;
  46.          IS=I;
  47.           Ok=true;
  48.           while(I<=31) {
  49.                if(MaGrilleY[Y][I]=="@") break;
  50.                if(MaGrilleY[Y][I]!=document.getElementById("I"+NumberToChar[I-1]+Y).value) {
  51.                     Ok=false;
  52.                     break;
  53.                }
  54.                I++;
  55.           }
  56.           if(IS+1==I) Ok=false;
  57.           if(Ok) {
  58.                while(IS<=31) {
  59.                     if(MaGrilleY[Y][IS]=="@") break;
  60.                     document.getElementById("I"+NumberToChar[IS-1]+Y).style.backgroundColor = "#00FF00"; 
  61.                     IS++;
  62.                }
  63.           }
  64.      }
  65.      
  66.      J=Y;
  67.      while(J>0) {
  68.           if(MaGrilleY[J][X]=="@") break;
  69.           J--;
  70.      }
  71.      if(J>=0) {
  72.           J++;
  73.          JS=J;
  74.           Ok=true;
  75.           while(J<=31) {
  76.                if(MaGrilleY[J][X]=="@") break;
  77.                if(MaGrilleY[J][X]!=document.getElementById("I"+NumberToChar[X-1]+J).value) {
  78.                     Ok=false;
  79.                     break;
  80.                }
  81.                J++;
  82.           }
  83.           if(JS+1==J) Ok=false;
  84.           if(Ok) {
  85.                while(JS<=31) {
  86.                     if(MaGrilleY[JS][X]=="@") break;
  87.                     document.getElementById("I"+NumberToChar[X-1]+JS).style.backgroundColor = "#00FF00"; 
  88.                     JS++;
  89.                }
  90.           }
  91.      }
  92.  
  93. }
  94.  
  95. AddHorizontalWord(2,2,"JOSUE");
  96. AddHorizontalWord(2,5,"JESUS");
  97. AddHorizontalWord(2,7,"JEREMIE");
  98. AddHorizontalWord(1,10,"NOE");
  99. AddHorizontalWord(5,10,"ELIE");
  100. AddVerticalWord(3,1,"MOISE");
  101. AddVerticalWord(6,5,"SAMUEL");
  102. AddVerticalWord(2,7,"JACOB");
  103. AddVerticalWord(8,5,"ABEL");
  104. </script>


Dernière mise à jour : Mercredi, le 5 octobre 2011