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; }
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)); }