";
$cb[$first_x][$first_y] = true;
echo isQueen($first_x, $first_y);
while(1) {
$last_x = rand(0,7);
$last_y = rand(0,7);
echo "Wanna place a queen at $last_x x $last_y
";
if(noCrash($last_x, $last_y)) { $cb[$last_x][$last_y] = true; }
$i++;
if($i == $queens) { echo "Done"; break; }
}
function noCrash($x, $y) {
###########################################################################
echo "Starting checking if any queens are on the same - row as ".$x."x".$y."
";
$go_x = 0;
while($go_x <= 7) {
if(isQueen($x, $go_x)) { return false; }
else { $go_x++; }
}
###########################################################################
echo "Starting checking if any queens are on the same | row as ".$x."x".$y."
";
$go_y = 0;
while($go_y <= 7) {
if(isQueen($x, $go_y)) { return false; }
else { $go_y++; }
}
###########################################################################
echo "Starting checking if any queens are on the same \ row as ".$x."x".$y."
";
$go_y = $y; $go_x = $x;
if($x < $y) { $go_y -= $go_x; $go_x = 0; }
elseif($y > $x) { $go_x -= $go_y; $go_y = 0; }
elseif($x == $y) { $go_x = 0; $go_y = 0; }
while($go_x <= 7 && $go_y <= 7) {
if(isQueen($go_x, $go_y)) { return false; }
else { $go_x++; $go_y++; }
}
###########################################################################
echo "Starting checking if any queens are on the same / row as ".$x."x".$y."
";
$go_y = $y; $go_x = $x;
if($x < $y) { $go_y -= $go_x; $go_x = 0; }
elseif($y > $x) { $go_x -= $go_y; $go_y = 7; }
elseif($x == $y) { $go_x = 0; $go_y = 7; }
while($go_x <= 7 && $go_y >= 0) {
if(isQueen($go_x, $go_y)) { return false; }
else { $go_x++; $go_y--; }
}
###########################################################################
return true;
}
function isQueen($x,$y) { if(($cb[$x][$y]?1:0) == 1) { echo "TRUE"; return true; } else { return false; } }
?>
| "; $x++; } echo ""; $y++; } ?> |