
29/02/2008, 12:08
|
| | Fecha de Ingreso: febrero-2008
Mensajes: 2
Antigüedad: 17 años, 2 meses Puntos: 0 | |
problemas al pasar de PHP a ASP 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>
Última edición por orochimaru15081986; 03/03/2008 a las 12:11
Razón: PARA HACER UNOS CAMBIOS EN EL MENSAJE ORIGINAL Y EXPLICAR DE FORMA MAS CLARA EN QUE PUNTOS EXACTAMENTE QUIERO QUE ME AYUDEN
|