作者serveto (yingshow)
看板PHP
标题[请益] 一段script
时间Mon Aug 9 12:29:10 2010
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
1F:→ ileadu:我猜 闭包应该是指{} 所以开包是?真是有趣的翻译 08/09 13:52
2F:推 bobju:以上的 $x 在各函式里都是局部变数, 各函式都是独立的. 08/09 14:09