ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:16.69KB ,
资源ID:13561495      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13561495.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数独游戏程序.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数独游戏程序.docx

1、数独游戏程序%数独游戏程序,可以破解绝大部分数独题。%用法:将所有文件复制到MATLAB工作目录下,或是将MATLAB工作目录修改为本文件夹所在路径。%A是一个初始的99的方阵,空白处用0代替,调用TT=shudu(A),则生成结果。function TT=fill1(A)T=A;i=1;n1=0;n2=0;flag1=judge1(T);while i10 n1=0;n2=0; for j=1:9 if T(i,j)=0&i=flag1(:,1)&j=flag1(:,2)&iden(i,j,1,T)=0 n1=n1+1; end end if n1=1 for j=1:9 if T(i,j)

2、=0&i=flag1(:,1)&j=flag1(:,2)&iden(i,j,1,T)=0 T(i,j)=1; flag1=judge1(T); end end end for j=1:9 if T(j,i)=0&j=flag1(:,1)&i=flag1(:,2)&iden(j,i,1,T)=0 n2=n2+1; end end if n2=1 for j=1:9 if T(j,i)=0&j=flag1(:,1)&i=flag1(:,2)&iden(j,i,1,T)=0 T(j,i)=1; flag1=judge1(T); end end end if n1=1|n2=1 i=0; end i=

3、i+1;endTT=T;function TT=fill2(A)T=A;i=1;n1=0;n2=0;flag2=judge2(T);while i10 n1=0;n2=0; for j=1:9 if T(i,j)=0&i=flag2(:,1)&j=flag2(:,2)&iden(i,j,2,T)=0 n1=n1+1; end end if n1=1 for j=1:9 if T(i,j)=0&i=flag2(:,1)&j=flag2(:,2)&iden(i,j,2,T)=0 T(i,j)=2; flag2=judge2(T); end end end for j=1:9 if T(j,i)=0

4、&j=flag2(:,1)&i=flag2(:,2)&iden(j,i,2,T)=0 n2=n2+1; end end if n2=1 for j=1:9 if T(j,i)=0&j=flag2(:,1)&i=flag2(:,2)&iden(j,i,2,T)=0 T(j,i)=2; flag2=judge2(T); end end end if n1=1|n2=1 i=0; end i=i+1;endTT=T;function TT=fill3(A)T=A;i=1;n1=0;n2=0;flag3=judge3(T);while i10 n1=0;n2=0; for j=1:9 if T(i,j

5、)=0&i=flag3(:,1)&j=flag3(:,2)&iden(i,j,3,T)=0 n1=n1+1; end end if n1=1 for j=1:9 if T(i,j)=0&i=flag3(:,1)&j=flag3(:,2)&iden(i,j,3,T)=0 T(i,j)=3; flag3=judge3(T); end end end for j=1:9 if T(j,i)=0&j=flag3(:,1)&i=flag3(:,2)&iden(j,i,3,T)=0 n2=n2+1; end end if n2=1 for j=1:9 if T(j,i)=0&j=flag3(:,1)&i=

6、flag3(:,2)&iden(j,i,3,T)=0 T(j,i)=3; flag3=judge3(T); end end end if n1=1|n2=1 i=0; end i=i+1;endTT=T;function TT=fill4(A)T=A;i=1;n1=0;n2=0;flag4=judge4(T);while i10 n1=0;n2=0; for j=1:9 if T(i,j)=0&i=flag4(:,1)&j=flag4(:,2)&iden(i,j,4,T)=0 n1=n1+1; end end if n1=1 for j=1:9 if T(i,j)=0&i=flag4(:,1)

7、&j=flag4(:,2)&iden(i,j,4,T)=0 T(i,j)=4; flag4=judge4(T); end end end for j=1:9 if T(j,i)=0&j=flag4(:,1)&i=flag4(:,2)&iden(j,i,4,T)=0 n2=n2+1; end end if n2=1 for j=1:9 if T(j,i)=0&j=flag4(:,1)&i=flag4(:,2)&iden(j,i,4,T)=0 T(j,i)=4; flag4=judge4(T); end end end if n1=1|n2=1 i=0; end i=i+1;endTT=T;fun

8、ction TT=fill5(A)T=A;i=1;n1=0;n2=0;flag5=judge5(T);while i10 n1=0;n2=0; for j=1:9 if T(i,j)=0&i=flag5(:,1)&j=flag5(:,2)&iden(i,j,5,T)=0 n1=n1+1; end end if n1=1 for j=1:9 if T(i,j)=0&i=flag5(:,1)&j=flag5(:,2)&iden(i,j,5,T)=0 T(i,j)=5; flag5=judge5(T); end end end for j=1:9 if T(j,i)=0&j=flag5(:,1)&i

