Accueil > > > PHP_PUZZLE
PHP_PUZZLE
Information sur la source
Description
Un jeu ou on a une image découpée en a*b cases, on enlève la case en bas à droite, on mélange, et on doit retrouver l'image d'origine... créez le dossier images dans lequel vous mettrez vos images (celles avec lesquelles vous voulez jouer), et n'oubliez pas de mettre des droits d'accès en écriture pour les miniatures...
Source
- <html>
- <head>
- <style>
- table{
- border-collapse:collapse;
- }
- table tr td, table tr td img{
- margin:0px;
- padding:0px;
- }
- </style>
- <script>
- var g=false;
- var l=500;
- function init(){
- m=new matrice();
- }
- function aclique(px, py){
- if (g){
- if (confirm("voulez vous recommencer ?")){
- melange(l);
- g=false;
- }
- }else{
- if (m.clique(px, py)){
- m.affiche();
- if (m.finit()){
- alert("good game !!!");
- g=true;
- }
- }else{
- alert("click incorect !");
- }
- }
- }
- function melange(i){
- var j, py, px, a, o=-1;
- for (j=0;j<i;j++){
- b=true;
- while (b){
- px=m.freex;
- py=m.freey;
- b=false;
- a=Math.floor(Math.random()*4);
- if (a==0){
- px++;
- }else if (a==1){
- px--;
- }else if (a==2){
- py++;
- }else if (a==3){
- py--;
- }
- if (px < 0 || px > 9 || py < 0 || py > 9 || o==a)
- b=true;
- if (!b){
- if (a==0){
- o=1;
- }else if (a==1){
- o=0;
- }else if (a==2){
- o=3;
- }else if (a==3){
- o=2;
- }
- }
- }
- if (!m.clique(px, py)){
- alert("click invalide !");
- }
- }
- m.affiche();
- }
- function matrice(){
- this.freex=9;
- this.freey=9;
- this.clique=matriceclique;
- this.affiche=matriceaffiche;
- this.finit=matricefinit;
- this.tab=new Array(10);
- this.goodgame=new Array(10);
- for (i=0;i<10;i++){
- this.tab[i]=new Array(10);
- this.goodgame[i]=new Array(10);
- for (j=0;j<10;j++){
- this.tab[i][j]=document.getElementById(i+"_"+j).src;
- this.goodgame[i][j]=document.getElementById(i+"_"+j).src;
- }
- }
- }
- function matricefinit(){
- for (i=0;i<10;i++){
- for (j=0;j<10;j++){
- if (this.tab[i][j]!=this.goodgame[i][j]){
- return false;
- }
- }
- }
- return true;
- }
- function matriceaffiche(){
- for (i=0;i<10;i++){
- for (j=0;j<10;j++){
- if (document.getElementById(i+"_"+j))
- document.getElementById(i+"_"+j).src=this.tab[i][j];
- }
- }
- }
- function matriceclique(px, py){
- if (Math.abs(px-this.freex)+Math.abs(py-this.freey)==1){
- if (this.tab[this.freex][this.freey] && this.tab[px][py]){
- a=this.tab[px][py];
- this.tab[px][py]=this.tab[this.freex][this.freey];
- this.tab[this.freex][this.freey]=a;
- this.freex=px;
- this.freey=py;
- return true;
- }else{
- //alert(px+'---'+py+'-----///-----'+this.freex+'---'+this.freey);
- return false;
- }
- }else{
- //alert("mauvais click ("+this.freex+","+this.freey+") click en : ("+px+","+py+")");
- return false;
- }
- }
- m=0;
- //alert(m.tab);
- </script>
- </head>
- <?php
- if (isset($_GET['image'])){
- $rep=base64_encode($_GET['image']);
- echo '<body onload="init();setTimeout(\'melange(l);\', 10000);">';
- if (!is_dir('images/decoupe')){
- mkdir('images/decoupe');
- }
- if (!is_dir('images/decoupe/'.$rep.'')){
- mkdir('images/decoupe/'.$rep.'');
- }
- if (!file_exists('images/decoupe/'.$rep.'/image_0_0.png')){
- $a=imagecreatefromjpeg('images/'.$_GET['image']);
- $x=imagesX($a);
- $y=imagesY($a);
- $b=imagecreatetruecolor(500,500);
- ImageCopyResized($b,$a,0,0,0,0,500,500,$x, $y);
- $c=imagecreatetruecolor(50,50);
- $cb = imagecolorallocate($c,0,0,0);
- $cw = imagecolorallocate($c,200,200,200);
- for ($x=0;$x<10;$x++){
- for ($y=0;$y<10;$y++){
- if ($x!=9 || $y!=9){
- imagecopy($c, $b,
- 0, 0,
- $x*50, $y*50,
- 50, 50);
- }else{
- imagefilledrectangle($c, 0, 0, 50,50, $cw);
- }
- imageline($c, 0, 0, 49,0, $cb);
- imageline($c, 49, 0, 49,49, $cb);
- imageline($c, 49, 49, 0,49, $cb);
- imageline($c, 0, 49, 0,0, $cb);
- imagepng($c, 'images/decoupe/'.$rep.'/image_'.$x.'_'.$y.'.png');
- }
- }
- }
-
- echo '
- <table>';
- for ($y=0;$y<10;$y++){
- echo '<tr>';
- for ($x=0;$x<10;$x++){
- echo '<td><img src="images/decoupe/'.$rep.'/image_'.$x.'_'.$y.'.png" id="'.$x.'_'.$y.
- '" onclick="aclique('.$x.','.$y.');" /></td>';
- }
- echo '</tr>';
- }
- echo '</table>';
- }else{
- echo '<body>';
- if (!is_dir('images/small/')){
- mkdir('images/small/');
- }
- $a=opendir('images/');
- while(false!==($f=readdir($a))) {
- if (is_file('images/'.$f)) {
- if (!is_file('images/small/'.$f)) {
- $c=imagecreatefromjpeg('images/'.$f);
- $x=imagesX($c);
- $y=imagesY($c);
- $k=min(160/$x, 120/$y);
- $x2=$x*$k;
- $y2=$y*$k;
- $b=imagecreatetruecolor($x2, $y2);
- ImageCopyResized($b,$c,0,0,0,0,$x2,$y2,$x, $y);
- imagepng($b, 'images/small/'.$f);
- }
- echo '<a href="puzzle.php?image='.$f.'"><img src="images/small/'.$f.'" /></a>';
- }
- }
- }
- ?>
- </body>
- </html>
<html>
<head>
<style>
table{
border-collapse:collapse;
}
table tr td, table tr td img{
margin:0px;
padding:0px;
}
</style>
<script>
var g=false;
var l=500;
function init(){
m=new matrice();
}
function aclique(px, py){
if (g){
if (confirm("voulez vous recommencer ?")){
melange(l);
g=false;
}
}else{
if (m.clique(px, py)){
m.affiche();
if (m.finit()){
alert("good game !!!");
g=true;
}
}else{
alert("click incorect !");
}
}
}
function melange(i){
var j, py, px, a, o=-1;
for (j=0;j<i;j++){
b=true;
while (b){
px=m.freex;
py=m.freey;
b=false;
a=Math.floor(Math.random()*4);
if (a==0){
px++;
}else if (a==1){
px--;
}else if (a==2){
py++;
}else if (a==3){
py--;
}
if (px < 0 || px > 9 || py < 0 || py > 9 || o==a)
b=true;
if (!b){
if (a==0){
o=1;
}else if (a==1){
o=0;
}else if (a==2){
o=3;
}else if (a==3){
o=2;
}
}
}
if (!m.clique(px, py)){
alert("click invalide !");
}
}
m.affiche();
}
function matrice(){
this.freex=9;
this.freey=9;
this.clique=matriceclique;
this.affiche=matriceaffiche;
this.finit=matricefinit;
this.tab=new Array(10);
this.goodgame=new Array(10);
for (i=0;i<10;i++){
this.tab[i]=new Array(10);
this.goodgame[i]=new Array(10);
for (j=0;j<10;j++){
this.tab[i][j]=document.getElementById(i+"_"+j).src;
this.goodgame[i][j]=document.getElementById(i+"_"+j).src;
}
}
}
function matricefinit(){
for (i=0;i<10;i++){
for (j=0;j<10;j++){
if (this.tab[i][j]!=this.goodgame[i][j]){
return false;
}
}
}
return true;
}
function matriceaffiche(){
for (i=0;i<10;i++){
for (j=0;j<10;j++){
if (document.getElementById(i+"_"+j))
document.getElementById(i+"_"+j).src=this.tab[i][j];
}
}
}
function matriceclique(px, py){
if (Math.abs(px-this.freex)+Math.abs(py-this.freey)==1){
if (this.tab[this.freex][this.freey] && this.tab[px][py]){
a=this.tab[px][py];
this.tab[px][py]=this.tab[this.freex][this.freey];
this.tab[this.freex][this.freey]=a;
this.freex=px;
this.freey=py;
return true;
}else{
//alert(px+'---'+py+'-----///-----'+this.freex+'---'+this.freey);
return false;
}
}else{
//alert("mauvais click ("+this.freex+","+this.freey+") click en : ("+px+","+py+")");
return false;
}
}
m=0;
//alert(m.tab);
</script>
</head>
<?php
if (isset($_GET['image'])){
$rep=base64_encode($_GET['image']);
echo '<body onload="init();setTimeout(\'melange(l);\', 10000);">';
if (!is_dir('images/decoupe')){
mkdir('images/decoupe');
}
if (!is_dir('images/decoupe/'.$rep.'')){
mkdir('images/decoupe/'.$rep.'');
}
if (!file_exists('images/decoupe/'.$rep.'/image_0_0.png')){
$a=imagecreatefromjpeg('images/'.$_GET['image']);
$x=imagesX($a);
$y=imagesY($a);
$b=imagecreatetruecolor(500,500);
ImageCopyResized($b,$a,0,0,0,0,500,500,$x, $y);
$c=imagecreatetruecolor(50,50);
$cb = imagecolorallocate($c,0,0,0);
$cw = imagecolorallocate($c,200,200,200);
for ($x=0;$x<10;$x++){
for ($y=0;$y<10;$y++){
if ($x!=9 || $y!=9){
imagecopy($c, $b,
0, 0,
$x*50, $y*50,
50, 50);
}else{
imagefilledrectangle($c, 0, 0, 50,50, $cw);
}
imageline($c, 0, 0, 49,0, $cb);
imageline($c, 49, 0, 49,49, $cb);
imageline($c, 49, 49, 0,49, $cb);
imageline($c, 0, 49, 0,0, $cb);
imagepng($c, 'images/decoupe/'.$rep.'/image_'.$x.'_'.$y.'.png');
}
}
}
echo '
<table>';
for ($y=0;$y<10;$y++){
echo '<tr>';
for ($x=0;$x<10;$x++){
echo '<td><img src="images/decoupe/'.$rep.'/image_'.$x.'_'.$y.'.png" id="'.$x.'_'.$y.
'" onclick="aclique('.$x.','.$y.');" /></td>';
}
echo '</tr>';
}
echo '</table>';
}else{
echo '<body>';
if (!is_dir('images/small/')){
mkdir('images/small/');
}
$a=opendir('images/');
while(false!==($f=readdir($a))) {
if (is_file('images/'.$f)) {
if (!is_file('images/small/'.$f)) {
$c=imagecreatefromjpeg('images/'.$f);
$x=imagesX($c);
$y=imagesY($c);
$k=min(160/$x, 120/$y);
$x2=$x*$k;
$y2=$y*$k;
$b=imagecreatetruecolor($x2, $y2);
ImageCopyResized($b,$c,0,0,0,0,$x2,$y2,$x, $y);
imagepng($b, 'images/small/'.$f);
}
echo '<a href="puzzle.php?image='.$f.'"><img src="images/small/'.$f.'" /></a>';
}
}
}
?>
</body>
</html>
Historique
- 17 novembre 2006 14:20:02 :
- zip ajouté
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Tri de fichiers par date [ par Clem ]
Comment trier dans l'orde du plus nouveau au plus vieux, des dossiers ?J'ai trouvé pour afficher les dossiers :<?$rep=opendir('.');while ($file = r
Préchargement d'images [ par fgerm76 ]
Bonjour à tous,pour que l'affichage de mon calque soit instantané, j'ai besoin de précharger les images le composant.Et ensuite d'affecter ces images
g l'adresse d'une images qui est contenu dans le chjamps d'une table et ... [ par Ethan00000 ]
je programme en php et je debute si tu sais m'aider ce serais sympa.j'ai une base de données dans laquelle j'ai une table qui contient un champs "imag
MySQL et images [ par Marneus Calgar ]
SalutJ'aimerais savoir s'il est possible de stocker des images dans une table MySQL et d'y accéder depuis une page PHP. En fait, je voudrais faire un
MySQL et images [ par Marneus Calgar ]
SalutJ'aimerais savoir s'il est possible de stocker des images dans une table MySQL et d'y accéder depuis une page PHP. En fait, je voudrais faire un
Toi Webmaster ? [ par 6Po ]
Salut,Nous, Dreamers on crée des petits jeux dans un but amateur. Moi le webmaster en cours je suis Nul :D j'ai compris comment fonctionnait php ca c'
Lecture d'un dossier... [ par RockmanX ]
Voila mon "problème":Dans le dossier ci-dessous, il y a des images nommées:smile1.gif,smile2.gif,...smile8.gifj''ai écrit le script ci-dessous mais au
Inclure a partir d'un rep different [ par fabiin ]
Salutavoir voila mon problème:J'ai un fichier/dossier/monfichier.phpki inclu une page /page.phpet dans cette page il y a une image /images/machin.gifO
des images dans un tablo !!! [ par penchaki ]
voilà j'ai des images, avec des titres, que j'ai mise dans une base donnée ... jusque là pas de problémepar contre je voudrais les afficher en lignes
cherche quelqu'un pour créer une zone jeux [ par pjh ]
bjr ben c moi, j'aimerai rentrer en contact avec quelqu'un pour créer une zone jeux (membres plus jeux) pour un portail, en contrepartie je reverse à
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|