我需要編寫一個遞歸謂詞rectangle
,這樣rectangle(M, N)
寫出一個大小爲M x N
星號的實心矩形,即矩形中應該有M
行和N
列。例如:寫一個prolog程序,顯示一個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).
這是很好的,你已經嘗試了一切,但它會更容易幫助你,如果你告訴我們,你已經嘗試了什麼。 – 2013-03-09 17:21:31
到目前爲止我所得到的是:矩形(0,0)。 (M,N): - 行(M), 寫('*'),n1,A是N-1,行(A-1)。它只顯示無數星號。謝謝 – user2152012 2013-03-09 17:24:12
爲什麼你把M傳給行,看起來M是行數而不是列數?你爲什麼打兩次電話?你爲什麼寫一個星號?你真的可以用正常的語言寫下程序的邏輯,而不是序言嗎?它可能會幫助你。 – 2013-03-09 19:16:01