立方体を作ろう

色々なプログラムを製作中。

%頂点数の設定
ret=vertex2(8).

%頂点数を保持しておくアトム生成
R = vertex2(N) :-int(N)|R=vertex(N),b(N+1).

%頂点の生成
R = vertex(N) :- N>1 | R = vertex(N-1),a(N).
R = vertex(N) :- N=1, ground(R) |a(1).

%立方体の生成
a(W),a(X),a(Y),a(Z) :- int(W),int(X),int(Y),int(Z)|a(W,A,B),a(X,B,C),a(Y,C,D),a(Z,A,D).
a(W,A,B),a(X,C,D),b(N) :- int(W),int(X),W+X=N|a(L,A,B),a(L,C,D),b(N).

こんなので立方体が描けてしまうから面白い。ただし、GUIモードで起動した場合のみ。
でも、
b(9), a(_126,_120,a(_142,a(_134,a(_118,_120)))), a(_126,_122,a(_142,a(_134,a(_118,_122)))), @601
これを見て「お、立方体だ」ってわかるスーパーな人はGUIモードでなくてもよいかも。