rendered paste bodyfunction generate($removed) { $origin=array(); array_push($origin, array(1,2,3,4,5,6,7,8,9)); array_push($origin, array(4,5,6,7,8,9,1,2,3)); array_push($origin, array(7,8,9,1,2,3,4,5,6)); array_push($origin, array(2,3,4,5,6,7,8,9,1)); array_push($origin, array(5,6,7,8,9,1,2,3,4)); array_push($origin, array(8,9,1,2,3,4,5,6,7)); array_push($origin, array(3,4,5,6,7,8,9,1,2)); array_push($origin, array(6,7,8,9,1,2,3,4,5)); array_push($origin, array(9,1,2,3,4,5,6,7,8)); for($i=0; $i<rand(2,$removed); $i++) { switch(rand(1,2)) { case 1: $origin=switchRows($origin); break; case 2: $origin=switchGroups($origin); break; } } $solved=array(); foreach($origin as $row) { foreach($row as $cell) { array_push($solved, $cell); } } $unsolved=$solved; for($i=0; $i<$removed;) { $key=rand(0, 80); if($unsolved[$key]!=NULL) { $unsolved[$key]=NULL; $i++; } } return array(0, implode(",",$unsolved), implode(",",$solved));}function switchRows($origin) { switch(rand(1,3)) { case 1: $swapfirst=$origin[0]; $swapsecond=$origin[2]; $origin[0]=$swapsecond; $origin[2]=$swapfirst; break; case 2: $swapfirst=$origin[3]; $swapsecond=$origin[5]; $origin[3]=$swapsecond; $origin[5]=$swapfirst; break; case 3: $swapfirst=$origin[6]; $swapsecond=$origin[8]; $origin[6]=$swapsecond; $origin[8]=$swapfirst; break; } return $origin;}function switchGroups($origin) { switch(rand(1,3)) { case 1: $swap1=$origin[0]; $swap2=$origin[1]; $swap3=$origin[2]; $swap4=$origin[3]; $swap5=$origin[4]; $swap6=$origin[5]; $origin[0]=$swap4; $origin[1]=$swap5; $origin[2]=$swap6; $origin[3]=$swap1; $origin[4]=$swap2; $origin[5]=$swap3; break; case 2: $swap1=$origin[0]; $swap2=$origin[1]; $swap3=$origin[2]; $swap4=$origin[6]; $swap5=$origin[7]; $swap6=$origin[8]; $origin[0]=$swap4; $origin[1]=$swap5; $origin[2]=$swap6; $origin[6]=$swap1; $origin[7]=$swap2; $origin[8]=$swap3; break; case 3: $swap1=$origin[6]; $swap2=$origin[7]; $swap3=$origin[8]; $swap4=$origin[3]; $swap5=$origin[4]; $swap6=$origin[5]; $origin[6]=$swap4; $origin[7]=$swap5; $origin[8]=$swap6; $origin[3]=$swap1; $origin[4]=$swap2; $origin[5]=$swap3; break; } return $origin;}