输出| ......让我困惑

时间:2015-11-27 15:17:53

标签: list prolog geometry

编辑:当我低于中心时,我需要的是一面旗帜。

我正在尝试获取此shape,但我未能正确填写最后一级!

我的最新代码:

:- use_module(library(clpfd)).

solve(L, Dim) :-
    length(L, 5), % define 5 diagonals
    Fill is Dim - 2,
    Below_center is 0,
    init_sublists(L, Dim, Fill, Below_center).

init_sublists([], _, _, _).
init_sublists([H|T], Dim, Fill, Below_center) :-
    Below_center == 0,
    length(H, Dim),
    writeln("hereeeeeeeeeeeeeeeeeeeeeee"+Fill),
    init_zeroes(H, Fill),
    NewFill is Fill + 1,
    NewFill =< Dim,
    init_sublists(T, Dim, NewFill, Below_center).
init_sublists([H|T], Dim, Fill, _) :-
    length(H, Dim),
    writeln("ekeiiiiiiiiiiii"+Fill),
    init_zeroes(H, Fill),
    NewFill is Fill - 1,
    NewFill > Dim - 3,
    Below_center is 1,
    init_sublists(T, Dim, NewFill, Below_center).

init_zeroes([], _).
init_zeroes([H|T], Fill) :-
    writeln("edw"+Fill),
    Fill == 0,
    H is 0,
    init_zeroes(T, Fill).
init_zeroes([H|T], Fill) :-
    writeln("edw1"+Fill),
    NewFill is Fill - 1,
    init_zeroes(T, NewFill).

并且输出太大,甚至不适合SWI-Prolog ..我得到 false

1 个答案:

答案 0 :(得分:0)

当我在中心的下方时,我不得不使用一个标志来表示,所以我不会回到第二个条款中。