数独游戏下载27***83**/3*1*79**8/*****4*7*/4***9**8*/9*54*7

- 蓝火柴518
最近25个记录
最近50个记录
最近80个记录
最近100个记录
最近150个记录
最近200个记录
最近250个记录1990 年1991 年1992 年1993 年1994 年1995 年1996 年1997 年1998 年1999 年2000 年2001 年2002 年2003 年2004 年2005 年2006 年2007 年2008 年2009 年2010 年2011 年2012 年2013 年2014 年
一码二码三码四码五码六码特码
特春夏秋冬春夏秋冬春夏秋冬春夏秋冬春夏秋冬春夏秋冬春夏秋冬一
特春夏秋冬
2511秋1111冬1夏111夏1111秋1春1111夏11秋
122秋222秋12夏22212冬2夏1212秋22夏22秋
31331冬春312春1333夏313夏23231冬313冬冬
32442冬1夏23春2444夏42春1343夏21424冬冬
35春53121秋4135冬春15312秋5春13253秋1春
2916秋23夏15春461春264231冬124冬春412秋
272夏13412冬1夏72春375春421春351春523夏
233夏24春231218冬春4861夏32146冬16秋4夏
384夏35134冬3夏91159冬214冬春5712夏15夏
2451秋6春4514110冬26秋13夏511夏823夏26秋
4762秋7春5625211冬37秋2春16221秋341秋7秋
773秋8春6736夏121春81312秋332秋4521冬秋
8春41917秋47夏1321夏24春31443秋5632冬春
481夏21028秋58114冬2夏351夏255夏167夏31夏
392夏3113夏1692秋131秋6春1366夏27春142夏
83夏412春127103秋24夏1712秋771秋8125冬夏
33415冬春238春4135夏282夏18821冬23秋1冬
1852秋1春3491夏24春1393夏2993秋1341冬秋
25631冬14秋1021秋51夏410春131010夏124夏21冬
42春421251冬321冬21秋11春2411111秋3513冬春
1915秋2春621春321春21121夏51212夏14624冬秋
18春613春732春4321夏2132夏6131312冬735冬春
31172冬1夏43春54321秋143夏7141423冬846冬冬
332夏312夏54春65432秋15春18151534冬95秋1夏
31314冬316冬1夏6543秋1612秋16164秋11061冬冬
特一码二码三码四码五码六码特码killer数独解题程序
好多天才把这种killer数独的程序写完,可一试傻了,比牛还慢有一题用了十多分钟
先存上再说,有空再改
function getplace($i)
&$l = strlen($GLOBALS['initstr'])-1;
&$a = (int)($i/$l)+1;
&$b = $i%$l+1;
&return "($a,$b)";
function setnum(&$du,$i,$n,&$killer)
&//$du 一个完整的盘
&//$i& 放的位置
&//$n& 放的数字
&//echo "Set $i -$n-";
&if($n&=0)
&$du[$i]=''.$n;
&foreach($rule as $rid =&
$key)if(in_array($i,$key))
&&foreach($key as
$p)if($du[$p]{0} === '0')
&&&$du[$p]=str_replace($n,'',$du[$p]);
&&&if(strlen($du[$p])==1)
&&&&if($GLOBALS['debug'])echo
"ERROR Set ".getplace($i)." $n $t -&".$du[$p]."\n";
&&&&return
function strlencmp($a,$b)
&if (strlen($a) == strlen($b)) {
&&& return
(strlen($a) & strlen($b)) ? -1 : 1;
function isfine($arrdu)
.........}
function outit($arrdu)
function onlyone(&$arrdu,&$killer)
&........}
function ponlyone(&$arrdu,&$killer)
&........}
function onlytwo(&$arrdu,&$killer)
function ponlytwo(&$arrdu,&$killer)
function rect(&$arrdu,&$killer)
..................&
function trydo($au,$killer)
function init(&$arrdu,$dushu,$initstr)
&for($i=0;$i&strlen($dushu);$i++)
&&$arrdu[$i]=$
&for($i=0;$i&strlen($dushu);$i++)
&&if($dushu{$i} !== '0')
&&&setnum($arrdu,$i,$dushu{$i},$killer);
function myrule45(&$arrdu,&$killer,$rulearr)
&$ret = 0;
&//$rulearr 是规则号的集合
&$sum = count($rulearr)*45;
&$trule = array();
&foreach($rulearr as $rt)foreach($rule[$rt] as
$v)$trule[$v]=$v;
&foreach($killer as $ikey2 =& $kl)
&if(myinarray($kl[0],$trule))
&&foreach($kl[0] as
$v)unset($trule[$v]);&//剩下的格式
$kl[1];&&&&&&&//剩下的数字和
&}&&//Ra(rule) -
&//差一个元素的
&if(count($trule) == 1)
&&$b = current($trule);
&&foreach($killer as $mykey =&
$ka)if(in_array($b,$ka[0]))
&&//Belong to $mykey
array($trule,$sum);
&&$tmpa = array();
&&foreach($ka[0] as $aka)if($aka
!= $b)$tmpa[]=$
&&$ar2 = array($tmpa,$ka[1] -
&&if($GLOBALS['debug'])echo
"#Split recOut One $b".getplace($b)." from $mykey
(".implode(':',$ka[0]).") \n";
&&unset($killer[$mykey]);
&&$killer[] = $ar1;
&&$killer[] = $ar2;
&}else if(count($trule)&1)
&&//差多个元素
&&$crn = count($rn);
&&//这些元素是否在同一个面板里
&&$tkiller = $
&&foreach($tkiller as $mykey
=& $kn)if( count($kn[0])& $crn &&
myinarray($trule,$kn[0]) )
&&&$ar1a =
&&&$ar2a =
&&&foreach($kn[0]
&&&&if(in_array($tp,$trule))
&&&&&$ar1a[]=
&&&&&$ar2a[]=
array($ar1a,$sum);
array($ar2a,$kn[1] - $sum);
&&&if($GLOBALS['debug'])echo
"#Split recOut Muti $crn from
$mykey(".implode(':',$kn[0]).")=&(".implode(":",$ap1[0])."),(".implode(":",$ap2[0]).")
&&&unset($killer[$mykey]);
&&&$killer[] =
&&&$killer[] =
&&&$ret++;
&}&//end elseif
$&//返回处理的次数
function myrule(&$arrdu,&$killer)
//print_r($arrdu);
&//剪开设置单独数的单元
&while($max)
&&$tKiller = $
&&foreach($tKiller as $i =&
$ka)if(count($ka[0])&1)
&&&sort($ka[0]);&&//-------------------------
&&&foreach($ka[0]
as $delid =& $kn)if($arrdu[$kn]{0} !== '0')
= array(array($kn),$arrdu[$kn]);
&&&&//print_r($ar1);
&&&&$tmpar
= array();
&&&&foreach($ka[0]
as $km)if($kn != $km)$tmpar[] = $
= array($tmpar,$ka[1] - $arrdu[$kn]);
&&&&if($GLOBALS['debug'])
"@Split R$i (".implode(':',$killer[$i][0]).") $kn".getplace($kn)."
&&&&unset($killer[$i]);
&&&&$killer[]
&&&&$killer[]
&&//用45法则
&&//对每个规则
45法,调用myrule45()
&&$ret = 0;
&&for($i=0;$i & 27; $i++)$ret
+= myrule45($arrdu,$killer,array($i));
&&for($i=0;$i & 8 ; $i++)$ret
+= myrule45($arrdu,$killer,array($i,$i+1));
&&for($i=9;$i & 17; $i++)$ret
+= myrule45($arrdu,$killer,array($i,$i+1));
&&for($i=0;$i & 7 ; $i++)$ret
+= myrule45($arrdu,$killer,array($i,$i+1,$i+2));
&&for($i=9;$i & 16; $i++)$ret
+= myrule45($arrdu,$killer,array($i,$i+1,$i+2));
&&foreach(array(array(18,19),array(19,20),array(21,22),array(22,23),array(24,25),array(25,26),
array(18,21),array(19,22),array(20,23),array(21,24),array(22,25),array(23,26),
array(18,19,22),array(19,20,22),array(18,21,22),array(20,22,23),
array(24,25,22),array(25,26,22),array(21,24,22),array(24,25,22),
array(18,19,21),array(19,20,23),array(23,26,25),array(21,24,25),
array(0,1,2,3),array(5,6,7,8),array(9,10,11,12),array(14,15,16,17),
array(18,19,20,22),array(20,23,26,22),array(26,25,24,22),array(24,21,18,22),&//T
array(18,19,21,22),array(20,23,19,22),array(26,25,23,22),array(24,21,25,22),&//O
array(18,19,20,23),array(20,23,26,25),array(26,25,24,21),array(24,21,18,19),&//L
array(18,19,20,21),array(20,23,26,19),array(26,25,24,23),array(24,21,18,25),&//rev
array(0,1,2,3),array(5,6,7,8),array(9,10,11,12),array(14,15,16,17)
&//4横 4竖
as $i)$ret += myrule45($arrdu,$killer,$i);
&&if($ret & 0)
&&&//if($GLOBALS['debug'])echo
"#Split X total:$ret\n";
&//echo "...";
&foreach($killer as $i =&
$ka)if(count($ka[0])==2)
&&sort($ka);
&&$t1 = $t2 =
$arrdu[$ka[0][0]];
&&$p1 = $p2 =
$arrdu[$ka[0][1]];
&&for($j=1;$j&count($t1);$j++)
$ka[1]-$t1{$j};
&&&if(strpos($k,$p1)
=== false)
&&&&//A中一数对应数在B中不存在
= str_replace($t1{$j},'',$t2);
&&if($t2 != $t1)
&&&$arrdu[$ka[0][0]]
&&&//if($GLOBALS['debug'])echo
"smalller A ".$ka[0][0]."\n";
&&for($j=1;$j&count($p1);$j++)
$ka[1]-$p1{$j};
&&&if(strpos($k,$t2)
=== false)
&&&&//A中一数对应数在B中不存在
= str_replace($p1{$j},'',$p2);
&&if($p2 != $p1)
&&&$arrdu[$ka[0][1]]
&&&//if($GLOBALS['debug'])echo
"smalller B ".$ka[0][1]."\n";
&foreach($tKiller as $i =& $ka)if(count($ka[0])
&&sort($ka[0]);
&&if($arrdu[$ka[0][0]]{0} ===
"-----------------";
&&&if($GLOBALS['debug'])echo
"!Rule set ".$ka[0][0].getplace($ka[0][0])." $ka[1]\n";
&&&if(!setnum($arrdu,$ka[0][0],$ka[1],$killer))
&&&&//echo
"----------------";
&&&&return
&//outit($arrdu);&
//print_r($arrdu);&
function myinarray($needle,$a)
&foreach($needle as $key)
&&if(!in_array($key,$a))return
function getnum($n,$c)
&static $numarr =
array(&&// 2个数和是3可由
&2 =& array(
&&&&3=&array(1,2),
&&&&4=&array(1,3),
&&&&5=&array(1,2,3,4),
&&&&6=&array(1,2,4,5),
&&&&7=&array(1,2,3,4,5,6),
&&&&8=&array(1,2,3,5,6,7),
&&&&9=&array(1,2,3,4,5,6,7,8),
&&&&11=&array(2,3,4,5,6,7,8,9),
&&&&12=&array(3,4,5,7,8,9),
&&&&13=&array(4,5,6,7,8,9),
&&&&14=&array(5,6,8,9),
&&&&15=&array(6,7,8,9),
&&&&16=&array(7,9),
&&&&17=&array(8,9)),
&3 =& array(
&&&&6=&array(1,2,3),
&&&&7=&array(1,2,4),
&&&&8=&array(1,2,3,4,5),
&&&&9=&array(1,2,3,4,5,6),
&&&&10=&array(1,2,3,4,5,6,7),
&&&&11=&array(1,2,3,4,5,6,7,8),
&&&&19=&array(2,3,4,5,6,7,8,9),
&&&&20=&array(3,4,5,6,7,8,9),
&&&&21=&array(4,5,6,7,8,9),
&&&&22=&array(5,6,7,8,9),
&&&&23=&array(6,8,9),
&&&&24=&array(7,8,9)),
&4 =& array (
&&&&10=&array(1,2,3,4),
&&&&11=&array(1,2,3,5),
&&&&12=&array(1,2,3,4,5,6),
&&&&13=&array(1,2,3,4,5,6,7),
&&&&14=&array(1,2,3,4,5,6,7,8),
&&&&26=&array(2,3,4,5,6,7,8,9),
&&&&27=&array(3,4,5,6,7,8,9),
&&&&28=&array(4,5,6,7,8,9),
&&&&29=&array(5,7,8,9),
&&&&30=&array(6,7,8,9)),
&5 =& array (
&&&&15=&array(1,2,3,4,5),
&&&&16=&array(1,2,3,4,6),
&&&&17=&array(1,2,3,4,5,6,7),
&&&&18=&array(1,2,3,4,5,6,7,8),
&&&&32=&array(2,3,4,5,6,7,8,9),
&&&&33=&array(3,4,5,6,7,8,9),
&&&&34=&array(4,6,7,8,9),
&&&&35=&array(5,6,7,8,9)),
&6 =& array (
&&&&21=&array(1,2,3,4,5,6),
&&&&22=&array(1,2,3,4,5,7),
&&&&23=&array(1,2,3,4,5,6,7,8),
&&&&37=&array(2,3,4,5,6,7,8,9),
&&&&38=&array(3,5,6,7,8,9),
&&&&39=&array(4,5,6,7,8,9)),
&7 =& array (
&&&&28=&array(1,2,3,4,5,6,7),
&&&&29=&array(1,2,3,4,5,6,8),
&&&&41=&array(2,4,5,6,7,8,9),
&&&&42=&array(3,4,5,6,7,8,9)),
&8 =& array (
&&&&36=&array(1,2,3,4,5,6,7,8),
&&&&37=&array(1,2,3,4,5,6,7,9),
&&&&38=&array(1,2,3,4,5,6,8,9),
&&&&39=&array(1,2,3,4,5,7,8,9),
&&&&40=&array(1,2,3,4,6,7,8,9),
&&&&41=&array(1,2,3,5,6,7,8,9),
&&&&42=&array(1,2,4,5,6,7,8,9),
&&&&43=&array(1,3,4,5,6,7,8,9),
&&&&44=&array(2,3,4,5,6,7,8,9))
&if($c == 1)return array($n =& $n);
&if(isset($numarr[$c][$n]))return
$numarr[$c][$n];
&else return range(1,9);
function myinit(&$arrdu,$killer)
&foreach($killer as $i =& $k)
&if(count($k[0]) & 1)
&foreach($GLOBALS['rule'] as $r)
&if(myinarray($k[0],$r))
'0'.implode('',getnum($k[1],count($k[0])));
&&foreach($k[0] as $i)$arrdu[$i]
&foreach($killer as $i =& $k)
&if(count($k[0]) ==1)
&&setnum($arrdu,$k[0][0],$k[1],$killer);
//print_r(getnum(28,4));
//include("rule.php");
$rule = array(
array(0,1,2,3,4,5,6,7,8),
array(9,10,11,12,13,14,15,16,17),
array(18,19,20,21,22,23,24,25,26),
array(27,28,29,30,31,32,33,34,35),
array(36,37,38,39,40,41,42,43,44),
array(45,46,47,48,49,50,51,52,53),
array(54,55,56,57,58,59,60,61,62),
array(63,64,65,66,67,68,69,70,71),
array(72,73,74,75,76,77,78,79,80),
array(0,9,18,27,36,45,54,63,72),
array(1,10,19,28,37,46,55,64,73),
array(2,11,20,29,38,47,56,65,74),
array(3,12,21,30,39,48,57,66,75),
array(4,13,22,31,40,49,58,67,76),
array(5,14,23,32,41,50,59,68,77),
array(6,15,24,33,42,51,60,69,78),
array(7,16,25,34,43,52,61,70,79),
array(8,17,26,35,44,53,62,71,80),
array(0,1,2,9,10,11,18,19,20),
array(3,4,5,12,13,14,21,22,23),
array(6,7,8,15,16,17,24,25,26),
array(27,28,29,36,37,38,45,46,47),
array(30,31,32,39,40,41,48,49,50),
array(33,34,35,42,43,44,51,52,53),
array(54,55,56,63,64,65,72,73,74),
array(57,58,59,66,67,68,75,76,77),
array(60,61,62,69,70,71,78,79,80)
$oldkiller = "
11,12:6;13,14:16;15,16:12;17,27,37,47,57:21;18,19:5;
21,22,32:23;23,24,33:14;25,26,36:13;28,29:9;
31,41:9;34,35:4;38,48,58:17;39,49:15;
42,43:10;44:3;45,55:7;46,56,66:14;
51,61:14;52,62,72:6;53,54:14;59,67,68,69,78:31;
63,64,65:16;71,81,91:13;73,83,93:16;74:4;75,76,77:22;79:5;
82,92:15;84,85,86,87:16;88:4;89,99:3;94,95,96:13;97,98:15;
11,21:3;12,13,14,15:28;16,26:7;17,27:9;18,19,28:8;
22:6;23,33:10;24,25:14;29,39:17;
31,32,41:16;34,44:6;35:6;36,37:5;38,48,49:15;
42,43:12;45,46,47:18;51,52,62:13;53,54,64:11;
55,56,66:8;57,58,59,68,69:31;61,71:13;
63,73,74,83:23;65,75,85,84,95:17;67,77:13;
72,82:6;76,86:13;78,79,89:17;81,91:14;87,88:8;
92,93,94:17;96,97,98,99:21;
$oldkiller = "
11,12:8;13,21,22,23,24,25:38;14,15:11;16,17,26,27:20;18,19:7;
31,32,33,34:13;35,45,46:15;36,37:11;38,39:12;
41,42:6;43,44,53:20;47,57:8;48,58,68:16;49,59:7;
51,52:13;54,63,64:13;55,56:13;
61,71,81,91:23;62,72,82:14;65,75:10;66,67,76:12;69,79:14;
73,83:11;74:1;77,78,86,87:19;
84,85:6;88,89,99:23;
92,93,94,95,96:31;97,98:4;
$arrdu = array();
$killer = array();
$str = explode(';',$oldkiller);
$f = array_fill(0,80,0);
$s = 45*9;
foreach($str as $a)
if(strlen(trim($a))&=3)
&$b = explode(':',trim($a));
&$c = array();
&foreach(explode(',',$b[0]) as $d)
&&$c[] = $k = ((int)($d/10)-1)*9
+ $d%10-1;
&&if($k &80)echo "$d &
&&$f[$k]=1;
&$killer[] = array($c,$b[1]);
&$s-=$b[1];
if(count($f) != 81 || array_sum($f) != 81 || $s != 0)
&echo "输入数校验错\n";
&echo "$oldkiller\n";
$initstr = "";
$dushu = str_repeat('0',81);
init($arrdu,str_repeat('0',81),$initstr);
myinit($arrdu,$killer);
trydo($arrdu,$killer);
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。加载中,请稍候...
加载中,请稍候...
京 东 价:
¥50.10 [8.3折]
[定价:¥61.00
温馨提示:
其它类似商品
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
O限氮1:全球最受g迎的底忠嬷沁[
¥50.10 [8.3折]
查找同类商品
嫌市面上的氮握{幔磕悄阋欢ㄒ硖稹O限氮」!由最受氮玩家好u的P.CREATION家提供大份量100}氮,包括:氮、拼D氮、彩色氮,以及湫碌摹覆坏忍氮」。挑鹦院腿の缎约颖叮】全球最IN的活化X力益智[虬桑
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
正在加载中,请稍候...
七日畅销榜
新书热卖榜

我要回帖

更多关于 九宫数独 的文章

 

随机推荐