예제 #1
0
function solve()
{
    $grid = makeEmptyGrid();
    $list = [0, 1, 2, 3, 4, 5, 6, 7];
    $tries = 0;
    $solutions = 0;
    foreach (permutations($list) as $permutation) {
        $queens = [];
        for ($i = 0; $i < 8; $i++) {
            $queens[] = [$i, $permutation[$i]];
        }
        if (check($queens, $grid)) {
            printSolution($queens);
            $solutions++;
        } else {
            $tries++;
        }
    }
    //print_r($solutions);
    echo 'permutations tried: ' . $tries . '. solutions found: ' . $solutions;
}
예제 #2
0
 public function test_check()
 {
     $grid = makeEmptyGrid();
     $this->assertEquals(false, check([[0, 4], [1, 3], [2, 5], [3, 2], [4, 1], [5, 6], [6, 0], [7, 7]], $grid));
     $this->assertEquals(true, check([[0, 2], [1, 7], [2, 3], [3, 6], [4, 0], [5, 5], [6, 1], [7, 4]], $grid));
 }