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 :
- <script type="text/javascript" language="javascript">
-
- var MaGrilleY = new Array();
- var NumberToChar = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
- "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
- "U", "V", "W", "X", "Y", "Z", "AA","AB","AC","AD");
-
- document.write("<TABLE>");
- for(J = 0;J < 31;J++) {
- document.write("<TR>");
- MaGrilleY[J]=new Array();
- for(I = 0;I < 31;I++) {
- document.write("<TD ID=T",NumberToChar[I],J,"></TD>");
- MaGrilleY[J][I]="@";
- }
- document.write("</TR>");
- }
- document.write("</TABLE>");
-
-
- function AddHorizontalWord(X,Y,text) {
- for(I = 0;I < text.length;I++) {
- 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+")'>";
- MaGrilleY[Y][X+I]=text.charAt(I);
- }
- }
-
- function AddVerticalWord(X,Y,text) {
- for(I = 0;I < text.length;I++) {
- 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)+")'>";
- MaGrilleY[Y+I][X]=text.charAt(I);
- }
- }
-
- function CheckGrille(X,Y) {
- CurrLetter=document.getElementById("I"+NumberToChar[X-1]+Y).value.toUpperCase();
- document.getElementById("I"+NumberToChar[X-1]+Y).value=CurrLetter;
-
- I=X;
- while(I>0) {
- if(MaGrilleY[Y][I]=="@") break;
- I--;
- }
- if(I>=0) {
- I++;
- IS=I;
- Ok=true;
- while(I<=31) {
- if(MaGrilleY[Y][I]=="@") break;
- if(MaGrilleY[Y][I]!=document.getElementById("I"+NumberToChar[I-1]+Y).value) {
- Ok=false;
- break;
- }
- I++;
- }
- if(IS+1==I) Ok=false;
- if(Ok) {
- while(IS<=31) {
- if(MaGrilleY[Y][IS]=="@") break;
- document.getElementById("I"+NumberToChar[IS-1]+Y).style.backgroundColor = "#00FF00";
- IS++;
- }
- }
- }
-
- J=Y;
- while(J>0) {
- if(MaGrilleY[J][X]=="@") break;
- J--;
- }
- if(J>=0) {
- J++;
- JS=J;
- Ok=true;
- while(J<=31) {
- if(MaGrilleY[J][X]=="@") break;
- if(MaGrilleY[J][X]!=document.getElementById("I"+NumberToChar[X-1]+J).value) {
- Ok=false;
- break;
- }
- J++;
- }
- if(JS+1==J) Ok=false;
- if(Ok) {
- while(JS<=31) {
- if(MaGrilleY[JS][X]=="@") break;
- document.getElementById("I"+NumberToChar[X-1]+JS).style.backgroundColor = "#00FF00";
- JS++;
- }
- }
- }
-
- }
-
- AddHorizontalWord(2,2,"JOSUE");
- AddHorizontalWord(2,5,"JESUS");
- AddHorizontalWord(2,7,"JEREMIE");
- AddHorizontalWord(1,10,"NOE");
- AddHorizontalWord(5,10,"ELIE");
- AddVerticalWord(3,1,"MOISE");
- AddVerticalWord(6,5,"SAMUEL");
- AddVerticalWord(2,7,"JACOB");
- AddVerticalWord(8,5,"ABEL");
- </script>
Dernière mise à jour : Mercredi, le 5 octobre 2011