9、=flag5(:,2)&iden(j,i,5,T)=0 n2=n2+1; end end if n2=1 for j=1:9 if T(j,i)=0&j=flag5(:,1)&i=flag5(:,2)&iden(j,i,5,T)=0 T(j,i)=5; flag5=judge5(T); end end end if n1=1|n2=1 i=0; end i=i+1;endTT=T;function TT=fill6(A)T=A;i=1;n1=0;n2=0;flag6=judge6(T);while i10 n1=0;n2=0; for j=1:9 if T(i,j)=0&i=flag6(:,1

10、)&j=flag6(:,2)&iden(i,j,6,T)=0 n1=n1+1; end end if n1=1 for j=1:9 if T(i,j)=0&i=flag6(:,1)&j=flag6(:,2)&iden(i,j,6,T)=0 T(i,j)=6; flag6=judge6(T); end end end for j=1:9 if T(j,i)=0&j=flag6(:,1)&i=flag6(:,2)&iden(j,i,6,T)=0 n2=n2+1; end end if n2=1 for j=1:9 if T(j,i)=0&j=flag6(:,1)&i=flag6(:,2)&iden

11、(j,i,6,T)=0 T(j,i)=6; flag6=judge6(T); end end end if n1=1|n2=1 i=0; end i=i+1;endTT=T;function TT=fill7(A)T=A;i=1;n1=0;n2=0;flag7=judge7(T);while i10 n1=0;n2=0; for j=1:9 if T(i,j)=0&i=flag7(:,1)&j=flag7(:,2)&iden(i,j,7,T)=0 n1=n1+1; end end if n1=1 for j=1:9 if T(i,j)=0&i=flag7(:,1)&j=flag7(:,2)&i

12、den(i,j,7,T)=0 T(i,j)=7; flag7=judge7(T); end end end for j=1:9 if T(j,i)=0&j=flag7(:,1)&i=flag7(:,2)&iden(j,i,7,T)=0 n2=n2+1; end end if n2=1 for j=1:9 if T(j,i)=0&j=flag7(:,1)&i=flag7(:,2)&iden(j,i,7,T)=0 T(j,i)=7; flag7=judge7(T); end end end if n1=1|n2=1 i=0; end i=i+1;endTT=T;function TT=fill8(

13、A)T=A;i=1;n1=0;n2=0;flag8=judge8(T);while i10 n1=0;n2=0; for j=1:9 if T(i,j)=0&i=flag8(:,1)&j=flag8(:,2)&iden(i,j,8,T)=0 n1=n1+1; end end if n1=1 for j=1:9 if T(i,j)=0&i=flag8(:,1)&j=flag8(:,2)&iden(i,j,8,T)=0 T(i,j)=8; flag8=judge8(T); end end end for j=1:9 if T(j,i)=0&j=flag8(:,1)&i=flag8(:,2)&ide

14、n(j,i,8,T)=0 n2=n2+1; end end if n2=1 for j=1:9 if T(j,i)=0&j=flag8(:,1)&i=flag8(:,2)&iden(j,i,8,T)=0 T(j,i)=8; flag8=judge8(T); end end end if n1=1|n2=1 i=0; end i=i+1;endTT=T;function TT=fill9(A)T=A;i=1;n1=0;n2=0;flag9=judge9(T);while i=1+3*k&x=1+3*m&y 0) % Found a solution. & * h7 S! L: M9 m6 R)

15、N return 5$ 3 u1 q5 E5 y5 3 l end , T$ z8 T1 N% b) E; : e4 N end end : Y) I% M$ JD) x( X k6 % - m$ Y% 2 h$ I7 l& J% H8 l- V7 l function C,s,e = candidates(X) C = cell(9,9); ! g+ O* l2 e7 g# k6 N tri = (k) 3*ceil(k/3-1) + (1:3); for j = 1:9 for i = 1:9 uT1 _1 a; w# M) u 3 k! B1 O if X(i,j)=0 9 L) P4

16、t1 x& M2 S3 o1 j) h z = 1:9; 5 Q7 X) |/ R$ q z(nonzeros(X(i,:) = 0; z(nonzeros(X(:,j) = 0; J9 k+ : f# b% | z(nonzeros(X(tri(i),tri(j) = 0; Ci,j = nonzeros(z); end end end - Y Q. . # M L = cellfun(length,C); %Number of candidates. s = find(X=0 & L=1,1); ! G A! I8 p( Y* g3 P4 K e = find(X=0 & L=0,1); % S- C& q) D9 H# n5 6 end % candidates % p2 _/ r* u, o4 E end % sudoku

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2