我需要编写一个递归谓词rectangle
,以便rectangle(M, N)
写出一个星号大小的实心矩形M x N
,即矩形中应该有M
行和N
列。例如:
?- rectangle(3,8).
********
********
********
true
到目前为止,我有在一行上line
打印N
星号的语句:
line(0).
line(N) :- write('*'), A is N-1 , line(A).
我已经尝试了一切,但我不断得到无限的星号网格。这是我到目前为止所得到的:
rectangle(0,0).
rectangle(M,N) :-
line(M),
write('*'), nl, A is N-1, line(A-1),
rectangle(M,A).