Robot pour le web : sudoku version imprimable (thème de linux mag)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 511 fois - Téléchargée 30 fois

Contenu du snippet

Cette source visite 12 pages de chez http://www.websudoku.com, et affiche 12 sudoku par page pour pouvoir imprimer en ayant une taille corecte, mais garder quand même plusieurs sudoku par pages (sur le site de websudoku, on ne peut en imprimer qu'un par page...)

Dans le magazine linux-mag, ils parlaient de robots pour le web, ils expliquaient comment en faire, en perl et en php, j'ai cherché une application, j'ai trouvé...

ça sert principalement à ne pas avoir besoin de mettre en forme ses sudokus pour les imprimer...

Source / Exemple :


<html>
<head>
<style>
	.sudoku{
		display: table-cell;
		width:30%;
		height:20%;
	}
	.sudoku table{
		text-align:center;
		empty-cells: show;
		border-collapse: collapse;
	}
	.sudoku table tr td{
		width:25px;
		height:25px;
		border:1px solid #DDD;
	}
	.sudoku table tr td.left{
		border-left:1px solid #000 !important;
	}
	.sudoku table tr td.lefttop{
		border-left:1px solid #000 !important;
		border-top:1px solid #000 !important;
	}
	.sudoku table tr td.leftbottom{
		border-left:1px solid #000 !important;
		border-bottom:1px solid #000 !important;
	}
	.sudoku table tr td.right{
		border-right:1px solid #000 !important;
	}
	.sudoku table tr td.righttop{
		border-right:1px solid #000 !important;
		border-top:1px solid #000 !important;
	}
	.sudoku table tr td.rightbottom{
		border-right:1px solid #000 !important;
		border-bottom:1px solid #000 !important;
	}
	.sudoku table tr td.top{
		border-top:1px solid #000 !important;
	}
	.sudoku table tr td.bottom{
		border-bottom:1px solid #000 !important;
	}
</style>
</head>
<body>
<?php
function echolevel($level){
	if ($level=='1')
		echo 'facile';
	else if ($level=='2')
		echo 'moyen';
	else if ($level=='3')
		echo 'difficile';
	else
		echo 'démoniaque';
}
function aff_sudoku($level){
	echo '<div class="sudoku">';
	/*
		echolevel($level);

  • /
echo '<table>'; $a1=file_get_contents('http://show.websudoku.com/?level='.$level); $a=explode('<TABLE CELLSPACING=0 CLASS=t>', $a1); $a=explode('</TABLE>',$a[1]); $a=explode('</TR>',$a[0]); foreach ($a as $y=>$b){ if ($y<9){ echo '<tr>'; $c=explode('<TD', $b); foreach ($c as $x1=>$d){ if ($x1>0){ $x=$x1-1; if (substr_count('CLASS=s0', $d)) $v=''; else{ preg_match('/VALUE="([1-9])"/', $d, $v); $v=$v[1]; } if ($x%3==0) $style='left'; else if ($x%3==2) $style='right'; else $style=''; if ($y%3==0) $style.='top'; else if ($y%3==2) $style.='bottom'; echo '<td class="',$style,'">',$v,'</td>'; } } echo '</tr>'; } } preg_match('/Puzzle ([0-9,]+) /', $a1, $num); echo '</table> Sudoku n° : ',$num[1], '</div>'; } $level=isset($_GET['level'])?$_GET['level']:'4'; echo '<table> <tr><th colspan="3">'; echolevel($level); echo '</th></tr>'; for ($x=0;$x<4;$x++){ echo '<tr>'; for ($y=0;$y<3;$y++){ echo '<td>'; aff_sudoku($level); echo '</td>'; } echo '</tr>'; } echo '</table>'; ?> <div id="noprint"> <a href="?level=1">facile</a> | <a href="?level=2">moyen</a> | <a href="?level=3">difficile</a> | <a href="?level=4">démoniaque</a> | <a href="#" onclick="document.getElementById('noprint').style.display='none';">imprimer</a> </div> </body> </html>

Conclusion :


un aperçu :

http://coucou747.hopto.org/php_apercus/sudoku_print.php

A voir également

Ajouter un commentaire Commentaires
Messages postés
12
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
24 janvier 2008

Super !!
ca marche
merci
Messages postés
173
Date d'inscription
jeudi 20 décembre 2001
Statut
Membre
Dernière intervention
22 août 2008

Remplace la ligne 82 par ceci:
$v= isset ($v[1]) ? $v[1]: ' ';
et ca fonctionne nickel
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
40
effectivement, je ne l'ai pas testé en mode strict... désolé, je le referais bientôt promis :)
Messages postés
12
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
24 janvier 2008

Bonjour,
lorsque je lance la page il m'affiche le résultat mais avant chaque rangée de trois il me met + de 50 lignes comme ceci:

Notice: Undefined offset: 1 in d:\program files\easyphp1.8\www\soduko\soduko.php on line 82

J'ai mis la page dans le repertooire www d'easyphp
merci de votre aide
Messages postés
153
Date d'inscription
mardi 17 août 2004
Statut
Membre
Dernière intervention
23 décembre 2010

euhhhh hum j'ai toujours le bug sur la largeur de colonne: si pas de chiffres, trop petite largeur, désolé ....
Afficher les 11 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.