Download: cliquer ici
Retour vers: rubrique "Gag"
UN PUZZLE MARRANT ! !

Cliquez sur "download" pour télécharger le kit nécessaire.
Compatible IE et NS. Cliquer sur l'une des pièces du puzzle touchant la case vide (le rond) par l'un de ses bords: elle échangeront leur place. Changer l'image par celle de votre choix. Utilisez un logiciel de retouche spécialisé web pour confectionner les pièces du puzzle.




1/ Insérez entre HEAD et /HEAD:
ou entre BODY et /BODY...
<SCRIPT LANGUAGE="JavaScript">
	<!--
	// Puzzle JavaScript (C)1997 Cyril Pannetier - La Petite Boutique JavaScript -
	// web : http://www.mygale.org/08/pannetie
	// e-mail : pannetie@mygale.org
	// Ce script est librement utilisable. Merci de ne pas effacer ces commentaires.
	
	function Convert(l,c) {
		return ( (l-1) * _col + c - 1 );
	}
	
	function CreateFileName(num) {
		var name;
	
		if (num < 10)
			if (num >= 1)
				name = _repert + "/" + _files + "0" + num + ".gif";
			else
				if (num == -1)
					name = _repert + "/blank.gif";
				else
					name = _repert + "/" + _files + "00" + ".gif";
		else
			name = _repert + "/" + _files + num + ".gif";
		return name;
	}
		
	function PlaceBitmap(ligne,colonne,name) {
		var nbimage;
		
		nbimage = Convert(ligne,colonne);
		document.images[nbimage].src = name;
	}
	
	function MelangeBitmap() {
	
		for (i = 0; i <= (_size-1); i++) {
			bitmaps[i] = i;
		}
	
		for (i = 1; i < 100; i++) {
			bmp1 = Math.floor((_size) * Math.random() );
			bmp2 = Math.floor((_size) * Math.random() );
	
			if (bmp1 != bmp2) {
				temp = bitmaps[bmp1];
				bitmaps[bmp1] = bitmaps[bmp2];
				bitmaps[bmp2] = temp;
			}
		}
		var k=0;
		for (i = 1; i <= _ligne; i++) {
			for (j = 1; j <= _col; j++) {
				PlaceBitmap(i,j,CreateFileName(bitmaps[k++]));
			}
		}
		PlaceBitmap(_ligne,_col,_repert +"/blank.gif");
		bitmaps[_size] = -1;
	}
	
	function MoveDown(li,co) {
		
		rep = false;
		if (li < _ligne) {
			if (bitmaps[Convert(li+1,co)] == -1)
				rep = true;
		}
		return rep;
	}
	
	function MoveUp(li,co) {
		
		rep = false;
		if (li > 1) {
			if (bitmaps[Convert(li-1,co)] == -1)
				rep = true;
		}
		return rep;
	}
	
	function MoveRight(li,co) {
		
		rep = false;
		if (co < _col) {
			if (bitmaps[Convert(li,co+1)] == -1)
				rep = true;
		}
		return rep;
	}
	
	function MoveLeft(li,co) {
		
		rep = false;
		if (co > 1) {
			if (bitmaps[Convert(li,co-1)] == -1)
				rep = true;
		}
		return rep;
	}
	
	function Swap(l1,c1,l2,c2) {
	
		Carte1 = Convert(l1,c1);
		Carte2 = Convert(l2,c2);
		temp = bitmaps[Carte1];
		bitmaps[Carte1] = bitmaps[Carte2];
		bitmaps[Carte2] = temp;
		PlaceBitmap(l1,c1,CreateFileName(bitmaps[Carte1]));
		PlaceBitmap(l2,c2,CreateFileName(bitmaps[Carte2]));
	}
	
	function CheckGame() {
	
		win = true;
		n = 0;
		while (win) {
			win = (bitmaps[n] == n);
			n++;
			if (n == _size)
				break;
		}
		return win;
	}
	
	function Victory() {
	
		PlaceBitmap(_ligne,_col,CreateFileName(_size));
		window.alert('Vous avez gagné ! ' + NbDeplacements + ' déplacements' );
	}
	
	function MoveCard(ligne,colonne) {
	
		if (bitmaps[Convert(ligne,colonne)] != -1) {
			if (MoveDown(ligne,colonne)) {
				Swap(ligne,colonne,ligne+1,colonne);
				NbDeplacements++;
			}
			else
				if (MoveUp(ligne,colonne)) {
					Swap(ligne,colonne,ligne-1,colonne);
					NbDeplacements++;
				}
				else
					if (MoveRight(ligne,colonne)) {
						Swap(ligne,colonne,ligne,colonne+1);
						NbDeplacements++;
					}
					else
						if (MoveLeft(ligne,colonne)) {
							Swap(ligne,colonne,ligne,colonne-1);
							NbDeplacements++;
						}
		}
		if (CheckGame())
			Victory();
	}
	
	// Initialise le jeu
	// Variables à passer :
	// psize : nombre de pièces dans le jeu
	// pligne : nombre de lignes dans le tableau
	// pcol : nombre de colonnes dans le tableau
	// prepert : nom du repertoire contenant les images
	//pfiles : nom de bas des fichiers 
	function InitGame(psize,pligne,pcol,prepert,pfiles) {
		var i,j;
	
		_size = psize;
		_ligne = pligne;
		_col = pcol;
		_repert = prepert;
		_files = pfiles;
		bitmaps = new Array(_size);
	
		NbDeplacements = 0;
		MelangeBitmap();
	}
	
	// Fin du script du puzzle
	
	function UpdateStatusBar(Num) {
	
		commentaires = new Array(3);
	
		commentaires[0] = '';
		commentaires[1] = 'KITWEB a sélectionné pour vous...';
		commentaires[2] = 'scripts, backgrounds, visuels, sons etc...';
	
		window.status = commentaires[Num];
	}
	//-->
	</SCRIPT>
2/ Insérez dans la page html:
à l'emplacement où doit apparaître le puzzle.
<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>
<TR>
	<TD><A HREF="#" onClick="MoveCard(1,1);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(1,2);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(1,3);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(1,4);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(1,5);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(1,6);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(1,7);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(1,8);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(1,9);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(1,10);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
</TR>
<TR>
	<TD><A HREF="#" onClick="MoveCard(2,1);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(2,2);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(2,3);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(2,4);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(2,5);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(2,6);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(2,7);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(2,8);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(2,9);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(2,10);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
</TR>
<TR>
	<TD><A HREF="#" onClick="MoveCard(3,1);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(3,2);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(3,3);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(3,4);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(3,5);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(3,6);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(3,7);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(3,8);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(3,9);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(3,10);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
</TR>
<TR>
	<TD><A HREF="#" onClick="MoveCard(4,1);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(4,2);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(4,3);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(4,4);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(4,5);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(4,6);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(4,7);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(4,8);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(4,9);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(4,10);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
</TR>
<TR>
	<TD><A HREF="#" onClick="MoveCard(5,1);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(5,2);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(5,3);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(5,4);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(5,5);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(5,6);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(5,7);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(5,8);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(5,9);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(5,10);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
</TR>
<TR>
	<TD><A HREF="#" onClick="MoveCard(6,1);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(6,2);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(6,3);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(6,4);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(6,5);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(6,6);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(6,7);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(6,8);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(6,9);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(6,10);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
</TR>
<TR>
	<TD><A HREF="#" onClick="MoveCard(7,1);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(7,2);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(7,3);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(7,4);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(7,5);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(7,6);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(7,7);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(7,8);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(7,9);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
	<TD><A HREF="#" onClick="MoveCard(7,10);"><IMG SRC="camion/blank.gif" BORDER=0></A></TD>
</TR>
</TABLE>
3/ Insérer juste en-dessous du puzzle:
ou à l'emplacement de votre choix...
<FORM>
<INPUT TYPE="button" VALUE="Solution" onClick="SolPuzzle=window.open('camion/solution.html','SolPuzzle','width=500,height=366,toolbar=0,status=0');">
<INPUT TYPE="button" VALUE="Mélanger" onClick="InitGame(69,7,10,'camion','camion');">
</FORM>
4/ Insérer juste en-dessous des boutons:
<SCRIPT LANGUAGE="JavaScript">
<!--
InitGame(69,7,10,"camion","camion");
//-->
</SCRIPT>