Ocho reinas en Perl
$N = 8; for ($i = 0; $i < $N; $i++) { for ($j = 0; $j < $N; $j++) { $tablero->[$i][$j] = "X"; } } &Ajedrez (0); &imprimir (); sub Ajedrez { local ($fila) = @_; local ($i, $j); local ($linea) = 0; if ($fila == $N) { return (1); } while ($linea < $N) { if (&probar ($fila, $linea)) { $tablero->[$fila][$linea] = "Q"; if (&Ajedrez ($fila + 1)) { return 1; } $tablero->[$fila][$linea] = "X"} $linea++; } return (0); } sub probar { local ($fila, $linea) = @_; local ($r, $l); $r = $fila; $l = $linea; while ($r >= 0 && $l >= 0) { if ($tablero->[$r][$l] eq "Q") { return (0); } $r--; $l--; } $r = $fila; $l = $linea; while ($r >= 0 && $l < $N) { if ($tablero->[$r][$l] eq "Q") { return (0); } $r--; $l++; } $r = $fila; $l = $linea; while ($r >= 0) { if ($tablero->[$r][$l] eq "Q") { return (0); } $r--; } return (1); } sub imprimir { local ($i, $j); for ($i = 0; $i < $N; $i++) { print "\n\t\t\t"; for ($j = 0; $j < $N; $j++) { print " $tablero->[$i][$j] "; } } }
Quizá te interese :
Juego del Gato en C. /*Juego de Gato Heurístico Autor:Jesús M.Olivares Ceja Desarrollad ...
#include #include double f (double x) { return (x * x) - 1; } double df (double x ...
Para concatener arrays tenemos el operador ',' coma y evita utilizar la funcion pop, añadiendo t ...








