[請益] 一段script
function is_correct_row($row,$sudoku){
for($x=0;$x<=8;$x++){
$row_temp[$x] = $sudoku[$row*9+$x];
}
return count(array_diff(array(1,2,3,4,5,6,7,8,9),$row_temp)) == 0;
}
function is_correct_col($col,$sudoku){
for($x=0;$x<=8;$x++){
$col_temp[$x] = $sudoku[$col+$x*9];
}
return count(array_diff(array(1,2,3,4,5,6,7,8,9),$col_temp)) == 0;
}
function is_correct_block($block,$sudoku){
for($x=0;$x<=8;$x++){
$block_temp[$x] =
$sudoku[floor($block/3)*27+$x%3+9*floor($x/3)+3*($block%3)];
}
return count(array_diff(array(1,2,3,4,5,6,7,8,9),$block_temp)) == 0;
}
function is_solved_sudoku($sudoku){
for($x=0;$x<=8;$x++){
if(!is_correct_block($x,$sudoku) or !is_correct_row($x,$sudoku) or
!is_correct_col($x,$sudoku)){
return false;
break;
}
}
return true;
}
--
在函數is_solved_sudoku($sudoku)裡的變數$x跟is_correct_block($x,$sudoku)
is_correct_row($x,$sudoku)
is_correct_col($x,$sudoku)
是互通的嗎?
如果不一樣,那總組合是不是有9*9*9*9種?
--
另外請問什麼是自由變數,什麼是局部變數,又什麼是閉包(closure)?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.44.149.115
→
08/09 13:52, , 1F
08/09 13:52, 1F
推
08/09 14:09, , 2F
08/09 14:09, 2F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章