<?php
$laenge = 4;
/*
Anlegen der wichtigen Felder.
*/
$rowplace = array();
for($i=0;$i<=$laenge-1;$i++) {
$rowplace[$i] = $laenge+1;
}
$co = array();
for($i=0;$i<=$laenge-1;$i++) {
$co[$i] = 0;
}
$diag = array();
for($i=0;$i<=2*$laenge-2;$i++) {
$diag[$i] = 0;
}
$codiag = array();
for($i=0;$i<=2*$laenge-2;$i++) {
$codiag[$i] = 0;
}
# Hier kommen die wichtigen Funktionen
function platziereKoenigin($i,$j) {
$rowplace[$i] = $j;
$co[$j] = 1;
$diag[$i+$j] = 1;
$codiag[$j-$i+($laenge-1)-1] = 1;
}
function loescheKoenigin($i,$j) {
$rowplace[$i] = $laenge+1;
$co[$j] = 0;
$diag[$i+$j] = 0;
$codiag[$j-$i+($laenge-1)-1] = 0;
}
function pruefeObSicher($i,$j) {
if (($rowplace[$i] == $laenge+1) && $co[$j] == 0 && $diag[$i+$j] == 0 && $codiag[$j-$i+($laenge-1)-1] == 0) {
return true;
} else {
return false;
}
}
function teste($i) {
if ($i == $laenge-1) {
return true;
} else {
$erfolg = false;
$j = 0;
while(($j <= $laenge-1) && !($erfolg)) {
echo "hallo";
if(pruefeObSicher($i,$j) == true) {
platziereKoenigin($i,$j);
$erfolg = teste($i+1);
if(!($erfolg)) {
loescheKoenigin($i,$j);
}
}
$j = $j + 1;
}
}
return $erfolg;
}
teste(0);
for($i=0;$i<=$laenge-1;$i++) {
echo $rowplace[$i]." ";
}
echo "<p>";
for($j=0;$j<=$laenge-1;$j++) {
echo $co[$j]." ";
}
?>