begin process at 2010 02 10 15:21:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > LABYRINTHES EN PHP (GD + HTML) GÉNÉRATION + RÉSOLUTION

LABYRINTHES EN PHP (GD + HTML) GÉNÉRATION + RÉSOLUTION


 Information sur la source

Note :
Aucune note
Catégorie :Jeux Classé sous :labyrinthe, gd, algorithme, tableau Niveau :Initié Date de création :08/08/2008 Vu / téléchargé :3 696 / 202

Auteur : nax333

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


 Description

Voici une classe qui génère et résout des labyrinthes en php le résultat peut être afficher en image/png ou en tableau html.

Pour l'utilisation regardez le fichier index.php


Source

  • <?php
  • /**
  • This program is free software: you can redistribute it and/or modify
  • it under the terms of the GNU General Public License as published by
  • the Free Software Foundation, either version 3 of the License, or
  • (at your option) any later version.
  • This program is distributed in the hope that it will be useful,
  • but WITHOUT ANY WARRANTY; without even the implied warranty of
  • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  • GNU General Public License for more details.
  • You should have received a copy of the GNU General Public License
  • along with this program. If not, see <http://www.gnu.org/licenses/>.
  • */
  • set_time_limit(10);
  • error_reporting(E_ALL);
  • /*
  • ---- Générateur et Solveur de Labyrinthes ----
  • fichier gen.fusion.class.php
  • Genere un labyrinthe par fusion.
  • CF : article sur wikipedia.
  • */
  • /* Codage de class type : php5 */
  • define('IDX', 3);
  • /* Sud et Est ( bas et droite) */
  • define('S', 0);
  • define('E', 1);
  • define('N', 2);
  • define('O', 3);
  • require 'labyrinthe.class.php5';
  • require 'solveur.class.php5';
  • require 'genFusion.class.php5';
  • require 'genExplo.class.php5';
  • require 'solveDAG.class.php5';
  • ?>
  • <?php
  • if(isset($_POST['choix']))
  • {
  • if($_POST['taille'] < 1000)
  • $m = $n = intval($_POST['taille']);
  • elseif($_POST['taille'] == 1020){
  • $m = 10;
  • $n = 20;
  • }
  • elseif($_POST['taille'] == 2030){
  • $m = 30;
  • $n = 20;
  • }
  • else
  • die('TAILLE NON CORRECTE');
  • $w_case = intval($_POST['w_case']);
  • if($_POST['method'] == 'fusion')
  • $class = new genFusion($m, $n, $w_case);
  • elseif($_POST['method'] == 'explo')
  • $class = new genExplo($m, $n, $w_case);
  • $time_gene = microtime(1);
  • $laby = $class->generer();
  • if(empty($_POST['resoudre']))
  • {
  • if($_POST['affichage'] == 'html')
  • {
  • $class->laby2html($laby, $time_start);
  • }
  • else
  • $class->laby2png($laby);
  • }
  • else
  • {
  • $solve = new solveDAG($laby, $m, $n);
  • $time_res = microtime(1);
  • $solution = $solve->resoudre();
  • if($_POST['affichage'] == 'html')
  • {
  • $class->laby2html($laby, $solution, $time_gene, $time_res);
  • }
  • else
  • $class->laby2png($laby, $solution);
  • }
  • }
  • else
  • {
  • ?>
  • <form action="" method="post">
  • <fieldset>
  • <p><strong>Optimisation en cours</strong></p>
  • <legend>Methode de génération</legend>
  • <label for="fusion">Fusion</label><input type="radio" name="method" value="fusion" /><br />
  • <label for="explo">Exploration exaustive</label><input type="radio" name="method" value="explo" id="explo" />
  • </fieldset>
  • <fieldset>
  • <legend>Methode d'affichage</legend>
  • <label for="png">Image PNG</legend><input id="png" type="radio" name="affichage" value="png" /><br />
  • <label for="html">Tableau HTML (affiche le tps d'execution)</legend><input id="html" type="radio" name="affichage" value="html" />
  • </fieldset>
  • <fieldset>
  • <legend>Taille</legend>
  • <label for="10">10*10</label><input id="10" type="radio" name="taille" value="10" /><br />
  • <label for="20">20*20</label><input id="20" type="radio" name="taille" value="20" /><br />
  • <label for="40">40*40</label><input id="40" type="radio" name="taille" value="40" /><br />
  • <label for="45">45*45</label><input id="45" type="radio" name="taille" value="45" /><br />
  • <label for="1020">10*20</label><input id="1020" type="radio" name="taille" value="1020" /><br />
  • <label for="2030">30*20</label><input id="2030" type="radio" name="taille" value="2030" /><br />
  • </fieldset>
  • <fieldset>
  • <legend>Taille des cases</legend>
  • <select name="w_case">
  • <option value="10">10</option>
  • <option value="15">15</option>
  • <option value="20" selected="selected">20</option>
  • <option value="30">30</option>
  • <option value="50">50</option>
  • <option value="70">70</option>
  • </select>
  • </fieldset>
  • <fieldset>
  • <legend>Resolution</legend>
  • <label for="resoudre">Resoudre ?</label><input type="checkbox" name="resoudre" id="resoudre" checked="checked" /><br />
  • <label for="DAG">Methode DAG</label><input type="radio" name="methode_res" id="DAG" selected="selected" />
  • </fieldset>
  • <input type="submit" name="choix" value="Créer" />
  • </form>
  • <?php
  • }
  • ?>
<?php
/**
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

	set_time_limit(10);

	error_reporting(E_ALL);

	/*

	---- Générateur et Solveur de Labyrinthes ----

	

	fichier gen.fusion.class.php

	Genere un labyrinthe par fusion.

	CF : article sur wikipedia.

	

	*/

	

	/* Codage de class type : php5 */

	

	define('IDX', 3);



	/* Sud et Est ( bas et droite) */

	define('S', 0);

	define('E', 1);

	define('N', 2);

	define('O', 3);

	

	require 'labyrinthe.class.php5';

	require 'solveur.class.php5';

	

	require 'genFusion.class.php5';

	require 'genExplo.class.php5';

	

	require 'solveDAG.class.php5';

	

	

?>

<?php

if(isset($_POST['choix']))

{

	

	if($_POST['taille'] < 1000)

		$m = $n = intval($_POST['taille']);

	elseif($_POST['taille'] == 1020){

		$m = 10;

		$n = 20;

	}

	elseif($_POST['taille'] == 2030){

		$m = 30;

		$n = 20;

	}

	else

		die('TAILLE NON CORRECTE');

	

	$w_case = intval($_POST['w_case']);

	if($_POST['method'] == 'fusion')

		$class = new genFusion($m, $n, $w_case);

	elseif($_POST['method'] == 'explo')

		$class = new genExplo($m, $n, $w_case);

	

	$time_gene = microtime(1);

	$laby = $class->generer();

	if(empty($_POST['resoudre']))

	{

		if($_POST['affichage'] == 'html')

		{

			$class->laby2html($laby, $time_start);

		}

		else

			$class->laby2png($laby);

		

	}

	else

	{

		$solve = new solveDAG($laby, $m, $n);

		$time_res = microtime(1);

		$solution = $solve->resoudre();

		if($_POST['affichage'] == 'html')

		{

			$class->laby2html($laby, $solution, $time_gene, $time_res);

		}

		else

			$class->laby2png($laby, $solution);

	}

}

else

{

?>

<form action="" method="post">

<fieldset>

<p><strong>Optimisation en cours</strong></p>

<legend>Methode de génération</legend>

	<label for="fusion">Fusion</label><input type="radio" name="method" value="fusion" /><br />

	<label for="explo">Exploration exaustive</label><input type="radio" name="method" value="explo" id="explo" />

</fieldset>

<fieldset>

<legend>Methode d'affichage</legend>

	<label for="png">Image PNG</legend><input id="png" type="radio" name="affichage" value="png" /><br />

	<label for="html">Tableau HTML (affiche le tps d'execution)</legend><input id="html" type="radio" name="affichage" value="html" />

</fieldset>

<fieldset>

	<legend>Taille</legend>

	<label for="10">10*10</label><input id="10" type="radio" name="taille" value="10" /><br />

	<label for="20">20*20</label><input id="20" type="radio" name="taille" value="20" /><br />

	<label for="40">40*40</label><input id="40" type="radio" name="taille" value="40" /><br />

	<label for="45">45*45</label><input id="45" type="radio" name="taille" value="45" /><br />

	<label for="1020">10*20</label><input id="1020" type="radio" name="taille" value="1020" /><br />

	<label for="2030">30*20</label><input id="2030" type="radio" name="taille" value="2030" /><br />

</fieldset>

<fieldset>

	<legend>Taille des cases</legend>

	<select name="w_case">

		<option value="10">10</option>

		<option value="15">15</option>

		<option value="20" selected="selected">20</option>

		<option value="30">30</option>

		<option value="50">50</option>

		<option value="70">70</option>

	</select>

</fieldset>

<fieldset>

	<legend>Resolution</legend>

	<label for="resoudre">Resoudre ?</label><input type="checkbox" name="resoudre" id="resoudre" checked="checked" /><br />

	<label for="DAG">Methode DAG</label><input type="radio" name="methode_res" id="DAG" selected="selected" />

</fieldset>

<input type="submit" name="choix" value="Créer" />

</form>

<?php

}

?>


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

BRUTE FORCE PHP
FONCTION GET EN PHP : RECUPERER UNE PAGE SUR UN SITE DISTANT
Source avec Zip Source avec une capture CAPTCHA ANTI-BOT + FICHIER SON (WAV)

 Sources de la même categorie

Source avec Zip [POO] JEU KEMO par phpAnonyme
Source avec Zip Source avec une capture RUBIX CUBE par coucou747
Source avec Zip Source avec une capture BLOC NUKED KLAN WARROCK par warrock
Source avec Zip Source avec une capture UNE PARTIE DE SUDOKU ? CHOISSISSEZ LA DIMENSION, LE NIVEAU... par nlion
Source avec Zip RÉCUPERER LES INFOS D'UN SERVEUR DE JEUX (BEAUCOUP DE JEUX S... par yoman64

 Sources en rapport avec celle ci

Source avec Zip EXÉCUTER DES REQUETE STYLE SQL SUR UN ARRAY par prince418
Source avec une capture IMAGES GENETIQUES par coucou747
Source avec Zip Source avec une capture CLASSE LECTUREENLIGNE - POUR LES SITES DE SCANTRAD OU ... par tiger222
SUITE LOGIQUE par Palleas_44
Source avec une capture ECRIRE UN TEXTE EN CERCLE SUR UNE IMAGE par coucou747

Commentaires et avis

Commentaire de Evangun le 08/08/2008 20:05:05

Salut, est-ce que tu pourrais mettre une url de test ou un screenshot s'il te plait ? je sais, je suis fainéant ^^

Commentaire de jantosze le 09/08/2008 10:34:27

Salut,

Mêmes remarques que EVANGUN,

Commentaire de syllebreton le 11/08/2008 13:55:37

Bonjour

J'ai regardé juste très vite ton code sans me plonger dans les détails et j'ai pu remarquer une petite chose qui me déplait.

>> die('TAILLE NON CORRECTE');

Pourquoi ne pas utiliser les exceptions vu que tu utilises les classes et compagnie ?

Je regardes et test je te dis ce que j'en pense !

Commentaire de nax333 le 11/08/2008 23:11:39

a l'époque ou j'ai réalisé ce script je nutilisait pas les exeptions mais ce serai mieux c'est vrai.
pour un exemple : vosmaps.fr/labyrinthe

Commentaire de jantosze le 12/08/2008 19:40:55

Pas mal ...

Commentaire de vincseize le 13/08/2008 00:22:30

tres fort effectivement !!!!

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Bug EasyPHP d'urgence !!! [ par Clem ] Je pose ce message car il y a plus de chances ici que sur le forum easyphp.J'ai un bug avec easyphp. Vous avez certainemant remarqué qu'il y a un bout Bug EasyPHP d'urgence !!! [ par Clem ] Je pose ce message car il y a plus de chances ici que sur le forum easyphp.J'ai un bug avec easyphp. Vous avez certainemant remarqué qu'il y a un bout Récupérer le résultat d'une requète pour l'afficher dans un tableau??? [ par DJ'Ska & Dreams... ] Mon problème est le suivant: j'arrive à me connecter à ma base mySQL, lorsque j'execute une requète et que je souhaite afficher mes résultats, mes rés Afficher les données dans un tableau ? [ par inceV ] Contenant 2 lignes et 1 seule cellule :c'est à dire :- 1ère ligne où je veux afficher le titre de l'article par exemple,-2ème ligne où je veux affiche Tableau......Help [ par benett ] Bonjour à tous,comment peut-on cacher une cellule dans un tableau en cliquant sur un lien, et comment faire l'inverse également toujours via le même p filtrer un tableau URGENT [ par flyersy ] je récupère un résultat MySQL dans un tableau1 dont une des colonne contient un identifiant et une autre une chaîne "chem" de type 1,52,4,8. Je concat générer des miniatures avec gd 1.6 [ par vegetaline ] muhaha alors là c'est rigolo, un super défi pour les programmeurs fous!ok j'ai le code pour générer des miniatures grâce au php, mais ça marche qu'ave comment afficher sous forme de tableau [ par Xime ] bonjourvoila j'aimerais savoir comment afficher mes données que je recupere de ma base de données sous forme de tableau (la taille sera en fonction du tri tableau 2 dimensions [ par lebobby ] Bonjour je voudrais savoir comment je pourrais faire pour trier ce tableau :$tab[0]=array("i"=&gt;"23", "c" =&gt; "rge", "date" =&gt;'2002-08-03 12:00 tableau genere automatiquement avec mysql [ par maivg ] bonjoursvoila je cherche un script pour genere un tableau de 4 sur 5 avec ma base de donne qui ne contient qu'un seul champs.help helpmerci et A+


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales