📄 magic4.pl
字号:
/********************************************************************
Constraint-based Graphical Programming in B-Prolog
%
4*4 magic square puzzle
*********************************************************************/
go:-
Vars=[X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16],
vars_constraints(Vars),
%
Bs=[B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15,B16],
createButtons(Bs,Vars),
cgSame(Bs,fontSize,20), cgSame(Bs,fontStyle,'BOLD'),
cgGrid([[B1,B2,B3,B4],
[B5,B6,B7,B8],
[B9,B10,B11,B12],
[B13,B14,B15,B16]]),
%
cgStartRecord(magic4),
cgShow(Bs),
cgStopRecord.
createButtons([],_).
createButtons([B|Bs],[T|Ts]):-
cgButton(B), B^text #= T,
createButtons(Bs,Ts).
vars_constraints(Vars):-
Vars=[X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16],
Vars in 1..16,
alldifferent(Vars),
%
X1+X2+X3+X4#=34,
X5+X6+X7+X8#=34,
X9+X10+X11+X12#=34,
X13+X14+X15+X16#=34,
%
X1+X5+X9+X13#=34,
X2+X6+X10+X14#=34,
X3+X7+X11+X15#=34,
X4+X8+X12+X16#=34,
%
X1+X6+X11+X16#=34,
X4+X7+X10+X13#=34,
%
labeling(Vars).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -