hola atodos/as
puse este tema dentro de otro tema ya creado sin darme cuenta en vez de crear uno nuevo, lo siento es que soy nuevo jeje
bueno el problema esta en que tengo que pasar un programa de un sudoku hecho en php a asp y lo he intentado pero no me funciona correctamente,ademas estoy iniciandome en esto del asp y el php y no lo domino del todo.
BUENO PARA QUE ME ENTENDAIS Y NO HAYA CONFUSIONES ,QUERIA QUE ME AYUDARAN CON LA FUNCION "RESUELVE SUDOKU" DEL CODIGO DE ABAJO EN PHP PARA PASARLA A ASP YA QUE LO HE INTENTADO YA Y NO ME FUNCIONA. GRACIAS
si pudierais ayudarme os lo agradeceria, aqui esta el codigo:
<html>
<head>
<title>DSM - Sudoku</title>
</head>
<body>
<?php
$_POST['tablero']=$_POST['sudoku'];
function visualizar_form() {
echo '<form action="sudoku.php" method="POST">';
echo '<table>';
for($i=0;$i<9;$i++) {
echo "<tr>";
for($j=0;$j<9;$j++) {
echo "<td>";
echo "<input type='text' size='1' maxlength='1' name='sudoku[".$i."][".$j."]' value='".$_POST['sudoku'][$i][$j]."' />";
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
echo '<input type="submit" name="boton" value="Resolver" />';
echo '<input type="submit" name="boton" value="Limpiar" />';
echo '</form>';
}
function imprimir_sudoku() {
for($x=0;$x<9;$x++) {
for($y=0;$y<9;$y++) {
echo $_POST['sudoku'][$x][$y];
}
echo "<br />";
}
echo "<br />";
}
function inicializar($x,$y) {
$a=$x;$b=$y+1;
while($a<9) {
if($_POST['tablero'][$a][$b]==0) $_POST['sudoku'][$a][$b]=0;
$b++;
if ($b>8) { $b=0;$a++; }
}
}
function comprobar($x,$y) {
$correcto=1;
for($a=1;$a<=9 && $correcto;$a++) {
$contador=0;
for($b=0;$b<9 && $correcto;$b++) {
if($_POST['sudoku'][$x][$b]!=0)
if($_POST['sudoku'][$x][$b]==$a)
$contador++;
}
if ($contador>1) $correcto=0;
}
$retorno=$correcto;
if($correcto) {
for($a=1;$a<=9 && $correcto;$a++) {
$contador=0;
for($b=0;$b<9 && $correcto;$b++) {
if($_POST['sudoku'][$b][$y]!=0)
if($_POST['sudoku'][$b][$y]==$a)
$contador++;
}
if($contador>1) $correcto=0;
}
$retorno=$correcto;
}
if($correcto) {
for($a=1;$a<=9 && $correcto;$a++) {
$x2=($x-($x % 3));
$y2=($y-($y % 3));
$contador=0;
for($b=$x2;$b<$x2+3;$b++) {
for($c=$y2;$c<$y2+3;$c++) {
if($_POST['sudoku'][$b][$c]!=0)
if($_POST['sudoku'][$b][$c]==$a)
$contador++;
}
}
if($contador>1) $correcto=0;
}
$retorno=$correcto;
}
return $retorno;
}
function resolver_sudoku($x,$y) {
if ($y>8) { $y=0;$x++; }
while($x<9 && $_POST['tablero'][$x][$y]!=0) {
$y++;
if ($y>8) { $y=0;$x++; }
}
if($x==9) {
if(!comprobar(8, 8)) {
echo "Sin solucion<br />";
}
visualizar_form();
$_POST['sudoku']="";$_POST['tablero']="";
exit();
} else {
for($a=1;$a<=9;$a++) {
inicializar($x,$y);
$_POST['sudoku'][$x][$y]=$a;
$correcto=comprobar($x,$y);
if($correcto) {
resolver_sudoku($x,$y+1);
} else {
$_POST['sudoku'][$x][$y]=0;
}
}
}
}
?>
<?php
$correcto=1;
for($x=0;$x<9 && $correcto;$x++)
for($y=0;$y<9 && $correcto;$y++) {
$correcto=comprobar($x,$y);
}
if($_POST['boton']=="Resolver") {
if($correcto)
resolver_sudoku(0,0);
else
echo "Datos de entrada incorrectos";
}
if($_POST['boton']=="Limpiar") {
unset($_POST['sudoku']);
unset($_POST['tablero']);
}
visualizar_form();
?>
</body>
</html>