我需要编写一个递归谓词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).