- <html>
- <head>
- <title> Taquin </title>
- <script language="JavaScript">
- /*
- - fonction papillon(a,b)
- attribution d'une image à une case du tableau
- - fonction numero_id(a,b)
- attribution d'un id à une case du tableau
- - fonction proximite(colonne,ligne)
- verification si la case cliquée est à proximité de la case vide
- renvoi 1 si le vide et l'image sont sur la même colonne ou
- 2 si le vide et l'image sont sur la même ligne , sinon 0
- - fonction echanger (colonne,ligne)
- echange de l'image de la case cliquée et de la case vide
- - fonction cliquer(colonne,ligne)
- evenement click sur une image
- - fonction onMelange( F )
- melanger les images un peu 1, moyennement 2, beaucoup 3, on deplace la case vide
- - fonction Hazard (colonne,ligne)
- randomization de onMelange()
- sortie 0 pas de deplacement, haut 1 ,bas 2 , droite 3 , gauche 4
- */
- var limiteX = 3; //colonnes 0 à limiteX
- var limiteY = 3; //lignes 0 à limiteY
- var vide = new Array(limiteX,limiteY);//position de la case vide
- //le reseau de cases est fixe
- //les images sont mobiles et attribuées temporairement à une case
- //attribution d'une image à une case du tableau
- function papillon(a,b){
- var morceau = (a+1)+b*4;
- var uneImage = "papill" + morceau + ".JPG";
- return uneImage;
- }
- //attribution d'un id à une case du tableau
- function numero_id(a,b){
- var nb = eval( (b+a)+a*4)
- return nb;
- }
- //verification si la case cliquée est à proximité de la case vide renvoi 1 ou 2 si oui, 0 si non
- function proximite(colonne,ligne){
- if (vide[0] == colonne) {
- if ( vide[1] == eval( ligne + 1) || vide[1] == eval( ligne - 1)) {
- return 1; //le vide et l'image sont sur la même colonne
- }
- else {
- return 0;
- }
- }
- else {
- if (vide[1] == ligne) {
- if ( vide[0] == eval( colonne + 1) || vide[0] == eval( colonne - 1)) {
- return 2;//le vide et l'image sont sur la même ligne
- }
- else {
- return 0;
- }
- }
- else {
- return 0;
- }
- }
- }
- //echange de l'image de la case cliquée et de la case vide
- function echanger (colonne,ligne){
- var source = document.getElementById(numero_id(colonne,ligne)).src;
- var neant = document.getElementById(numero_id(vide[0],vide[1])).src;
- document.getElementById(numero_id(colonne,ligne)).src = neant;
- document.getElementById(numero_id(vide[0],vide[1])).src = source;
- vide[0] = colonne;
- vide[1] = ligne;
- }
- //evenement click sur une image
- function cliquer(colonne,ligne){
- var p = proximite(colonne,ligne) ;
- if ( p == 0) {
- window.alert("Mouvement impossible");
- }
- else {
- echanger(colonne,ligne);
- };
- }
- //melanger les images un peu 1, moyennement 2, beaucoup 3, on deplace la case vide
- function onMelange( F ) {
- for (var i= 1 ; i<= parseInt(F) ; i++){
- var Direction = '0';
- var Cx ;
- var Cy ;
- while ( Direction == '0') {
- Direction = Hazard( vide[0] , vide[1] );
- }
- switch (Direction) {
- case '1': //deplacer le vide vers le haut
- Cx = vide[0];
- Cy =vide[1]-1;
- break;
- case '2': //deplacer le vide vers le bas
- Cx = vide[0];
- Cy =vide[1]+1;
- break;
- case '3': //deplacer le vide vers la droite
- Cx = vide[0]+1;
- Cy =vide[1];
- break;
- case '4': //deplacer le vide vers la gauche
- Cx = vide[0]-1;
- Cy =vide[1];
- break;
- } ;
- echanger(Cx,Cy);
- }
- }
- //randomization de onMelange
- //valeurs colonne et ligne incluses dans 0,1,2,3
- function Hazard (colonne,ligne) {
- var Decision = '0'; // 0 pas de deplacement, haut 1 ,bas 2 , droite 3 , gauche 4
- var R = Math.floor(Math.random() * 4 ) +1 ;
- if ( R ==1 ){ Decision = '1';}
- else {
- if ( R ==2 ){ Decision = '2';}
- else {
- if ( R ==3 ){ Decision = '3';}
- else {
- Decision = '4';
- }
- } }
- switch (Decision){ //verification de la possibilite de deplacement selon position
- case '1' :
- if (ligne == 0){Decision = '0';};//deplacement vers le haut impossible
- break;
- case '2' :
- if (ligne == limiteY){Decision = '0';};//deplacement vers le bas impossible
- break;
- case '3' :
- if (colonne == limiteX){Decision = '0';};//deplacement vers la droite impossible
- break;
- case '4' :
- if (colonne == 0){Decision = '0';};//deplacement vers la gauche impossible
- break;
- }
- return Decision;
- }
- </script>
- </head>
- <body>
- <form>
- <table>
- <script language="JavaScript">
- for (var i =0 ; i<=limiteX ; i++){
- document.write(" <tr> ");
- for (var j=0 ; j<=limiteY ; j++){
- var LeMorceau = papillon(j,i) ;
- document.write("<td > <img id="+numero_id(i,j)+" src=' "+LeMorceau+" ' onClick='javascript:cliquer("+i+","+j+")' > </td>");
- }
- document.write(" </tr> </br>");
- }
- </script>
- </table></br>
- <p> Choisir la difficulté </p>
- <select name="choix" >
- <option value='30'> facile </option>
- <option value='45'> moyen </option>
- <option value='60'> difficile </option>
- </select>
- <input type="button" value="Valider" onClick="javascript:onMelange(choix.value)"/>
- </form>
- </body>
- </html>
Taquin Game html javascript